]> git.saurik.com Git - bison.git/blame - ChangeLog
(MUSCLE_TAB_H_): Was misspelled as MUSCLE_TAB_H_.
[bison.git] / ChangeLog
CommitLineData
e76d2469
PE
12002-10-16 Paul Eggert <eggert@twinsun.com>
2
3 * NEWS: Officially drop support for building Bison with K&R C,
4 since it didn't work anyway and it's not worth worrying about.
5 * Makefile.maint (wget_files): Remove ansi2knr.c.
6 (ansi2knr.c-url_prefix): Remove.
7 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
8 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
9 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
10
5bd1c419
PE
112002-10-15 Paul Eggert <eggert@twinsun.com>
12
13 Stop using the "enum_" trick for K&R-style function definitions;
14 it confused me, and I was the author! Instead, assume that people
15 who want to use K&R C compilers (when using these modules in GCC,
16 perhaps?) will run ansi2knr.
17
18 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
19 All uses of "enum_" changed to "enum ".
20 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
21 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
e76d2469 22
5bd1c419
PE
23 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
24 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
25 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
26 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
27 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
28 abitset_not, abitset_ones, abitset_or, abitset_or_and,
29 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
30 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
31 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
32 Use function prototypes; this removes the need for declaring
33 static functions simply to provide their prototypes.
34 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
35 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
36 bitset_count_, bitset_create, bitset_dump, bitset_first,
37 bitset_free, bitset_init, bitset_last, bitset_next,
38 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
39 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
40 bitset_print, bitset_release_memory, bitset_toggle_,
41 bitset_type_choose, bitset_type_get, bitset_type_name_get,
42 debug_bitset): Likewise.
43 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
44 * lib/bitset_stats.c (bitset_log_histogram_print,
45 bitset_percent_histogram_print, bitset_stats_and,
46 bitset_stats_and_cmp, bitset_stats_and_or,
47 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
48 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
49 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
50 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
51 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
52 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
53 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
54 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
55 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
56 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
57 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
58 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
59 bitset_stats_zero): Likewise.
60 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
61 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
62 bitsetv_dump, debug_bitsetv): Likewise.
63 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
64 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
65 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
66 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
67 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
68 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
69 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
70 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
71 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
72 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
73 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
74 Likewise.
75 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
76 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
77 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
78 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
79 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
80 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
81 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
82 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
83 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
84 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
85 lbitset_xor_cmp, lbitset_zero): Likewise.
e76d2469 86
ae26e1f0
AD
872002-10-14 Akim Demaille <akim@epita.fr>
88
89 Version 1.75.
90
d43baf71
AD
912002-10-14 Akim Demaille <akim@epita.fr>
92
93 * tests/Makefile.am (maintainer-check-posix): New.
94
7ebc83e3
AD
952002-10-14 Akim Demaille <akim@epita.fr>
96
97 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
98 member.
99
05846dae
AD
1002002-10-14 Akim Demaille <akim@epita.fr>
101
102 * src/tables.c (table_ninf_remap): base -> tab.
103 Reported by Matt Rosing.
104
1318e37d
PE
1052002-10-14 Paul Eggert <eggert@twinsun.com>
106
447fbb17
PE
107 * tests/action.at, tests/calc.at, tests/conflicts.at,
108 tests/cxx-type.at, tests/headers.at, tests/input.at,
109 tests/regression.at, tests/synclines.at, tests/torture.at:
110 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
111 so that the tests still work even if POSIXLY_CORRECT is set.
112 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
05846dae 113
1318e37d
PE
114 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
115 for portability to K&R hosts. Fix typo: signed char is guaranteed
116 only to 127, not to 128.
117 * data/glr.c (yysigned_char): New type.
118 * data/yacc.c (yysigned_char): Likewise.
119 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
120
cc0f0794
PE
1212002-10-13 Paul Eggert <eggert@twinsun.com>
122
5038f418
PE
123 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
124 true due to limited range of data type" warning from GCC.
125
cc0f0794
PE
126 * data/c.m4 (b4_token_defines): Protect against double-inclusion
127 by wrapping enum yytokentype's definition inside #ifndef
128 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
129
6fed0802
AD
1302002-10-13 Akim Demaille <akim@epita.fr>
131
132 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
133 Un yy- yyrhs to avoid the name clash with the global YYRHS.
134
32f0598d
AD
1352002-10-13 Akim Demaille <akim@epita.fr>
136
137 * Makefile.maint: Update from Autoconf 2.54.
138 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
139
7ea9a33f
AD
1402002-10-13 Akim Demaille <akim@epita.fr>
141
142 * src/print.c (print_state): Separate the list of solved conflicts
143 from the other items.
144 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
145
ea99527d
AD
1462002-10-13 Akim Demaille <akim@epita.fr>
147
148 Let nondeterministic skeletons be usable with deterministic
149 tables.
150
151 With the patch, GAWK compiled by GCC without -O2 passes its test
152 suite using a GLR parser driven by LALR tables. It fails with -O2
153 because `struct stat' gives two different answers on my machine:
154 88 (definition of an auto var) and later 96 (memset on this var).
155 Hence the stack is badly corrumpted. The headers inclusion is to
156 blame: if I move the awk.h inclusion before GLR's system header
157 inclusion, the two struct stat have the same size.
158
159 * src/tables.c (pack_table): Always create conflict_table.
160 (token_actions): Always create conflict_list.
161 * data/glr.c (YYFLAG): Remove, unused.
162
f377f69f
AD
1632002-10-13 Akim Demaille <akim@epita.fr>
164
165 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
166 (O0FLAGS): New.
167 (VALGRIND, GXX): New.
168 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
169 * tests/bison.in: Run $PREBISON a pre-command.
170 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
171 (maintainer-check-g++): New.
172 * Makefile.am (maintainer-check): New.
173
2a1fe6ed
AD
1742002-10-13 Akim Demaille <akim@epita.fr>
175
176 * data/glr.c: Formatting changes.
177 Tweak some trace messages to match yacc.c's.
178
f50adbbd
AD
1792002-10-13 Akim Demaille <akim@epita.fr>
180
181 GLR parsers sometimes raise parse errors instead of performing the
182 default reduction.
183 Reported by Charles-Henry de Boysson.
184
185 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
186 check the length of the traces when %glr.
187 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
188 GLR's traces.
189 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
190 Test GLR parsers.
191 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
192 (yyltype): Remove the yy prefix from the member names.
193 (yytable): Complete its comment.
194 (yygetLRActions): Map error action number from YYTABLE from
195 YYTABLE_NINF to 0.
196 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
197 (which was a bug: it should have been YYTABEL_NINF, and yet it was
198 not satisfying as we could compare an YYACTION computed from
199 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
200 only value for error actions.
201 (yyreportParseError): In verbose parse error messages, don't issue
202 `error' in the list of expected tokens.
203 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
204 next action to perform to match glr.c's decoding.
205 (yytable): Complete its comment.
206
bcbad5b9
PE
2072002-10-13 Paul Eggert <eggert@twinsun.com>
208
209 Fix problem reported by Henrik Grubbstroem in
210 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001670.html>:
211 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
212 because the Bison parser reads the second action before reducing
213 the first one.
214 * src/scan-gram.l (rule_length): New static var.
215 Use it to keep track of the rule length in the scanner, since
216 we can't expect the parser to be in lock-step sync with the scanner.
217 (handle_action_dollar, handle_action_at): Use this var.
218 * tests/actions.at (Exotic Dollars): Test for the problem.
05846dae 219
14904b89
PE
2202002-10-12 Paul Eggert <eggert@twinsun.com>
221
1fe611e5
PE
222 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
223 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
224 Include <sys/time.h> when checking for clock_t and struct tms.
225 Use same include order as source.
226 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
227 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001674.html>.
05846dae 228
1fe611e5
PE
229 * lib/timevar.c: Update copyright date and clarify comments.
230 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 231
1fe611e5
PE
232 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
233 GCC version as of today, then merge Bison's changes.
234 Change "GCC" to "Bison" in copyright notice. timevar.def's
235 author is Akim, so change that too.
236
98194095
PE
237 * src/reader.c (grammar_current_rule_check):
238 Don't worry about the default action if $$ is untyped.
239 Prevents bogus warnings reported by Jim Gifford in
240 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001673.html>.
241
14904b89
PE
242 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
243 * data/glr.c, data/lalr1.cc, data/yacc.c:
244 Output token definitions before the first part of user declarations.
245 Fixes compatibility problem reported by Jim Gifford for kbd in
246 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001672.html>.
247
ff6dca18
PE
2482002-10-11 Paul Eggert <eggert@twinsun.com>
249
250 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
251 (yyparse): here. This undoes some of the 2002-07-25 change.
252 Compatibility problem reported by Ralf S. Engelschall with
253 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
254
eb714592
AD
2552002-10-11 Akim Demaille <akim@epita.fr>
256
257 * tests/regression.at Characters Escapes): New.
258 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
259 characters.
260 Reported by Jan Nieuwenhuizen.
261
b7195100
AD
2622002-10-11 Akim Demaille <akim@epita.fr>
263
264 * po/id.po: New.
265
f28a0f2d
PE
2662002-10-10 Paul Eggert <eggert@twinsun.com>
267
268 Portability fixes for bitsets; this also avoids several GCC
269 warnings.
270
271 * lib/abitset.c: Include <stddef.h>, for offsetof.
272 * lib/lbitset.c: Likewise.
273
274 * lib/abitset.c (abitset_bytes): Return a size that is aligned
275 properly for vectors of objects. Do not assume that adding a
276 header size to a multiple of a word size yields a value that is
277 properly aligned for the whole union.
278 * lib/bitsetv.c (bitsetv_alloc): Likewise.
279
280 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
281 unique names for structures.
282 * lib/ebitset.c (ebitset_bytes): Likewise.
283 * lib/lbitset.c (lbitset_bytes): Likewise.
284
285 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
286 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
287 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
288 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
289 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
290 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
291 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
292 to improve the type-checking that GCC can do.
293 * lib/bitset.c (bitset_op4_cmp): Likewise.
294 * lib/bitset_stats.c (bitset_stats_count,
295 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
296 bitset_stats_copy, bitset_stats_disjoint_p,
297 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
298 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
299 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
300 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
301 bitset_stats_and_or_cmp, bitset_stats_andn_or,
302 bitset_stats_andn_or_cmp, bitset_stats_or_and,
303 bitset_stats_or_and_cmp): Likewise.
304 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
305 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
306 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
307 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
308
309 * lib/abitset.h: Include bitset.h, not bbitset.h.
310 * lib/ebitset.h: Likewise.
311 * lib/lbitset.h: Likewise.
312
313 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
314 All instances of parameters of type enum bitset_opts are now of
315 type enum_bitset_opts, to conform to the C Standard, and similarly
316 for enum_bitset_type.
317 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
318 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
319
320 Do not use "struct bitset_struct" to mean different things in
321 different modules. Not only is this confusing, it violates
322 the C Standard, which requires that structure types in different
323 modules must be compatible if one is to be passed to the other.
324 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
325 All instances of "struct bitset_struct *" replaced with "bitset".
326 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
327 (union bitset_union, struct abitset_struct, struct ebitset_struct,
328 struct lbitset_struct, struct bitset_stats_struct): New types.
329 All uses of struct bitset_struct changed to union bitset_union,
330 etc.
331 * lib/abitset.c (struct abitset_struct, abitset,
332 struct bitset_struct): Remove.
333 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
334 struct bitset_struct): Remove.
335 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
336 bitset_struct): Remove.
337 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
338 Likewise.
339
340 Do not call a function of type T using a call that assumes the
341 function is of a different type U. Standard C requires that a
342 function must be called with a type that is compatible with its
343 definition.
344 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
345 New decls.
346 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
347 New functions.
348 * lib/ebitset.c (PFV): Remove.
349 * lib/lbitset.c (PFV): Likewise.
350 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
351 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
352 decls.
353 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
354 (ebitset_vtable): Use them.
355 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
356 lbitset_xor): New functions.
357 (lbitset_vtable): Use them.
358
359 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
360 Declare.
361
362 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
363 GCC warning.
364 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
365 Use offsetof, for simplicity.
366
6fbe4984
PE
3672002-10-06 Paul Eggert <eggert@twinsun.com>
368
369 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
370 the same width as int. This reapplies a hunk of the 2002-08-12 patch
371 <http://mail.gnu.org/pipermail/bison-patches/2002-August/001111.html>,
372 which was inadvertently undone by the 2002-09-30 patch.
373 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
374 the same width as int.
375
420f93c8
PE
3762002-10-04 Paul Eggert <eggert@twinsun.com>
377
378 Version 1.50.
379
380 * configure.ac (AC_INIT), NEWS: Increment version number.
381
382 * doc/bison.texinfo: Minor spelling, grammar, and white space
383 fixes.
384 (Symbols): Mention that any negative value returned from yylex
385 signifies end-of-input. Warn about negative chars. Mention
386 the portable Standard C character set.
387
388 The GNU coding standard says CFLAGS and YFLAGS are reserved
389 for the installer to set.
390 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
391 * src/Makefile.am (AM_CFLAGS): Likewise.
392 (AM_YFLAGS): Renamed from YFLAGS.
393
394 Fix some MAX and MIN problems.
395 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
396 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
397 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
398 * src/reader.c (reader): Use it.
399
400 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
401 POSIX 1003.1-2001 has removed fgrep.
402
4032002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
404
405 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
406 interpreted as signed.
407 * lib/ebitset.c (ebitset_list): Fix bug.
408
ff68026d
PE
4092002-10-01 Paul Eggert <eggert@twinsun.com>
410
411 More fixes for 64-bit hosts and large bitsets.
412
413 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
414 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
415 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
416 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
417 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
418 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
419 bitset_count_): Likewise.
420 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
421 bitset_first, bitset_last): Likewise.
422 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
423 bitset_stats_list_reverse, bitset_stats_size,
424 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
425 Likewise.
426 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
427 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
428 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
429 bitsetv_reflexive_transitive_closure): Likewise.
430 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
431 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
432 Likewise.
433 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
434 Likewise.
420f93c8 435
ff68026d
PE
436 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
437 Use size_t, not unsigned int, to count bytes.
438 * lib/abitset.h (abitset_bytes): Likewise.
439 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
440 Likewise.
441 * lib/bitset.h (bitset_bytes): Likewise.
442 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
443 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
444 * lib/bitsetv.c (bitsetv_alloc): Likewise.
445 * lib/ebitset.c (ebitset_bytes): Likewise.
446 * lib/ebitset.h (ebitset_bytes): Likewise.
447 * lib/lbitset.c (lbitset_bytes): Likewise.
448 * lib/lbitset.h (lbitset_bytes): Likewise.
420f93c8 449
ff68026d
PE
450 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
451 abitset_subset_p, abitset_disjoint_p, abitset_and,
452 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
453 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
454 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
455 abitset_or_and, abitset_or_and_cmp):
456 Use bitset_windex instead of unsigned int.
457 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
458 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
459 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
460 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
461 Likewise.
462 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
420f93c8 463
ff68026d
PE
464 * lib/bitset.c (bitset_print):
465 Use proper printf formats for widths of integer types.
466 * lib/bitset_stats.c (bitset_percent_histogram_print,
467 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
468 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
469 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
470 * lib/lbitset.c (lbitset_bytes): Likewise.
420f93c8 471
ff68026d
PE
472 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
473 BITSET_SIZE_MAX): New macros.
474 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
475 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
476 to BITSET_WINDEX_MAX.
477
478 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
479 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
480 since we now return the bitset_bindex type (not int).
481
482 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
483 when computing sizes.
484 * lib/ebitset.c (ebitset_elts_grow): Likewise.
485
486 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
487 and avoid cast to unsigned.
488
6aa452a6
AD
4892002-09-30 Akim Demaille <akim@epita.fr>
490
491 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
492 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
493 Updates from Michael Hayes.
494
927f7817
AD
4952002-09-30 Art Haas <ahaas@neosoft.com>
496
497 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
498 invocations.
499 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
500 defined.
501
9738f41e
AD
5022002-09-27 Akim Demaille <akim@epita.fr>
503
504 Version 1.49c.
505
a5c75d7f
AD
5062002-09-27 Akim Demaille <akim@epita.fr>
507
508 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
509 (Because of AC_LIBSOURCE).
510
8280e179
AD
5112002-09-27 Akim Demaille <akim@epita.fr>
512
513 Playing with Autoscan.
514
515 * configure.ac: Remove the old LIBOBJ tweaks.
516 (AC_REPLACE_FUNCS): Add strrchr and strtol.
517 * lib/strrchr.c: New.
518 * lib/strtol.c: New, from the Coreutils 4.5.1.
519
ae64af35
AD
5202002-09-27 Akim Demaille <akim@epita.fr>
521
522 Playing with Autoscan.
523
524 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
525 * lib/Makefile.am (libbison_a_SOURCES): No longer include
526 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
527 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
528 Coreutils 4.5.1.
529
d1a1114f
AD
5302002-09-24 Akim Demaille <akim@epita.fr>
531
532 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
533 (Frequently Asked Questions, Parser Stack Overflow): New.
534
b906441c
AD
5352002-09-13 Akim Demaille <akim@epita.fr>
536
537 Playing with autoscan.
538
539 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
540 * src/files.c (skeleton_find): Remove, unused.
541 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
542 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
543
bd701811
AD
5442002-09-13 Akim Demaille <akim@epita.fr>
545
546 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
547 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
548
e0a13e7b
AD
5492002-09-13 Akim Demaille <akim@epita.fr>
550
551 * configure.ac: Require 2.54.
552 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
553 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
554 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
555 Remove, provided by Autoconf macros.
556
c97011bf
AD
5572002-09-12 Akim Demaille <akim@epita.fr>
558
559 * m4/prereq.m4: Update, from Coreutils 4.5.1.
560
d862b1be
AD
5612002-09-12 Akim Demaille <akim@epita.fr>
562
563 * m4/prereq.m4: Update, from Fileutils 4.1.5.
564 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
565 Reported by Martin Mokrejs.
566
3d38c03a
AD
5672002-09-10 Akim Demaille <akim@epita.fr>
568
569 * src/parse-gram.y: Associate a human readable string to each
570 token type.
571 * tests/regression.at (Invalid inputs): Adjust.
572
b6347355
AD
5732002-09-10 Gary V. Vaughan <gary@gnu.org>
574
575 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
576 with an Autoconf-2.5x style configure.ac.
577
09ba4ab2
PE
5782002-09-06 Paul Eggert <eggert@twinsun.com>
579
580 * doc/bison.texinfo (Conditions): Make explicit that the GPL
581 exception applies only to yacc.c. This is a modification of a
582 patch originally suggested by Akim Demaille.
583
21846f69
AD
5842002-09-06 Akim Demaille <akim@epita.fr>
585
09ba4ab2
PE
586 * data/c.m4 (b4_copyright): Move the GPL exception comment from
587 here to...
588 * data/yacc.c: here.
589
21846f69
AD
590 * data/lalr1.cc (struct yyltype): Don't define it, since we use
591 LocationType.
592 (b4_ltype): Default to yy::Location from location.hh.
593
c0ad8bf3
AD
5942002-09-04 Jim Meyering <jim@meyering.net>
595
596 * data/yacc.c: Guard the declaration of yytoknum also with
597 `#ifdef YYPRINT', so it is declared only when used.
598
3a93251e
AD
5992002-09-04 Akim Demaille <akim@epita.fr>
600
601 * configure.in: Rename as...
602 * configure.ac: this.
603 Bump to 1.49c.
604
427c0dda
AD
6052002-09-04 Akim Demaille <akim@epita.fr>
606
607 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
608 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
609 translate maintainer only messages.
610
6a254321
PE
6112002-08-12 Paul Eggert <eggert@twinsun.com>
612
645e30d1
PE
613 Version 1.49b.
614
6a254321
PE
615 * Makefile.am (SUBDIRS): Remove intl.
616 (DISTCLEANFILES): Remove.
617 * NEWS: Mention that GNU M4 is now required. Clarify what is
618 meant by "larger grammars". Mention the pt_BR translation.
619 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
620 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
621 Bump version from 0.11.2 to 0.11.5.
622 (BISON_PREREQ_STAGE): Remove.
623 (AM_GNU_GETTEXT): Use external gettext.
624 (AC_OUTPUT): Remove intl/Makefile.
625
626 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
627
628 * data/glr.c: Include string.h, for strlen.
629 (yyreportParseError): Use size_t for yysize.
630 (yy_yypstack): No longer nested inside yypstates, as nested
631 functions are not portable. Do not assume size_t is the
632 same width as int.
633 (yypstates): Do not assume that ptrdiff_t is the same width
634 as int, and similarly for yyposn and YYINDEX.
635
636 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
637
638 * lib/Makefile.am (INCLUDES): Do not include from the intl
639 directory, which has been removed.
640 * src/Makefile.am (INCLUDES): Likewise.
641
642 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
643 (bitsets_sources, additional_bitsets_sources, timevars_sources):
644 New vars.
645
646 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
647 * tests/Makefile.am (EXTRA_DIST): Likewise.
648
649 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
650 Do not assume that bitset_windex is the same width as unsigned.
651
652 * lib/abitset.c (abitset_unused_clear): Do not assume that
653 bitset_word is the same width as int.
654 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
655 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
656 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
657 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
658 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
659
660 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
661 portability to one's complement hosts!).
662 * lib/ebitset.c (ebitset_op1): Likewise.
663 * lib/lbitset.c (lbitset_op1): Likewise.
664
665 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
666 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
667 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
668 Sync with fileutils.
669 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
670 lib/gettext.h: Sync with diffutils.
671
672 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
673 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
674
675 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
676 PROTOTYPES to check for prototypes, and "defined __STDC__" to
677 check for void *.
678
679 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
680 size_t; the old version tried to do this but casted improperly.
681 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
682 (bitset_test): Now returns int, not unsigned long.
683
684 * lib/bitset_stats.c: Include "gettext.h".
685 (_): New macro.
686 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
687 name locals "index", as it generates unnecessary warnings on some
688 hosts that have an "index" function.
689
690 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
691 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
692 they need translation.
693 * src/LR0.c (state_list_append, new_itemsets, get_state,
694 append_states, generate_states): Likewise.
695 * src/assoc.c (assoc_to_string): Likewise.
696 * src/closure.c (print_closure, set_firsts, closure): Likewise.
697 * src/gram.c (grammar_dump): Likewise.
698 * src/injections.c (injections_compute): Likewise.
699 * src/lalr.c (lookaheads_print): Likewise.
700 * src/relation.c (relation_transpose): Likewise.
701 * src/scan-gram.l: Likewise.
702 * src/tables.c (table_grow, pack_vector): Likewise.
703
704 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
705 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
706 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
707 * m4/mbstate_t.m4: Sync with fileutils.
708 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
709
710 * po/LINGUAS: Add pt_BR.
711 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
712 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
713 lib/timevar.c.
714 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
715 manual recommends.
716 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
717
718 * src/complain.c (strerror_r): Remove decl; not needed.
719 (strerror): Use same pattern as ../lib/error.c.
720
721 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
722
723 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
724
725 * src/main.c (main): Cast result of bindtextdomain and textdomain
726 to void, to avoid a GCC warning when --disable-nls is in effect.
727
728 * src/scan-gram.l: Use strings rather than escapes when possible,
729 to minimize the number of warnings from xgettext.
730 (handle_action_dollar, handle_action_at): Don't use isdigit,
731 as it mishandles negative chars and it may not work as expected
732 outside the C locale.
733
734 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
735 this is a GCC extension and is not portable to other compilers.
736
737 * src/system.h (alloca): Use same pattern as ../lib/error.c.
738 Do not include <ctype.h>; no longer needed.
739 Do not include <malloc.h>; no longer needed (and generates
740 warnings on OpenBSD 3.0).
741
742 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
743 it's not portable.
744
745 * tests/regression.at: Do not use 'cc -c input.c -o input';
746 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
747
748 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
749 exit status as failure, not just exit status 1. Sun C exits
750 with status 2 sometimes.
751
752 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
753 Use it for the two large tests.
754
c8f002c7
AD
7552002-08-02 Akim Demaille <akim@epita.fr>
756
757 * src/conflicts.c (conflicts_output): Don't output rules never
758 reduced here, since anyway that computation doesn't work.
759 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
760 (rule_useless_p, rule_never_reduced_p): New.
761 (grammar_rules_partial_print): Use a filter instead of a range.
762 Display the title only if needed.
763 (grammar_rules_print): Adjust.
764 (grammar_rules_never_reduced_report): New.
765 * src/tables.c (action_row): Move the computation of rules never
766 reduced to...
767 (token_actions): here.
768 * src/main.c (main): Make the parser before making the report, so
769 that rules never reduced are computed.
770 Call grammar_rules_never_reduced_report.
771 * src/print.c (print_results): Report rules never reduced.
772 * tests/conflicts.at, tests/reduce.at: Adjust.
773
cd08e51e
AD
7742002-08-01 Akim Demaille <akim@epita.fr>
775
776 Instead of attaching lookaheads and duplicating the rules being
777 reduced by a state, attach the lookaheads to the reductions.
778
779 * src/state.h (state_t): Remove the `lookaheads',
780 `lookaheads_rule' member.
781 (reductions_t): Add a `lookaheads' member.
782 Use a regular array for the `rules'.
783 * src/state.c (reductions_new): Initialize the lookaheads member
784 to 0.
785 (state_rule_lookaheads_print): Adjust.
786 * src/state.h, src/state.c (state_reductions_find): New.
787 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
788 (count_rr_conflicts): Adjust.
789 * src/lalr.c (LArule): Remove.
790 (add_lookback_edge): Adjust.
791 (state_lookaheads_count): New.
792 (states_lookaheads_initialize): Merge into...
793 (initialize_LA): this.
794 (lalr_free): Adjust.
795 * src/main.c (main): Don't free nullable and derives too early: it
796 is used by --verbose.
797 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
798
bb0027a9
AD
7992002-08-01 Akim Demaille <akim@epita.fr>
800
801 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
802 `rule_number_t**'.
803 (set_derives, free_derives): Rename as...
804 (derives_compute, derives_free): this.
805 Adjust all dependencies.
806 * src/nullable.c (set_nullable, free_nullable): Rename as...
807 (nullable_compute, nullable_free): these.
808 (rule_list_t): Store rule_t *, not rule_number_t.
809 * src/state.c (state_rule_lookaheads_print): Directly compare rule
810 pointers, instead of their numbers.
811 * src/main.c (main): Call nullable_free, and derives_free earlier,
812 as they were lo longer used.
813
3325ddc4
AD
8142002-08-01 Akim Demaille <akim@epita.fr>
815
816 * lib/timevar.c (get_time): Include children time.
817 * src/lalr.h (LA, LArule): Don't export them: used with the
818 state_t.
819 * src/lalr.c (LA, LArule): Static.
820 * src/lalr.h, src/lalr.c (lalr_free): New.
821 * src/main.c (main): Call it.
822 * src/tables.c (pack_vector): Check whether loc is >= to the
823 table_size, not >.
824 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
825 (tables_generate): do it, since that's also it which allocates
826 them.
827 Don't free LA and LArule, main does.
828
c6f1a33c
AD
8292002-07-31 Akim Demaille <akim@epita.fr>
830
831 Separate parser tables computation and output.
832
833 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
834 (conflict_list, conflict_list_cnt, table, check, table_ninf)
835 (yydefgoto, yydefact, high): Move to...
836 * src/tables.h, src/tables.c: here.
837 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
838 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
839 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
840 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
841 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
842 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
843 (action_row, save_row, token_actions, save_column, default_goto)
844 (goto_actions, sort_actions, matching_state, pack_vector)
845 (table_ninf_remap, pack_table, prepare_actions): Move to...
846 * src/tables.c: here.
847 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
848 * src/output.c (token_actions, output_base, output_conflicts)
849 (output_check): Merge into...
850 (prepare_actions): this.
851 (actions_output): Rename as...
852 (user_actions_output): this.
853 * src/main.c (main): Call tables_generate and tables_free.
854
1509d42f
AD
8552002-07-31 Akim Demaille <akim@epita.fr>
856
857 Steal GCC's --time-report support.
858
859 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
860 stolen/adjusted from GCC.
861 * m4/stage.m4: Remove time related checks.
862 * m4/timevar.m4: New.
863 * configure.in: Adjust.
864 * src/system.h: Adjust to using timevar.h.
865 * src/getargs.h, src/getargs.c: Support trace_time for
866 --trace=time.
867 * src/main.c (stage): Remove.
868 (main): Replace `stage' invocations with timevar calls.
869 * src/output.c: Insert pertinent timevar calls.
870
273a74fa
AD
8712002-07-31 Akim Demaille <akim@epita.fr>
872
873 Let --trace have arguments.
874
875 * src/getargs.h (enum trace_e): New.
876 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
877 (long_options, short_options): --trace/-T takes an optional
878 argument.
879 Change all the uses of trace_flag to reflect the new flags.
880 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
881
882 Strengthen `stage' portability.
883
884 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
885 * configure.in: Use it.
886 Don't check for malloc.h and sys/times.h.
887 * src/system.h: Include them when appropriate.
888 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
889 times and struct tms are available.
890
217598da
AD
8912002-07-30 Akim Demaille <akim@epita.fr>
892
893 In verbose parse error message, don't report `error' as an
894 expected token.
895 * tests/actions.at (Printers and Destructors): Adjust.
896 * tests/calc.at (Calculator $1): Adjust.
897 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
898 error message, do not report the parser accepts the error token in
899 that state.
900
52489d44
AD
9012002-07-30 Akim Demaille <akim@epita.fr>
902
903 Normalize conflict related messages.
904
905 * src/complain.h, src/complain.c (warn, complain): New.
906 * src/conflicts.c (conflicts_print): Use them.
907 (conflict_report_yacc): New, extracted from...
908 (conflicts_print): here.
909 * tests/conflicts.at, tests/existing.at: Adjust.
910
e8832397
AD
9112002-07-30 Akim Demaille <akim@epita.fr>
912
913 Report rules which are never reduced by the parser: those hidden
914 by conflicts.
915
916 * src/LR0.c (save_reductions): Don't make the final state too
917 different: save its reduction (accept) instead of having a state
918 without any action (no shift or goto, no reduce).
919 Note: the final state is now a ``regular'' state, i.e., the
920 parsers now contain `reduce 0' as default reduction.
921 Nevertheless, since they decide to `accept' when yystate =
922 final_state, they still will not reduce rule 0.
923 * src/print.c (print_actions, print_reduction): Adjust.
924 * src/output.c (action_row): Track reduced rules.
925 (token_actions): Report rules never reduced.
926 * tests/conflicts.at, tests/regression.at: Adjust.
927
caf23d24
AD
9282002-07-30 Akim Demaille <akim@epita.fr>
929
930 `stage' was accidently included in a previous patch.
931 Initiate its autoconfiscation.
932
933 * configure.in: Look for malloc.h and sys/times.h.
934 * src/main.c (stage): Adjust.
935 Report only when trace_flag.
936
640748ee
AD
9372002-07-29 Akim Demaille <akim@epita.fr>
938
939 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
940 state_number_t.
941 (errs_t): symbol_t*, not symbol_number_t.
942 (reductions_t): rule_t*, not rule_number_t.
943 (FOR_EACH_SHIFT): New.
944 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
945 * src/print.c, src/print_graph.c: Adjust.
946
88bce5a2
AD
9472002-07-29 Akim Demaille <akim@epita.fr>
948
949 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
950
951 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
952 (endtoken, accept): these.
953 * src/reader.c (reader): Set endtoken's default tag to "$end".
954 Set undeftoken's tag to "$undefined" instead of "$undefined.".
955 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
956 Adjust.
957
1bfb97db
AD
9582002-07-29 Akim Demaille <akim@epita.fr>
959
960 * src/reduce.c (reduce_grammar): When the language is empty,
961 complain about the start symbol, not the axiom.
962 Use its location.
963 * tests/reduce.at (Empty Language): New.
964
fc5734fe
AD
9652002-07-26 Akim Demaille <akim@epita.fr>
966
967 * src/reader.h, src/reader.c (gram_error): ... can't get
968 yycontrol without making too strong assumptions on the parser
969 itself.
970 * src/output.c (prepare_tokens): Use the real 0th value of
971 token_translations instead of `0'.
972 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
973 visible here.
974 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
975 for the time being: %locations ought to provide it to yyerror.
976
3650b4b8
AD
9772002-07-25 Akim Demaille <akim@epita.fr>
978
979 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
980 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
981 * tests/regression.at (Web2c Actions): Adjust.
982
4b3d3a8e
AD
9832002-07-25 Akim Demaille <akim@epita.fr>
984
985 Stop storing rules from 1 to nrules + 1.
986
987 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
988 * src/nullable.c, src/output.c, src/print.c, src/reader.c
989 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
990 Iterate from 0 to nrules.
991 Use rule_number_as_item_number and item_number_as_rule_number.
992 Adjust to `derive' now containing possibly 0.
993 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
994 Handle the `- 1' part in rule numbers from/to item numbers.
995 * src/conflicts.c (log_resolution): Fix the message which reversed
996 shift and reduce.
997 * src/output.c (action_row): Initialize default_rule to -1.
998 (token_actions): Adjust.
999 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
1000 expected output.
1001 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
1002
4a2a22f4
AD
10032002-07-25 Akim Demaille <akim@epita.fr>
1004
1005 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
1006 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
1007 (b4_c_knr_arg_decl): New.
1008 * data/yacc.c: Use it to define yysymprint, yydestruct, and
1009 yyreport_parse_error.
1010
b8df3223
AD
10112002-07-25 Akim Demaille <akim@epita.fr>
1012
1013 * data/yacc.c (yyreport_parse_error): New, extracted from...
1014 (yyparse): here.
1015 (yydestruct, yysymprint): Move above yyparse.
1016 Be K&R compliant.
1017
a762e609
AD
10182002-07-25 Akim Demaille <akim@epita.fr>
1019
1020 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
1021 replace...
1022 (b4_sint_type, b4_uint_type): these.
1023 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
1024 * tests/regression.at (Web2c Actions): Adjust.
1025
12b0043a
AD
10262002-07-25 Akim Demaille <akim@epita.fr>
1027
1028 * src/gram.h (TIEM_NUMBER_MAX): New.
1029 (item_number_of_rule_number, rule_number_of_item_number): Rename
1030 as...
1031 (rule_number_as_item_number, item_number_as_rule_number): these.
1032 Adjust dependencies.
1033 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
1034 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
1035 (symbol_number_to_vector_number): New.
1036 (order): Of vector_number_t* type.
1037 (base_t, BASE_MAX, BASE_MIN): New.
1038 (froms, tos, width, pos, check): Of base_t type.
1039 (action_number_t, ACTION_MIN, ACTION_MAX): New.
1040 (actrow): Of action_number_t type.
1041 (conflrow): Of unsigned int type.
1042 (table_ninf, base_ninf): New.
1043 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
1044 (muscle_insert_int_table, muscle_insert_base_table)
1045 (muscle_insert_rule_number_table): New.
1046 (prepare_tokens): Output `toknum' as int_table.
1047 (action_row): Returns a rule_number_t.
1048 Use ACTION_MIN, not SHRT_MIN.
1049 (token_actions): yydefact is rule_number_t*.
1050 (table_ninf_remap): New.
1051 (pack_table): Use it for `base' and `table'.
1052 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
1053 replaced with...
1054 (YYPACT_NINF, YYTABLE_NINF): these.
1055 (yypact, yytable): Compute their types instead of hard-coded
1056 `short'.
1057 * tests/regression.at (Web2c Actions): Adjust.
1058
5dde258a
AD
10592002-07-19 Akim Demaille <akim@epita.fr>
1060
1061 * src/scan-gram.l (id): Can start with an underscore.
1062
a945ec39
AD
10632002-07-16 Akim Demaille <akim@epita.fr>
1064
1065 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
1066 Adjust all former `associativity' dependencies.
1067 * src/symtab.c (symbol_new): Default associativity is `undef', not
1068 `right'.
1069 (symbol_check_alias_consistence): Adjust.
1070
fae437e8
AD
10712002-07-09 Akim Demaille <akim@epita.fr>
1072
1073 * doc/bison.texinfo: Properly set the ``header'' part.
1074 Use @dircategory ``GNU programming tools'' as per Texinfo's
1075 documentation.
1076 Use @copying.
1077
1a715ef2
AD
10782002-07-09 Akim Demaille <akim@epita.fr>
1079
1080 * lib/quotearg.h: Protect against multiple inclusions.
1081 * src/location.h (location_t): Add a `file' member.
1082 (LOCATION_RESET, LOCATION_PRINT): Adjust.
1083 * src/complain.c (warn_at, complain_at, fatal_at): Drop
1084 `error_one_per_line' support.
1085
a5d50994
AD
10862002-07-09 Akim Demaille <akim@epita.fr>
1087
1088 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
1089 * src/reader.c (lineno): Remove.
1090 Adjust all dependencies.
1091 (get_merge_function): Take a location and use complain_at.
1092 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
1093 * tests/regression.at (Invalid inputs, Mixing %token styles):
1094 Adjust.
1095
b275314e
AD
10962002-07-09 Akim Demaille <akim@epita.fr>
1097
1098 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
1099 recovery rule, and forbid extensions when --yacc.
1100 (gram_error): Use complain_at.
1101 * src/reader.c (reader): Exit if there were parse errors.
1102
865b9df1
AD
11032002-07-09 Akim Demaille <akim@epita.fr>
1104
1105 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
1106 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
1107 Reported by R Blake <blakers@mac.com>.
1108
c76e14da
AD
11092002-07-09 Akim Demaille <akim@epita.fr>
1110
1111 * data/yacc.c: Output the copyright notive in the header.
1112
7db2ed2d
AD
11132002-07-03 Akim Demaille <akim@epita.fr>
1114
1115 * src/output.c (froms, tos): Are state_number_t.
1116 (save_column): sp, sp1, and sp2 are state_number_t.
1117 (prepare): Rename `final' as `final_state_number', `nnts' as
1118 `nterms_number', `nrules' as `rules_number', `nstates' as
1119 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
1120 unused.
1121 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
1122 * data/lalr1.cc (nsym_): Remove, unused.
1123
e68e0410
AD
11242002-07-03 Akim Demaille <akim@epita.fr>
1125
1126 * src/lalr.h, src/lalr.c (goto_number_t): New.
1127 * src/lalr.c (goto_list_t): New.
1128 Propagate them.
1129 * src/nullable.c (rule_list_t): New.
1130 Propagate.
1131 * src/types.h: Remove.
1132
e1a4f3a4
AD
11332002-07-03 Akim Demaille <akim@epita.fr>
1134
1135 * src/closure.c (print_fderives): Use rule_rhs_print.
1136 * src/derives.c (print_derives): Use rule_rhs_print.
1137 (rule_list_t): New, replaces `shorts'.
1138 (set_derives): Add comments.
1139 * tests/sets.at (Nullable, Firsts): Adjust.
1140
536545f3
AD
11412002-07-03 Akim Demaille <akim@epita.fr>
1142
1143 * src/output.c (prepare_actions): Free `tally' and `width'.
1144 (prepare_actions): Allocate and free `order'.
1145 * src/symtab.c (symbols_free): Free `symbols'.
1146 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
1147 * src/output.c (m4_invoke): Move to...
1148 * src/scan-skel.l: here.
1149 (<<EOF>>): Close yyout, and free its name.
1150
8b752b00
AD
11512002-07-03 Akim Demaille <akim@epita.fr>
1152
1153 Fix some memory leaks, and fix a bug: state 0 was examined twice.
1154
1155 * src/LR0.c (new_state): Merge into...
1156 (state_list_append): this.
1157 (new_states): Merge into...
1158 (generate_states): here.
1159 (set_states): Don't ensure a proper `errs' state member here, do it...
1160 * src/conflicts.c (conflicts_solve): here.
1161 * src/state.h, src/state.c: Comment changes.
1162 (state_t): Rename member `shifts' as `transitions'.
1163 Adjust all dependencies.
1164 (errs_new): For consistency, also take the values as argument.
1165 (errs_dup): Remove.
1166 (state_errs_set): New.
1167 (state_reductions_set, state_transitions_set): Assert that no
1168 previous value was assigned.
1169 (state_free): New.
1170 (states_free): Use it.
1171 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
1172 temporary storage: use `errs' and `nerrs' as elsewhere.
1173 (set_conflicts): Allocate and free this `errs'.
1174
613f5e1a
AD
11752002-07-02 Akim Demaille <akim@epita.fr>
1176
1177 * lib/libiberty.h: New.
1178 * lib: Update the bitset implementation from upstream.
1179 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
1180 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
1181 * src/main.c: Adjust bitset stats calls.
1182
26e0cadc
PE
11832002-07-01 Paul Eggert <eggert@twinsun.com>
1184
1185 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
1186 char, so that negative chars don't collide with $.
1187
1154cced
AD
11882002-06-30 Akim Demaille <akim@epita.fr>
1189
1190 Have the GLR tests be `warning' checked, and fix the warnings.
1191
1192 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
1193 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
1194 (yyremoveDeletes): `yyi' and `yyj' are size_t.
1195 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
1196 (yyaddDeferredAction): static.
1197 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
1198 (yyreportParseError): yyprefix is const.
1199 yytokenp is used only when verbose.
1200 (yy__GNUC__): Replace with __GNUC__.
1201 (yypdumpstack): yyi is size_t.
1202 (yypreference): Un-yy local variables and arguments, to avoid
1203 clashes with `yyr1'. Anyway, we are not in the user name space.
1204 (yytname_size): be an int, as is compared with ints.
1205 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
1206 Use them.
1207 * tests/cxx-gram.at: Use quotation to protect $1.
1208 Use AT_COMPILE to enable warnings hunts.
1209 Prototype yylex and yyerror.
1210 `Use' argc.
1211 Include `string.h', not `strings.h'.
1212 Produce and prototype stmtMerge only when used.
1213 yylex takes a location.
1214
97650f4e
AD
12152002-06-30 Akim Demaille <akim@epita.fr>
1216
1217 We spend a lot of time in quotearg, in particular when --verbose.
1218
1219 * src/symtab.c (symbol_get): Store a quoted version of the key.
1220 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
1221 Adjust all callers.
1222
d2576365
AD
12232002-06-30 Akim Demaille <akim@epita.fr>
1224
1225 * src/state.h (reductions_t): Rename member `nreds' as num.
1226 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
1227 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
1228
ccaf65bc
AD
12292002-06-30 Akim Demaille <akim@epita.fr>
1230
1231 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
1232 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
1233 (shifts_to): Rename as...
1234 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
1235 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
1236 (TRANSITION_IS_DISABLED, transitions_to): these.
1237
87675353
AD
12382002-06-30 Akim Demaille <akim@epita.fr>
1239
1240 * src/print.c (print_shifts, print_gotos): Merge into...
1241 (print_transitions): this.
1242 (print_transitions, print_errs, print_reductions): Align the
1243 lookaheads columns.
1244 (print_core, print_transitions, print_errs, print_state,
1245 print_grammar): Output empty lines separator before, not after.
1246 (state_default_rule_compute): Rename as...
1247 (state_default_rule): this.
1248 * tests/conflicts.at (Defaulted Conflicted Reduction),
1249 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
1250 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
1251
ce4ccb4b
AD
12522002-06-30 Akim Demaille <akim@epita.fr>
1253
1254 Display items as we display rules.
1255
1256 * src/gram.h, src/gram.c (rule_lhs_print): New.
1257 * src/gram.c (grammar_rules_partial_print): Use it.
1258 * src/print.c (print_core): Likewise.
1259 * tests/conflicts.at (Defaulted Conflicted Reduction),
1260 (Unresolved SR Conflicts): Adjust.
1261 (Unresolved SR Conflicts): Adjust and rename as...
1262 (Resolved SR Conflicts): this, as was meant.
1263 * tests/regression.at (Web2c Report): Adjust.
1264
bc933ef1
AD
12652002-06-30 Akim Demaille <akim@epita.fr>
1266
1267 * src/print.c (state_default_rule_compute): New, extracted from...
1268 (print_reductions): here.
1269 Pessimize, but clarify the code.
1270 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
1271
53d4308d
AD
12722002-06-30 Akim Demaille <akim@epita.fr>
1273
1274 * src/output.c (action_row): Let default_rule be always a rule
1275 number.
1276
574fb2d5
AD
12772002-06-30 Akim Demaille <akim@epita.fr>
1278
1279 * src/closure.c (print_firsts, print_fderives, closure):
1280 Use BITSET_EXECUTE.
1281 * src/lalr.c (lookaheads_print): Likewise.
1282 * src/state.c (state_rule_lookaheads_print): Likewise.
1283 * src/print_graph.c (print_core): Likewise.
1284 * src/print.c (print_reductions): Likewise.
1285 * src/output.c (action_row): Likewise.
1286 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
1287
05811fd7
AD
12882002-06-30 Akim Demaille <akim@epita.fr>
1289
1290 * src/print_graph.c: Use report_flag.
1291
0e4d5753
AD
12922002-06-30 Akim Demaille <akim@epita.fr>
1293
1294 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
1295 to...
1296 * src/relation.h, src/relation.c (traverse, relation_digraph)
1297 (relation_print, relation_transpose): New.
1298
24c7d800
AD
12992002-06-30 Akim Demaille <akim@epita.fr>
1300
1301 * src/state.h, src/state.c (shifts_to): New.
1302 * src/lalr.c (build_relations): Use it.
1303
9222837b
AD
13042002-06-30 Akim Demaille <akim@epita.fr>
1305
1306 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
1307 (item_number_of_rule_number, rule_number_of_item_number): New.
1308 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
1309 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
1310 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
1311 Propagate their use.
1312 Much remains to be done, in particular wrt `shorts' from types.h.
1313
260008e5
AD
13142002-06-30 Akim Demaille <akim@epita.fr>
1315
1316 * src/symtab.c (symbol_new): Initialize the `printer' member.
1317
8a731ca8
AD
13182002-06-30 Akim Demaille <akim@epita.fr>
1319
1320 * src/LR0.c (save_reductions): Remove, replaced by...
1321 * src/state.h, src/state.c (state_reductions_set): New.
1322 (reductions, errs): Rename as...
1323 (reductions_t, errs_t): these.
1324 Adjust all dependencies.
1325
32e1e0a4
AD
13262002-06-30 Akim Demaille <akim@epita.fr>
1327
1328 * src/LR0.c (state_list_t, state_list_append): New.
1329 (first_state, last_state): Now symbol_list_t.
1330 (this_state): Remove.
1331 (new_itemsets, append_states, save_reductions): Take a state_t as
1332 argument.
1333 (set_states, generate_states): Adjust.
1334 (save_shifts): Remove, replaced by...
1335 * src/state.h, src/state.c (state_shifts_set): New.
1336 (shifts): Rename as...
1337 (shifts_t): this.
1338 Adjust all dependencies.
1339 * src/state.h (state_t): Remove the `next' member.
1340
e5fb6710
AD
13412002-06-30 Akim Demaille <akim@epita.fr>
1342
1343 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
1344 escaped in slot 0.
1345
c7ca99d4
AD
13462002-06-30 Akim Demaille <akim@epita.fr>
1347
1348 Use hash.h for the state hash table.
1349
1350 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
1351 (allocate_storage): Use state_hash_new.
1352 (free_storage): Use state_hash_free.
1353 (new_state, get_state): Adjust.
1354 * src/lalr.h, src/lalr.c (states): Move to...
1355 * src/states.h (state_t): Remove the `link' member, no longer
1356 used.
1357 * src/states.h, src/states.c: here.
1358 (state_hash_new, state_hash_free, state_hash_lookup)
1359 (state_hash_insert, states_free): New.
1360 * src/states.c (state_table, state_compare, state_hash): New.
1361 * src/output.c (output_actions): Do not free states now, since we
1362 still need to know the final_state number in `prepare', called
1363 afterwards. Do it...
1364 * src/main.c (main): here: call states_free after `output'.
1365
df0e7316
AD
13662002-06-30 Akim Demaille <akim@epita.fr>
1367
1368 * src/state.h, src/state.c (state_new): New, extracted from...
1369 * src/LR0.c (new_state): here.
1370 * src/state.h (STATE_ALLOC): Move to...
1371 * src/state.c: here.
1372 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
1373 * src/state.h, src/state.c: here.
1374
39f41916
AD
13752002-06-30 Akim Demaille <akim@epita.fr>
1376
1377 * src/reader.c (gensym): Rename as...
1378 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
1379 (getsym): Rename as...
1380 (symbol_get): this.
1381
d57650a5
AD
13822002-06-30 Akim Demaille <akim@epita.fr>
1383
1384 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
1385 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
1386 * src/output.c, src/print.c, src/print_graph.c: Propagate.
1387 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
1388
5a08f1ce
AD
13892002-06-30 Akim Demaille <akim@epita.fr>
1390
1391 Make the test suite pass with warnings checked.
1392
1393 * tests/actions.at (Printers and Destructors): Improve.
1394 Avoid unsigned vs. signed issues.
1395 * tests/calc.at: Don't exercise the scanner here, do it...
1396 * tests/input.at (Torturing the Scanner): here.
1397
720623af
PH
13982002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1399
88e7e941 1400 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
1401 reorganize first lines parallel to yacc.c.
1402
fb8135fa
AD
14032002-06-28 Akim Demaille <akim@epita.fr>
1404
1405 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
1406 (b4_token_enum, b4_token_defines): New, factored from...
1407 * data/lalr1.cc, data/yacc.c, glr.c: here.
1408
41442480
AD
14092002-06-28 Akim Demaille <akim@epita.fr>
1410
1411 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
1412 unused variables.
1413 * src/output.c (merger_output): static.
1414
e0e5bf84
AD
14152002-06-28 Akim Demaille <akim@epita.fr>
1416
1417 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
1418 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
1419 pacify GCC.
1420 * src/output.c (save_row): Initialize all the variables to pacify GCC.
e0e5bf84 1421
676385e2
PH
14222002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1423
1424 Accumulated changelog for new GLR parsing features.
1425
6a254321 1426 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
1427 conflicts_total_count.
1428 * src/conflicts.h: Ditto.
1429 * src/output.c (token_actions): Use the new name.
1430 (output_conflicts): Change conflp => conflict_list_heads, and
1431 confl => conflict_list for better readability.
1432 * data/glr.c: Use the new names.
1433 * NEWS: Add self to GLR announcement.
e0e5bf84 1434
676385e2
PH
1435 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
1436
1437 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
1438 Akim Demaille.
1439
1440 * data/bison.glr: Change name to glr.c
1441 * data/glr.c: Renamed from bison.glr.
1442 * data/Makefile.am: Add glr.c
e0e5bf84
AD
1443
1444 * src/getargs.c:
1445
676385e2
PH
1446 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
1447 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 1448
676385e2
PH
1449 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1450
1451 * data/bison.glr: Be sure to restore the
1452 current #line when returning to the skeleton contents after having
1453 exposed the input file's #line.
1454
1455 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1456
1457 * data/bison.glr: Bring up to date with changes to bison.simple.
1458
1459 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1460
1461 * data/bison.glr: Correct definitions that use b4_prefix.
1462 Various reformatting.
1463 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
1464 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
1465 yytokenp argument; now part of stack.
1466 (yychar): Define to behave as documented.
1467 (yyclearin): Ditto.
e0e5bf84 1468
676385e2
PH
1469 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1470
1471 * src/reader.h: Add declaration for free_merger_functions.
1472
1473 * src/reader.c (merge_functions): New variable.
1474 (get_merge_function): New function.
1475 (free_merger_functions): New function.
1476 (readgram): Check for %prec that is not followed by a symbol.
1477 Handle %dprec and %merge declarations.
1478 (packgram): Initialize dprec and merger fields in rules array.
1479
1480 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
1481 conflict_list_cnt, conflict_list_free): New variables.
1482 (table_grow): Also grow conflict_table.
e0e5bf84 1483 (prepare_rules): Output dprec and merger tables.
676385e2 1484 (conflict_row): New function.
e0e5bf84 1485 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
1486 default reduction in conflicted states for GLR parser so that there
1487 are spaces for the conflict lists.
1488 (save_row): Also save conflict information.
1489 (token_actions): Allocate conflict list.
1490 (merger_output): New function.
1491 (pack_vector): Pack conflict table, too.
1492 (output_conflicts): New function to output yyconflp and yyconfl.
1493 (output_check): Allocate conflict_tos.
1494 (output_actions): Output conflict tables, also.
1495 (output_skeleton): Output b4_mergers definition.
1496 (prepare): Output b4_max_rhs_length definition.
1497 Use 'bison.glr' as default skeleton for GLR parsers.
1498
1499 * src/gram.c (glr_parser): New flag.
1500 (grammar_free): Call free_merger_functions.
1501
1502 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
1503 all pairs of conflicting reductions, rather than just all tokens
1504 causing conflicts. Needed to size conflict tables.
e0e5bf84 1505 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
1506 interface.
1507 (conflicts_print): Ditto.
1508 (count_total_conflicts): New function.
1509
1510 * src/reader.h (merger_list): New type.
1511 (merge_functions): New variable.
1512
1513 * src/lex.h (tok_dprec, tok_merge): New token types.
1514
1515 * src/gram.h (rule_s): Add dprec and merger fields.
1516 (glr_parser): New flag.
1517
1518 * src/conflicts.h (count_total_conflicts): New function.
1519
1520 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
1521
1522 * doc/bison.texinfo (Generalized LR Parsing): New section.
1523 (GLR Parsers): New section.
1524 (Language and Grammar): Mention GLR parsing.
1525 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
1526 Correct typo ("tge" -> "the").
1527
1528 * data/bison.glr: New skeleton for GLR parsing.
1529
1530 * tests/cxx-gram.at: New tests for GLR parsing.
1531
1532 * tests/testsuite.at: Include cxx-gram.at.
1533
1534 * tests/Makefile.am: Add cxx-gram.at.
e0e5bf84 1535
676385e2
PH
1536 * src/parse-gram.y:
1537
1538 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
1539
1540 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
e0e5bf84 1541
b5480d74 15422002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
1543
1544 * src/options.h, src/options.c: Remove.
1545 * src/getargs.c (short_options, long_options): New.
1546
60491a94
AD
15472002-06-27 Akim Demaille <akim@epita.fr>
1548
1549 * data/bison.simple, data/bison.c++: Rename as...
1550 * data/yacc.c, data/lalr1.cc: these.
1551 * doc/bison.texinfo (Environment Variables): Remove.
1552
9be0c25b
AD
15532002-06-25 Raja R Harinath <harinath@cs.umn.edu>
1554
1555 * src/getargs.c (report_argmatch): Initialize strtok().
1556
1ae72863
AD
15572002-06-20 Akim Demaille <akim@epita.fr>
1558
1559 * data/bison.simple (b4_symbol_actions): New, replaces...
1560 (b4_symbol_destructor, b4_symbol_printer): these.
1561 (yysymprint): Be sure to call YYPRINT only for tokens, and using
1562 user token numbers.
1563
87542d29
AD
15642002-06-20 Akim Demaille <akim@epita.fr>
1565
1566 * data/bison.simple (yydestructor): Rename as...
1567 (yydestruct): this.
1568
1a31ed21
AD
15692002-06-20 Akim Demaille <akim@epita.fr>
1570
1571 * src/symtab.h, src/symtab.c (symbol_type_set)
1572 (symbol_destructor_set, symbol_precedence_set): The location is
1573 the last argument.
1574 Adjust all callers.
1575
e776192e
AD
15762002-06-20 Akim Demaille <akim@epita.fr>
1577
1578 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
1579 internals.
1580 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
1581 Takes a location.
1582 * src/symtab.h, src/symtab.c (symbol_class_set)
1583 (symbol_user_token_number_set): Likewise.
1584 Adjust all callers.
1585 Promote complain_at.
1586 * tests/input.at (Type Clashes): Adjust.
1587
5c1180b3
AD
15882002-06-20 Akim Demaille <akim@epita.fr>
1589
1590 * data/bison.simple (YYLEX): Fix the declaration when
1591 %pure-parser.
1592
e3170060
AD
15932002-06-20 Akim Demaille <akim@epita.fr>
1594
1595 * data/bison.simple (yysymprint): Don't print the token number,
1596 just its name.
1597 * tests/actions.at (Destructors): Rename as...
1598 (Printers and Destructors): this.
1599 Also exercise %printer.
1600
253862fd
AD
16012002-06-20 Akim Demaille <akim@epita.fr>
1602
1603 * data/bison.simple (YYDSYMPRINT): New.
1604 Use it to remove many of the #if YYDEBUG/if (yydebug).
1605
366eea36
AD
16062002-06-20 Akim Demaille <akim@epita.fr>
1607
1608 * src/symtab.h, src/symtab.c (symbol_t): printer and
1609 printer_location are new members.
1610 (symbol_printer_set): New.
1611 * src/parse-gram.y (PERCENT_PRINTER): New token.
1612 Handle its associated rule.
1613 * src/scan-gram.l: Adjust.
1614 (handle_destructor_at, handle_destructor_dollar): Rename as...
1615 (handle_symbol_code_at, handle_symbol_code_dollar): these.
1616 * src/output.c (symbol_printers_output): New.
1617 (output_skeleton): Call it.
1618 * data/bison.simple (yysymprint): New. Cannot be named yyprint
1619 since there are already many grammar files with a user `yyprint'.
1620 Replace the calls to YYPRINT to calls to yysymprint.
1621 * tests/calc.at: Adjust.
1622 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
1623 taking advantage of parser very internal details (stack size!).
1624
4f25ebb0
AD
16252002-06-20 Akim Demaille <akim@epita.fr>
1626
1627 * src/scan-gram.l: Complete the scanner with the missing patterns
1628 to pacify Flex.
1629 Use `quote' and `symbol_tag_get' where appropriate.
1630
93b68a0e
AD
16312002-06-19 Akim Demaille <akim@epita.fr>
1632
1633 * tests/actions.at (Destructors): Augment to test locations.
1634 * data/bison.simple (yydestructor): Pass it the current location
1635 if locations are enabled.
1636 Prototype only when __STDC__ or C++.
1637 Change the argument names to move into the yy name space: there is
1638 user code here.
1639
58612f1d
AD
16402002-06-19 Akim Demaille <akim@epita.fr>
1641
74310291
AD
1642 * data/bison.simple (b4_pure_if): New.
1643 Use it instead of #ifdef YYPURE.
1644
16452002-06-19 Akim Demaille <akim@epita.fr>
1646
1647 * data/bison.simple (b4_location_if): New.
58612f1d
AD
1648 Use it instead of #ifdef YYLSP_NEEDED.
1649
f25bfb75
AD
16502002-06-19 Akim Demaille <akim@epita.fr>
1651
1652 Prepare @$ in %destructor, but currently don't bind it in the
1653 skeleton, as %location use is not cleaned up yet.
1654
1655 * src/scan-gram.l (handle_dollar, handle_destructor_at)
1656 (handle_action_at): New.
1657 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
1658 a braced_code_t and a location as additional arguments.
1659 (handle_destructor_dollar): Instead of requiring `b4_eval', just
1660 unquote one when outputting `b4_dollar_dollar'.
1661 Adjust callers.
1662 * data/bison.simple (b4_eval): Remove.
1663 (b4_symbol_destructor): Adjust.
1664 * tests/input.at (Invalid @n): Adjust.
1665
c732d2c6
AD
16662002-06-19 Zack Weinberg <zack@codesourcery.com>
1667
1668 * doc/bison.texinfo: Document ability to have multiple
1669 prologue sections.
1670
8c165d89
AD
16712002-06-18 Akim Demaille <akim@epita.fr>
1672
1673 * src/files.c (compute_base_names): When computing the output file
1674 names from the input file name, strip the directory part.
1675
ca98bf57
AD
16762002-06-18 Akim Demaille <akim@epita.fr>
1677
1678 * data/bison.simple.new: Comment changes.
1679 Reported by Andreas Schwab.
1680
0bfb02ff
AD
16812002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
1682
1683 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
1684 there are no `label `yyoverflowlab' defined but not used' warnings
1685 when yyoverflow is defined.
1686
24c0aad7
AD
16872002-06-18 Akim Demaille <akim@epita.fr>
1688
1689 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
1690 new member.
1691 (symbol_destructor_set): Adjust.
1692 * src/output.c (symbol_destructors_output): Output the destructor
1693 locations.
1694 Output the symbol name.
1695 * data/bison.simple (b4_symbol_destructor): Adjust.
1696
5719c109
AD
16972002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
1698 and Akim Demaille <akim@epita.fr>
1699
1700 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
1701 what's left on the stack when the error recovery hits EOF.
1702 * tests/actions.at (Destructors): Complete to exercise this case.
1703
9280d3ef
AD
17042002-06-17 Akim Demaille <akim@epita.fr>
1705
1706 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
1707 arguments is really empty, not only equal to `[]'.
1708 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
1709 member.
1710 (symbol_destructor_set): New.
1711 * src/output.c (symbol_destructors_output): New.
1712 * src/reader.h (brace_code_t, current_braced_code): New.
1713 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
1714 (handle_dollar): Rename as...
1715 (handle_action_dollar): this.
1716 (handle_destructor_dollar): New.
1717 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
1718 (grammar_declaration): Use it.
1719 * data/bison.simple (yystos): Is always defined.
1720 (yydestructor): New.
1721 * tests/actions.at (Destructors): New.
1722 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
1723
dafdc66f
AD
17242002-06-17 Akim Demaille <akim@epita.fr>
1725
1726 * src/symlist.h, src/symlist.c (symbol_list_length): New.
1727 * src/scan-gram.l (handle_dollar, handle_at): Compute the
1728 rule_length only when needed.
1729 * src/output.c (actions_output, token_definitions_output): Output
1730 the full M4 block.
1731 * src/symtab.c: Don't access directly to the symbol tag, use
1732 symbol_tag_get.
1733 * src/parse-gram.y: Use symbol_list_free.
1734
56c47203
AD
17352002-06-17 Akim Demaille <akim@epita.fr>
1736
1737 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
1738 (symbol_list_prepend, get_type_name): Move to...
1739 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
1740 (symbol_list_prepend, symbol_list_n_type_name_get): here.
1741 Adjust all callers.
1742 (symbol_list_free): New.
1743 * src/scan-gram.l (handle_dollar): Takes a location.
1744 * tests/input.at (Invalid $n): Adjust.
1745
1e0bab92
AD
17462002-06-17 Akim Demaille <akim@epita.fr>
1747
1748 * src/reader.h, src/reader.c (symbol_list_new): Export it.
1749 (symbol_list_prepend): New.
1750 * src/parse-gram.y (%union): `list' is a new member.
1751 (symbols.1): New, replaces...
1752 (terms_to_prec.1, nterms_to_type.1): these.
1753 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
1754 Take a location as additional argument.
1755 Adjust all callers.
1756
04e60654
AD
17572002-06-15 Akim Demaille <akim@epita.fr>
1758
1759 * src/parse-gram.y: Move %token in the declaration section so that
1760 we don't depend upon CVS Bison.
1761
10e5b8bd
AD
17622002-06-15 Akim Demaille <akim@epita.fr>
1763
1764 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
1765 * src/print.c (print_core): Use it.
1766
9801d40c
AD
17672002-06-15 Akim Demaille <akim@epita.fr>
1768
1769 * src/conflicts.c (log_resolution): Accept the rule involved in
1770 the sr conflicts instead of the lookahead number that points to
1771 that rule.
1772 (flush_reduce): Accept the current lookahead vector as argument,
1773 instead of the index in LA.
1774 (resolve_sr_conflict): Accept the current number of lookahead
1775 bitset to consider for the STATE, instead of the index in LA.
1776 (set_conflicts): Adjust.
1777 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
1778
c0263492
AD
17792002-06-15 Akim Demaille <akim@epita.fr>
1780
1781 * src/state.h (state_t): Replace the `lookaheadsp' member, a
1782 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
1783 Adjust all dependencies.
1784 * src/lalr.c (initialize_lookaheads): Split into...
1785 (states_lookaheads_count, states_lookaheads_initialize): these.
1786 (lalr): Adjust.
1787
9757c359
AD
17882002-06-15 Akim Demaille <akim@epita.fr>
1789
1790 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
1791 out of...
1792 (grammar_rules_print): here.
1793 * src/reduce.c (reduce_output): Use it.
1794 * tests/reduce.at (Useless Rules, Reduced Automaton)
1795 (Underivable Rules): Adjust.
1796
6b98e4b5
AD
17972002-06-15 Akim Demaille <akim@epita.fr>
1798
1799 Copy BYacc's nice way to report the grammar.
1800
1801 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
1802 New.
1803 Don't print the rules' location, it is confusing and useless.
1804 (rule_print): Use grammar_rhs_print.
1805 * src/print.c (print_grammar): Use grammar_rules_print.
1806
6b98e4b5
AD
18072002-06-15 Akim Demaille <akim@epita.fr>
1808
1809 Complete and rationalize `useless thing' warnings.
1810
1811 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
1812 (symbol_tag_print): New.
1813 Use them everywhere in place of accessing directly the tag member.
1814 * src/gram.h, src/gram.c (rule_print): New.
1815 Use it where a rule used to be printed `by hand'.
1816 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
1817 (reduce_grammar_tables): Report the useless rules.
1818 (reduce_print): Useless things are a warning, not an error.
1819 Report it as such.
1820 * tests/reduce.at (Useless Nonterminals, Useless Rules):
1821 (Reduced Automaton, Underivable Rules): Adjust.
1822 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
1823 * tests/conflicts.at (Unresolved SR Conflicts)
1824 (Solved SR Conflicts): Adjust.
1825
ee000ba4
AD
18262002-06-15 Akim Demaille <akim@epita.fr>
1827
1828 Let symbols have a location.
1829
1830 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
1831 (getsym): Adjust.
1832 Adjust all callers.
1833 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
1834 Use location_t, not int.
1835 * src/symtab.c (symbol_check_defined): Take advantage of the
1836 location.
1837 * tests/regression.at (Invalid inputs): Adjust.
1838
8efe435c
AD
18392002-06-15 Akim Demaille <akim@epita.fr>
1840
1841 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
1842 (input): Don't try to initialize yylloc here, do it in the
1843 scanner.
1844 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
1845 * src/gram.h (rule_t): Change line and action_line into location
1846 and action_location, of location_t type.
1847 Adjust all dependencies.
1848 * src/location.h, src/location.c (empty_location): New.
1849 * src/reader.h, src/reader.c (grammar_start_symbol_set)
1850 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
1851 (grammar_current_rule_symbol_append)
1852 (grammar_current_rule_action_append): Expect a location as argument.
1853 * src/reader.c (grammar_midrule_action): Adjust to attach an
1854 action's location as dummy symbol location.
1855 * src/symtab.h, src/symtab.c (startsymbol_location): New.
1856 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
1857 the line numbers.
1858
1921f1d7
AD
18592002-06-14 Akim Demaille <akim@epita.fr>
1860
1861 Grammar declarations may be found in the grammar section.
1862
1863 * src/parse-gram.y (rules_or_grammar_declaration): New.
1864 (declarations): Each declaration may end with a semicolon, not
1865 just...
1866 (grammar_declaration): `"%union"'.
1867 (grammar): Branch to rules_or_grammar_declaration.
1868
4515534c
AD
18692002-06-14 Akim Demaille <akim@epita.fr>
1870
1871 * src/main.c (main): Invoke scanner_free.
1872
f958596b
AD
18732002-06-14 Akim Demaille <akim@epita.fr>
1874
1875 * src/output.c (m4_invoke): Extracted from...
1876 (output_skeleton): here.
1877 Free tempfile.
1878
2c569025
AD
18792002-06-14 Akim Demaille <akim@epita.fr>
1880
1881 * src/parse-gram.y (directives, directive, gram)
1882 (grammar_directives, precedence_directives, precedence_directive):
1883 Rename as...
1884 (declarations, declaration, grammar, grammar_declaration)
1885 (precedence_declaration, precedence_declarator): these.
1886 (symbol_declaration): New.
1887
592e8d4d
AD
18882002-06-14 Akim Demaille <akim@epita.fr>
1889
1890 * src/files.c (action_obstack): Remove, unused.
1891 (output_obstack): Remove it, and all its dependencies, as it is no
1892 longer needed.
1893 * src/reader.c (epilogue_set): Build the epilogue in the
1894 muscle_obstack.
1895 * src/output.h, src/output.c (muscle_obstack): Move to...
1896 * src/muscle_tab.h, src/muscle_tab.h: here.
1897 (muscle_init): Initialize muscle_obstack.
1898 (muscle_free): New.
1899 * src/main.c (main): Call it.
1900
0c15323d
AD
19012002-06-14 Akim Demaille <akim@epita.fr>
1902
1903 * src/location.h: New, extracted from...
1904 * src/reader.h: here.
1905 * src/Makefile.am (noinst_HEADERS): Merge into
1906 (bison_SOURCES): this.
1907 Add location.h.
1908 * src/parse-gram.y: Use location_t instead of Bison's.
1909 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
1910 Use location_t instead of ints.
1911
e96c9728
AD
19122002-06-14 Akim Demaille <akim@epita.fr>
1913
1914 * data/bison.simple, data/bison.c++: Be sure to restore the
1915 current #line when returning to the skeleton contents after having
1916 exposed the input file's #line.
1917
75d1fe16
AD
19182002-06-12 Akim Demaille <akim@epita.fr>
1919
1920 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
1921 eager.
1922 * tests/actions.at (Exotic Dollars): New.
1923
6c35d22c
AD
19242002-06-12 Akim Demaille <akim@epita.fr>
1925
1926 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
1927 ['"/] too eagerly.
1928 * tests/input.at (Torturing the Scanner): New.
1929
1d6412ad
AD
19302002-06-11 Akim Demaille <akim@epita.fr>
1931
1932 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
1933 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
1934 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
1935 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
1936 * src/reader.c (reader): Use it.
1937
4cdb01db
AD
19382002-06-11 Akim Demaille <akim@epita.fr>
1939
1940 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
1941 Adjust all callers.
1942 (scanner_last_string_free): New.
1943
44995b2e
AD
19442002-06-11 Akim Demaille <akim@epita.fr>
1945
1946 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
1947 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
1948 (last_string, YY_OBS_FREE): New.
1949 Use them when returning an ID.
1950
e9955c83
AD
19512002-06-11 Akim Demaille <akim@epita.fr>
1952
1953 Have Bison grammars parsed by a Bison grammar.
1954
1955 * src/reader.c, src/reader.h (prologue_augment): New.
1956 * src/reader.c (copy_definition): Remove.
1957
1958 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
1959 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
1960 (grammar_current_rule_prec_set, grammar_current_rule_check)
1961 (grammar_current_rule_symbol_append)
1962 (grammar_current_rule_action_append): Export.
1963 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
1964 (symbol_list_action_append): Remove.
1965 Hook the routines from reader.
1966 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
1967 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
1968
1969 * src/reader.c (read_declarations): Remove, unused.
1970
1971 * src/parse-gram.y: Handle the epilogue.
1972 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
1973 (grammar_start_symbol_set): this.
1974 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
1975 * src/reader.c (readgram): Remove, unused.
1976 (reader): Adjust to insert eoftoken and axiom where appropriate.
1977
1978 * src/reader.c (copy_dollar): Replace with...
1979 * src/scan-gram.h (handle_dollar): this.
1980 * src/parse-gram.y: Remove `%thong'.
1981
1982 * src/reader.c (copy_at): Replace with...
1983 * src/scan-gram.h (handle_at): this.
1984
1985 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
1986 New.
1987
1988 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
1989 time being.
1990
1991 * src/reader.h, src/reader.c (grammar_rule_end): New.
1992
1993 * src/parse.y (current_type, current_class): New.
1994 Implement `%nterm', `%token' support.
1995 Merge `%term' into `%token'.
1996 (string_as_id): New.
1997 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
1998 type name.
1999
2000 * src/parse-gram.y: Be sure to handle properly the beginning of
2001 rules.
2002
2003 * src/parse-gram.y: Handle %type.
2004 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
2005
2006 * src/parse-gram.y: More directives support.
2007 * src/options.c: No longer handle source directives.
2008
2009 * src/parse-gram.y: Fix %output.
2010
2011 * src/parse-gram.y: Handle %union.
2012 Use the prologue locations.
2013 * src/reader.c (parse_union_decl): Remove.
2014
2015 * src/reader.h, src/reader.c (epilogue_set): New.
2016 * src/parse-gram.y: Use it.
2017
2018 * data/bison.simple, data/bison.c++: b4_stype is now either not
2019 defined, then default to int, or to the contents of %union,
2020 without `union' itself.
2021 Adjust.
2022 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
2023
2024 * src/output.c (actions_output): Don't output braces, as they are
2025 already handled by the scanner.
2026
2027 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
2028 characters to themselves.
2029
2030 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
2031 that the epilogue has a proper #line.
2032
2033 * src/parse-gram.y: Handle precedence/associativity.
2034
2035 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
2036 a terminal.
2037 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
2038 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
2039 at all to define terminals that cannot be emitted.
2040
2041 * src/scan-gram.l: Escape M4 characters.
2042
2043 * src/scan-gram.l: Working properly with escapes in user
2044 strings/characters.
2045
2046 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
2047 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
2048 grammar.
2049 Use more modest sizes, as for the time being the parser does not
2050 release memory, and therefore the process swallows a huge amount
2051 of memory.
2052
2053 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
2054 stricter %token grammar.
2055
2056 * src/symtab.h (associativity): Add `undef_assoc'.
2057 (symbol_precedence_set): Do nothing when passed an undef_assoc.
2058 * src/symtab.c (symbol_check_alias_consistence): Adjust.
2059
2060 * tests/regression.at (Invalid %directive): Remove, as it is now
2061 meaningless.
2062 (Invalid inputs): Adjust to the new error messages.
2063 (Token definitions): The new grammar doesn't allow too many
2064 eccentricities.
2065
2066 * src/lex.h, src/lex.c: Remove.
2067 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
2068 (copy_character, copy_string2, copy_string, copy_identifier)
2069 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
2070 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
2071 (parse_action): Remove.
2072 * po/POTFILES.in: Adjust.
2073
2e047461
AD
20742002-06-11 Akim Demaille <akim@epita.fr>
2075
2076 * src/reader.c (parse_action): Don't store directly into the
2077 rule's action member: return the action as a string.
2078 Don't require `rule_length' as an argument: compute it.
2079 (grammar_current_rule_symbol_append)
2080 (grammar_current_rule_action_append): New, eved out from
2081 (readgram): here.
2082 Remove `action_flag', `rulelength', unused now.
2083
9af3fbce
AD
20842002-06-11 Akim Demaille <akim@epita.fr>
2085
2086 * src/reader.c (grammar_current_rule_prec_set).
2087 (grammar_current_rule_check): New, eved out from...
2088 (readgram): here.
2089 Remove `xaction', `first_rhs': useless.
2090 * tests/input.at (Type clashes): New.
2091 * tests/existing.at (GNU Cim Grammar): Adjust.
2092
1485e106
AD
20932002-06-11 Akim Demaille <akim@epita.fr>
2094
2095 * src/reader.c (grammar_midrule_action): New, Eved out from
2096 (readgram): here.
2097
da4160c3
AD
20982002-06-11 Akim Demaille <akim@epita.fr>
2099
2100 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
2101 New.
2102 (readgram): Use them as replacement of inlined code, crule and
2103 crule1.
2104
f6d0f937
AD
21052002-06-11 Akim Demaille <akim@epita.fr>
2106
2107 * src/reader.c (grammar_end, grammar_symbol_append): New.
2108 (readgram): Use them.
2109 Make the use of `p' as local as possible.
2110
69078d4b
AD
21112002-06-10 Akim Demaille <akim@epita.fr>
2112
2113 GCJ's parser requires the tokens to be defined before the prologue.
2114
2115 * data/bison.simple: Output the token definition before the user's
2116 prologue.
2117 * tests/regression.at (Braces parsing, Duplicate string)
2118 (Mixing %token styles): Check the output from bison.
2119 (Early token definitions): New.
2120
5e424082
AD
21212002-06-10 Akim Demaille <akim@epita.fr>
2122
2123 * src/symtab.c (symbol_user_token_number_set): Don't complain when
2124 assigning twice the same user number to a token, so that we can
2125 use it in...
2126 * src/lex.c (lex): here.
2127 Also use `symbol_class_set' instead of hand written code.
2128 * src/reader.c (parse_assoc_decl): Likewise.
2129
44536b35
AD
21302002-06-10 Akim Demaille <akim@epita.fr>
2131
2132 * src/symtab.c, src/symtab.c (symbol_class_set)
2133 (symbol_user_token_number_set): New.
2134 * src/reader.c (parse_token_decl): Use them.
2135 Use a switch instead of ifs.
2136 Use a single argument.
2137
8b9f2372
AD
21382002-06-10 Akim Demaille <akim@epita.fr>
2139
2140 Remove `%thong' support as it is undocumented, unused, duplicates
2141 `%token's job, and creates useless e-mail traffic with people who
2142 want to know what it is, why it is undocumented, unused, and
2143 duplicates `%token's job.
2144
2145 * src/reader.c (parse_thong_decl): Remove.
2146 * src/options.c (option_table): Remove "thong".
2147 * src/lex.h (tok_thong): Remove.
2148
3ae2b51f
AD
21492002-06-10 Akim Demaille <akim@epita.fr>
2150
2151 * src/symtab.c, src/symtab.c (symbol_type_set)
2152 (symbol_precedence_set): New.
2153 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
2154 (value_components_used): Remove, unused.
2155
2f1afb73
AD
21562002-06-09 Akim Demaille <akim@epita.fr>
2157
2158 Move symbols handling code out of the reader.
2159
2160 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
2161 (axiom): Move to...
2162 * src/symtab.h, src/symtab.c: here.
2163
2164 * src/gram.c (start_symbol): Remove: use startsymbol->number.
2165 * src/reader.c (startval): Rename as...
2166 * src/symtab.h, src/symtab.c (startsymbol): this.
2167 * src/reader.c: Adjust.
2168
2169 * src/reader.c (symbol_check_defined, symbol_make_alias)
2170 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
2171 (token_translations_init)
2172 Move to...
2173 * src/symtab.c: here.
2174 * src/reader.c (packsymbols): Move to...
2175 * src/symtab.h, src/symtab.c (symbols_pack): here.
2176 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
2177 argument.
2178
e9bca3ad
AD
21792002-06-03 Akim Demaille <akim@epita.fr>
2180
2181 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
2182 then statements.
2183
86eff183
AD
21842002-06-03 Akim Demaille <akim@epita.fr>
2185
2186 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
2187 structs with non literals.
2188 * src/scan-skel.l: never-interactive.
2189 * src/conflicts.c (enum conflict_resolution_e): No trailing
2190 comma.
2191 * src/getargs.c (usage): Split long literal strings.
2192 Reported by Hans Aberg.
2193
717be197
AD
21942002-05-28 Akim Demaille <akim@epita.fr>
2195
2196 * data/bison.c++: Use C++ ostreams.
2197 (cdebug_): New member.
2198
670ddffd
AD
21992002-05-28 Akim Demaille <akim@epita.fr>
2200
2201 * src/output.c (output_skeleton): Be sure to allocate enough room
2202 for `/' _and_ for `\0' in full_skeleton.
2203
769b430f
AD
22042002-05-28 Akim Demaille <akim@epita.fr>
2205
2206 * data/bison.c++: Catch up with bison.simple:
2207 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2208 and Paul Eggert <eggert@twinsun.com>: `error' handing.
2209 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
2210 and popping traces.
2211
7067cb36
PH
22122002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2213
2214 * src/output.c (output_skeleton): Put an explicit path in front of
2215 the skeleton file name, rather than relying on the -I directory,
2216 to partially alleviate effects of having a skeleton file lying around
2217 in the current directory.
769b430f 2218
4a713ec2
PH
22192002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2220
769b430f 2221 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
2222 obstack_printf should be obstack_fgrow1.
2223
b408954b
AD
22242002-05-26 Akim Demaille <akim@epita.fr>
2225
2226 * src/state.h (state_t): `solved_conflicts' is a new member.
2227 * src/LR0.c (new_state): Set it to 0.
2228 * src/conflicts.h, src/conflicts.c (print_conflicts)
2229 (free_conflicts, solve_conflicts): Rename as...
2230 (conflicts_print, conflicts_free, conflicts_solve): these.
2231 Adjust callers.
2232 * src/conflicts.c (enum conflict_resolution_e)
2233 (solved_conflicts_obstack): New, used by...
2234 (log_resolution): this.
2235 Adjust to attach the conflict resolution to each state.
2236 Complete the description with the precedence/associativity
2237 information.
2238 (resolve_sr_conflict): Adjust.
2239 * src/print.c (print_state): Output its solved_conflicts.
2240 * tests/conflicts.at (Unresolved SR Conflicts)
2241 (Solved SR Conflicts): Exercise --report=all.
2242
a49aecd5
AD
22432002-05-26 Akim Demaille <akim@epita.fr>
2244
2245 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
2246 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
2247 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
2248 (token_number_t, item_number_as_token_number)
2249 (token_number_as_item_number, muscle_insert_token_number_table):
2250 Rename as...
2251 (symbol_number_t, item_number_as_symbol_number)
2252 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
2253 these, since it is more appropriate.
2254
5504898e
AD
22552002-05-26 Akim Demaille <akim@epita.fr>
2256
2257 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
2258 `Error:' lines.
2259 * data/bison.simple (yystos) [YYDEBUG]: New.
2260 (yyparse) [YYDEBUG]: Display the symbols which are popped during
2261 error recovery.
2262 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
2263
ec3bc396
AD
22642002-05-25 Akim Demaille <akim@epita.fr>
2265
2266 * doc/bison.texinfo (Debugging): Split into...
2267 (Tracing): this new section, its former contents, and...
2268 (Understanding): this new section.
2269 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
2270 by...
2271 (report_flag): this.
2272 Adjust all dependencies.
2273 (report_args, report_types, report_argmatch): New.
2274 (usage, getargs): Report/support -r, --report.
2275 * src/options.h
2276 (struct option_table_struct): Rename as..,
2277 (struct option_table_s): this.
2278 Rename the `set_flag' member to `flag' to match with getopt_long's
2279 struct.
2280 * src/options.c (option_table): Split verbose into an entry for
2281 %verbose, and another for --verbose.
2282 Support --report/-r, so remove -r from the obsolete --raw.
2283 * src/print.c: Attach full item sets and lookaheads reports to
2284 report_flag instead of trace_flag.
2285 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
2286
78df8250
PE
22872002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2288 and Paul Eggert <eggert@twinsun.com>
769b430f 2289
78df8250
PE
2290 * data/bison.simple (yyparse): Correct error handling to conform to
2291 POSIX and yacc. Specifically, after syntax error is discovered,
2292 do not reduce further before shifting the error token.
2293 Clean up the code a bit by removing the labels yyerrdefault,
2294 yyerrhandle, yyerrpop.
2295 * NEWS: Document the above.
2296
c0c9ea05
PH
22972002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2298
2299 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
2300 type; it isn't always big enough, since it doesn't necessarily
2301 include non-terminals.
769b430f 2302 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
2303 the latter can be removed.
2304 (yy_token_number_type): Remove, only one use.
2305 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
2306 don't use TokenNumberType as element type.
769b430f 2307
c0c9ea05
PH
2308 * tests/regression.at: Modify expected output to agree with change
2309 to yyr1 and yytranslate.
769b430f 2310
6390a83f
FK
23112002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
2312
2313 * src/reader.c (parse_action): Use copy_character instead of
2314 obstack_1grow.
2315
db7c8e9a
AD
23162002-05-13 Akim Demaille <akim@epita.fr>
2317
2318 * tests/regression.at (Token definitions): Prototype yylex and
2319 yyerror.
2320
fcc61800
PH
23212002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2322
158c687b 2323 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
2324 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
2325 32-bit arithmetic.
2326 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
2327
5683e9b2
AD
23282002-05-07 Akim Demaille <akim@epita.fr>
2329
2330 * tests/synclines.at: Be sure to prototype yylex and yyerror to
2331 avoid GCC warnings.
2332
0c2d3f4c
AD
23332002-05-07 Akim Demaille <akim@epita.fr>
2334
2335 Kill GCC warnings.
2336
2337 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
2338 over the RHS of each rule.
2339 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
2340 * src/state.h (state_t): Member `nitems' is unsigned short.
2341 * src/LR0.c (get_state): Adjust.
2342 * src/reader.c (packgram): Likewise.
2343 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
2344 `Type'.
2345 (muscle_insert_int_table): Remove, unused.
2346 (prepare_rules): Remove `max'.
2347
1565b720
AD
23482002-05-06 Akim Demaille <akim@epita.fr>
2349
2350 * src/closure.c (print_firsts): Display of the symbol tags.
2351 (bitmatrix_print): Move to...
2352 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
2353 here.
2354 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
2355
cfaee611
AD
23562002-05-06 Akim Demaille <akim@epita.fr>
2357
2358 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
2359 hash_do_for_each.
2360
458be8e0
AD
23612002-05-06 Akim Demaille <akim@epita.fr>
2362
2363 * src/LR0.c (new_state, get_state): Instead of using the global
2364 `kernel_size' and `kernel_base', have two new arguments:
2365 `core_size' and `core'.
2366 Adjust callers.
2367
a900a624
AD
23682002-05-06 Akim Demaille <akim@epita.fr>
2369
2370 * src/reader.c (packgram): No longer end `ritem' with a 0
2371 sentinel: it is not used.
2372
d4e7d3a1
AD
23732002-05-05 Akim Demaille <akim@epita.fr>
2374
2375 New experimental feature: display the lookaheads in the report and
2376 graph.
2377
2378 * src/print (print_core): When --trace-flag, display the rules
2379 lookaheads.
2380 * src/print_graph.c (print_core): Likewise.
2381 Swap the arguments.
2382 Adjust caller.
2383
39ceb25b
AD
23842002-05-05 Akim Demaille <akim@epita.fr>
2385
2386 * tests/torture.at (Many lookaheads): New test.
2387
5372019f
AD
23882002-05-05 Akim Demaille <akim@epita.fr>
2389
2390 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
2391 (GENERATE_MUSCLE_INSERT_TABLE): this.
2392 (output_int_table, output_unsigned_int_table, output_short_table)
2393 (output_token_number_table, output_item_number_table): Replace with...
2394 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
2395 (muscle_insert_short_table, muscle_insert_token_number_table)
2396 (muscle_insert_item_number_table): these.
2397 Adjust all callers.
2398 (prepare_tokens): Don't free `translations', since...
2399 * src/reader.h, src/reader.c (grammar_free): do it.
2400 Move to...
2401 * src/gram.h, src/gram.c (grammar_free): here.
2402 * data/bison.simple, data/bison.c++: b4_token_number_max is now
2403 b4_translate_max.
2404
5df5f6d5
AD
24052002-05-05 Akim Demaille <akim@epita.fr>
2406
2407 * src/output.c (output_unsigned_int_table): New.
2408 (prepare_rules): `i' is unsigned.
2409 `prhs', `rline', `r2' are unsigned int.
2410 Rename muscle `rhs_number_max' as `rhs_max'.
2411 Output muscles `prhs_max', `rline_max', and `r2_max'.
2412 Free rline and r1.
2413 * data/bison.simple, data/bison.c++: Adjust to use these muscles
2414 to compute types instead of constant types.
2415 * tests/regression.at (Web2c Actions): Adjust.
2416
b87f8b21
AD
24172002-05-04 Akim Demaille <akim@epita.fr>
2418
2419 * src/symtab.h (SALIAS, SUNDEF): Rename as...
2420 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
2421 Adjust dependencies.
2422 * src/output.c (token_definitions_output): Be sure not to output a
2423 `#define 'a'' when fed with `%token 'a' "a"'.
2424 * tests/regression.at (Token definitions): New.
2425
8bb936e4
PE
24262002-05-03 Paul Eggert <eggert@twinsun.com>
2427
2428 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
2429 for K&R C.
2430
24312002-05-03 gettextize <bug-gnu-gettext@gnu.org>
2432
2433 * Makefile.am (SUBDIRS): Remove intl.
2434 (EXTRA_DIST): Add config/config.rpath.
2435
53c71a12
AD
24362002-05-03 Akim Demaille <akim@epita.fr>
2437
2438 * data/bison.simple (m4_if): Don't output empty enums.
2439 And actually, output valid enum definitions :(.
2440
289dd0cf
AD
24412002-05-03 Akim Demaille <akim@epita.fr>
2442
2443 * configure.bat: Remove, completely obsolete.
2444 * Makefile.am (EXTRA_DIST): Adjust.
2445 Don't distribute config.rpath...
2446 * config/Makefile.am (EXTRA_DIST): Do it.
2447
db85e524
AD
24482002-05-03 Akim Demaille <akim@epita.fr>
2449
2450 * configure.in (GETTEXT_VERSION): New.
2451 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
2452
83ccf991
AD
24532002-05-03 Akim Demaille <akim@epita.fr>
2454
2455 * data/bison.simple (b4_token_enum): New.
2456 (b4_token_defines): Use it to output tokens both as #define and
2457 enums.
2458 Suggested by Paul Eggert.
2459 * src/output.c (token_definitions_output): Don't output spurious
2460 white spaces.
2461
1f418995
AD
24622002-05-03 Akim Demaille <akim@epita.fr>
2463
2464 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
2465
45119f04
RA
24662002-05-02 Robert Anisko <robert@lrde.epita.fr>
2467
2468 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
2469 Update the stack class, give a try to deque as the default container.
2470
b2d52318
AD
24712002-05-02 Akim Demaille <akim@epita.fr>
2472
2473 * data/bison.simple (yyparse): Do not implement @$ = @1.
2474 (YYLLOC_DEFAULT): Adjust to do it.
2475 * doc/bison.texinfo (Location Default Action): Fix.
2476
3a8b4109
AD
24772002-05-02 Akim Demaille <akim@epita.fr>
2478
2479 * src/reader.c (parse_braces): Merge into...
2480 (parse_action): this.
2481
84614e13
AD
24822002-05-02 Akim Demaille <akim@epita.fr>
2483
2484 * configure.in (ALL_LINGUAS): Remove.
2485 * po/LINGUAS, hr.po: New.
2486
fdbcd8e2
AD
24872002-05-02 Akim Demaille <akim@epita.fr>
2488
2489 Remove the so called hairy (semantic) parsers.
2490
2491 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
2492 * src/gram.h, src/gram.c (semantic_parser): Remove.
2493 (rule_t): Remove the guard and guard_line members.
2494 * src/lex.h (token_t): remove tok_guard.
2495 * src/options.c (option_table): Remove %guard and %semantic_parser
2496 support.
2497 * src/output.c, src/output.h (guards_output): Remove.
2498 (prepare): Adjust.
2499 (token_definitions_output): Don't output the `T'
2500 tokens (???).
2501 (output_skeleton): Don't output the guards.
2502 * src/files.c, src/files.c (attrsfile): Remove.
2503 * src/reader.c (symbol_list): Remove the guard and guard_line
2504 members.
2505 Adjust dependencies.
2506 (parse_guard): Remove.
2507 * data/bison.hairy: Remove.
2508 * doc/bison.texinfo (Environment Variables): Remove occurrences of
2509 BISON_HAIRY.
2510
82b6cb3f
AD
25112002-05-02 Akim Demaille <akim@epita.fr>
2512
2513 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
2514 (parse_guard): Rename the formal argument `stack_offset' as
2515 `rule_length', which is more readable.
2516 Adjust callers.
2517 (copy_at, copy_dollar): Instead of outputting the hard coded
2518 values of $$, $n and so forth, output invocation to b4_lhs_value,
2519 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
2520 Note: this patch partially drops `semantic-parser' support: it
2521 always does `rule_length - n', where semantic parsers ought to
2522 always use `-n'.
82b6cb3f
AD
2523 * data/bison.simple, data/bison.c++ (b4_lhs_value)
2524 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
2525
6cbfbcc5
AD
25262002-05-02 Akim Demaille <akim@epita.fr>
2527
2528 * configure.in (AC_INIT): Bump to 1.49b.
2529 (AM_INIT_AUTOMAKE): Short invocation.
2530
b8548114
AD
25312002-05-02 Akim Demaille <akim@epita.fr>
2532
2533 Version 1.49a.
2534
c20cd1fa
AD
25352002-05-01 Akim Demaille <akim@epita.fr>
2536
2537 * src/skeleton.h: Remove.
2538
8a9566d4
AD
25392002-05-01 Akim Demaille <akim@epita.fr>
2540
2541 * src/skeleton.h: Fix the #endif.
2542 Reported by Magnus Fromreide.
2543
8c6d399a
PE
25442002-04-26 Paul Eggert <eggert@twinsun.com>
2545
2546 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
2547 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 2548 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 2549
2b7ed18a
RA
25502002-04-25 Robert Anisko <robert@lrde.epita.fr>
2551
2552 * src/scan-skel.l: Postprocess quadrigraphs.
2553
2554 * src/reader.c (copy_character): New function, used to output
2555 single characters while replacing `[' and `]' with quadrigraphs, to
2556 avoid troubles with M4 quotes.
2557 (copy_comment): Output characters with copy_character.
2558 (read_additionnal_code): Likewise.
2559 (copy_string2): Likewise.
2560 (copy_definition): Likewise.
2561
2562 * tests/calc.at: Exercise M4 quoting.
2563
34a89c50
AD
25642002-04-25 Akim Demaille <akim@epita.fr>
2565
2566 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
2567 between `!' and the command.
2568 Reported by Paul Eggert.
2569
0dd1580a
RA
25702002-04-24 Robert Anisko <robert@lrde.epita.fr>
2571
2572 * tests/calc.at: Exercise prologue splitting.
2573
2574 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
2575 `b4_post_prologue' instead of `b4_prologue'.
2576
2577 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
2578 muscles.
2579 (output): Free pre_prologue_obstack and post_prologue_obstack.
2580 * src/files.h, src/files.c (attrs_obstack): Remove.
2581 (pre_prologue_obstack, post_prologue_obstack): New.
2582 * src/reader.c (copy_definition): Add a parameter to specify the
2583 obstack to fill, instead of using attrs_obstack unconditionally.
2584 (read_declarations): Pass pre_prologue_obstack to copy_definition if
2585 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
2586
83c1796f
PE
25872002-04-23 Paul Eggert <eggert@twinsun.com>
2588
2589 * data/bison.simple: Remove unnecessary commentary and white
2590 space differences from 1_29-branch.
2591 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
2592
2593 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
2594 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
2595 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
2596 constructors or destructors.
2597
2598 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
2599
1207eeac
AD
26002002-04-23 Akim Demaille <akim@epita.fr>
2601
2602 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
2603 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
2604 location with columns.
2605 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
2606 All reported by Paul Eggert.
2607
78ab8f67
AD
26082002-04-22 Akim Demaille <akim@epita.fr>
2609
2610 * src/reduce.c (dump_grammar): Move to...
2611 * src/gram.h, src/gram.c (grammar_dump): here.
2612 Be sure to separate long item numbers.
2613 Don't read the members of a rule's prec if its nil.
2614
133c20e2
AD
26152002-04-22 Akim Demaille <akim@epita.fr>
2616
2617 * src/output.c (table_size, table_grow): New.
2618 (MAXTABLE): Remove, replace uses with table_size.
2619 (pack_vector): Instead of dying when the table is too big, grow it.
2620
9515e8a7
AD
26212002-04-22 Akim Demaille <akim@epita.fr>
2622
2623 * data/bison.simple (yyr1): Its type is that of a token number.
2624 * data/bison.c++ (r1_): Likewise.
2625 * tests/regression.at (Web2c Actions): Adjust.
2626
23c5a174
AD
26272002-04-22 Akim Demaille <akim@epita.fr>
2628
2629 * src/reader.c (token_translations_init): 256 is now the default
2630 value for the error token, i.e., it will be assigned another
2631 number if the user assigned 256 to one of her tokens.
2632 (reader): Don't force 256 to error.
2633 * doc/bison.texinfo (Symbols): Adjust.
2634 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
2635 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
2636 etc. instead of 10, 20, 30 (which was used to `jump' over error
2637 (256) and undefined (2)).
2638
5fbb0954
AD
26392002-04-22 Akim Demaille <akim@epita.fr>
2640
2641 Propagate more token_number_t.
2642
2643 * src/gram.h (token_number_as_item_number)
2644 (item_number_as_token_number): New.
2645 * src/output.c (GENERATE_OUTPUT_TABLE): New.
2646 Use it to create output_item_number_table and
2647 output_token_number_table.
2648 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
2649 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
2650 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
2651 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
2652
4f940944
AD
26532002-04-22 Akim Demaille <akim@epita.fr>
2654
2655 * src/output.h, src/output.c (get_lines_number): Remove.
2656
3ded9a63
AD
26572002-04-19 Akim Demaille <akim@epita.fr>
2658
2659 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
2660 as Lex/Flex'.
2661 (Debugging): More details about enabling the debugging features.
2662 (Table of Symbols): Describe $$, $n, @$, and @n.
2663 Suggested by Tim Josling.
2664
e0c471a9
AD
26652002-04-19 Akim Demaille <akim@epita.fr>
2666
2667 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
2668
fecc10cd
AD
26692002-04-10 Akim Demaille <akim@epita.fr>
2670
2671 * src/system.h: Rely on HAVE_LIMITS_H.
2672 Suggested by Paul Eggert.
2673
51dec47b
AD
26742002-04-09 Akim Demaille <akim@epita.fr>
2675
2676 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
2677 full stderr, and strip it according to the bison options, instead
2678 of composing the error message from different bits.
2679 This makes it easier to check for several error messages.
2680 Adjust all the invocations.
2681 Add an invocation exercising the error token.
2682 Add an invocation demonstrating a stupid error message.
2683 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
2684 Adjust the tests.
2685 Error message are for stderr, not stdout.
2686
007a50a4
AD
26872002-04-09 Akim Demaille <akim@epita.fr>
2688
2689 * src/gram.h, src/gram.c (error_token_number): Remove, use
2690 errtoken->number.
2691 * src/reader.c (reader): Don't specify the user token number (2)
2692 for $undefined, as it uselessly prevents using it.
2693 * src/gram.h (token_number_t): Move to...
2694 * src/symtab.h: here.
2695 (state_t.number): Is a token_number_t.
2696 * src/print.c, src/reader.c: Use undeftoken->number instead of
2697 hard coded 2.
2698 (Even though this 2 is not the same as above: the number of the
2699 undeftoken remains being 2, it is its user token number which
2700 might not be 2).
2701 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
2702 `user_token_number_max'.
2703 Output `undef_token_number'.
2704 * data/bison.simple, data/bison.c++: Use them.
2705 Be sure to map invalid yylex return values to
2706 `undef_token_number'. This saves us from gratuitous SEGV.
2707
2708 * tests/conflicts.at (Solved SR Conflicts)
2709 (Unresolved SR Conflicts): Adjust.
2710 * tests/regression.at (Web2c Actions): Adjust.
2711
06446ccf
AD
27122002-04-08 Akim Demaille <akim@epita.fr>
2713
2714 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
2715 Adding #line.
2716 Remove the duplicate `typedefs'.
2717 (RhsNumberType): Fix the declaration and various other typos.
2718 Use __ofile__.
2719 * data/bison.simple: Use __ofile__.
2720 * src/scan-skel.l: Handle __ofile__.
2721
62a3e4f0
AD
27222002-04-08 Akim Demaille <akim@epita.fr>
2723
2724 * src/gram.h (item_number_t): New, the type of item numbers in
2725 RITEM. Note that it must be able to code symbol numbers as
2726 positive number, and the negation of rule numbers as negative
2727 numbers.
2728 Adjust all dependencies (pretty many).
2729 * src/reduce.c (rule): Remove this `short *' pointer: use
2730 item_number_t.
2731 * src/system.h (MINSHORT, MAXSHORT): Remove.
2732 Include `limits.h'.
2733 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
2734 (shortcpy): Remove.
2735 (MAXTABLE): Move to...
2736 * src/output.c (MAXTABLE): here.
2737 (prepare_rules): Use output_int_table to output rhs.
2738 * data/bison.simple, data/bison.c++: Adjust.
2739 * tests/torture.at (Big triangle): Move the limit from 254 to
2740 500.
2741 * tests/regression.at (Web2c Actions): Ajust.
2742
2743 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
2744 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
2745 passes, but produces negative #line number, once fixed, GCC is
2746 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
2747 C), it passes.
2748 * src/state.h (state_h): Code input lines on ints, not shorts.
2749
bb88b0fc
AD
27502002-04-08 Akim Demaille <akim@epita.fr>
2751
2752 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
2753 and then the grammar.
2754
9a636f47
AD
27552002-04-08 Akim Demaille <akim@epita.fr>
2756
2757 * src/system.h: No longer using strndup.
2758
680e8701
AD
27592002-04-07 Akim Demaille <akim@epita.fr>
2760
2761 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
2762 * src/output.c (output_table_data): Return the longest number.
2763 (prepare_tokens): Output `token_number_max').
2764 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
2765 New.
2766 Use them to define yy_token_number_type/TokenNumberType.
2767 Use this type for yytranslate.
2768 * tests/torture.at (Big triangle): Push the limit from 124 to
2769 253.
2770 * tests/regression.at (Web2c Actions): Adjust.
2771
817e9f41
AD
27722002-04-07 Akim Demaille <akim@epita.fr>
2773
2774 * tests/torture.at (Big triangle): New.
2775 (GNU AWK Grammar, GNU Cim Grammar): Move to...
2776 * tests/existing.at: here.
2777
5123689b
AD
27782002-04-07 Akim Demaille <akim@epita.fr>
2779
2780 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
2781 nritems.
2782 Adjust dependencies.
2783
f3849179
AD
27842002-04-07 Akim Demaille <akim@epita.fr>
2785
2786 * src/reader.c: Normalize increments to prefix form.
2787
bd02036a
AD
27882002-04-07 Akim Demaille <akim@epita.fr>
2789
2790 * src/reader.c, symtab.c: Remove debugging code.
2791
db8837cb
AD
27922002-04-07 Akim Demaille <akim@epita.fr>
2793
2794 Rename all the `bucket's as `symbol_t'.
2795
2796 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
2797 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
2798 * src/symtab.c, src/symtab.h (bucket): Rename as...
2799 (symbol_t): this.
2800 (symbol_list_new, bucket_check_defined, bucket_make_alias)
2801 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
2802 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
2803 (buckets_new, buckets_free, buckets_do): Rename as...
2804 (symbol_list_new, symbol_check_defined, symbol_make_alias)
2805 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
2806 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
2807 (symbols_new, symbols_free, symbols_do): these.
2808
72a23c97
AD
28092002-04-07 Akim Demaille <akim@epita.fr>
2810
2811 Use lib/hash for the symbol table.
2812
2813 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
2814 EOF.
2815 * src/lex.c (lex): Set the `number' member of new terminals.
2816 * src/reader.c (bucket_check_defined, bucket_make_alias)
2817 (bucket_check_alias_consistence, bucket_translation): New.
2818 (reader, grammar_free, readgram, token_translations_init)
2819 (packsymbols): Adjust.
2820 (reader): Number the predefined tokens.
2821 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
2822 for predefined tokens.
2823 * src/symtab.h (bucket): Remove all the hash table related
2824 members.
2825 * src/symtab.c (symtab): Replace by...
2826 (bucket_table): this.
2827 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
2828 (buckets_new, buckets_do): New.
2829
280a38c3
AD
28302002-04-07 Akim Demaille <akim@epita.fr>
2831
2832 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
2833 (start_symbol, max_user_token_number, semantic_parser)
2834 (error_token_number): Initialize.
2835 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
2836 Initialize.
2837 (reader): Don't.
2838 (errtoken, eoftoken, undeftoken, axiom): Extern.
2839
03b31c0c
AD
28402002-04-07 Akim Demaille <akim@epita.fr>
2841
2842 * src/gram.h (rule_s): prec and precsym are now pointers
2843 to the bucket giving the priority/associativity.
2844 Member `associativity' removed: useless.
2845 * src/reduce.c, src/conflicts.c: Adjust.
2846
8b3df748
AD
28472002-04-07 Akim Demaille <akim@epita.fr>
2848
2849 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
2850 Properly escape the symbols' TAG when outputting them.
2851
e601aa1d
AD
28522002-04-07 Akim Demaille <akim@epita.fr>
2853
2854 * src/lalr.h (LA): Is a bitsetv, not bitset*.
2855
b0299a2e
AD
28562002-04-07 Akim Demaille <akim@epita.fr>
2857
2858 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
2859 (LArule): this, which is an array to rule_t*.
2860 * src/print.c, src/conflicts.c: Adjust.
2861
d7e1f00c
AD
28622002-04-07 Akim Demaille <akim@epita.fr>
2863
2864 * src/gram.h (rule_t): Rename `number' as `user_number'.
2865 `number' is a new member.
2866 Adjust dependencies.
2867 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
2868
cc9305dd
AD
28692002-04-07 Akim Demaille <akim@epita.fr>
2870
2871 As a result of the previous patch, it is no longer needed
2872 to reorder ritem itself.
2873
2874 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
2875
b0940840
AD
28762002-04-07 Akim Demaille <akim@epita.fr>
2877
2878 Be sure never to walk through RITEMS, but use only data related to
2879 the rules themselves. RITEMS should be banished.
2880
2881 * src/output.c (output_token_translations): Rename as...
2882 (prepare_tokens): this.
2883 In addition to `translate', prepare the muscles `tname' and
2884 `toknum', which were handled by...
2885 (output_rule_data): this.
2886 Remove, and move the remainder of its outputs into...
2887 (prepare_rules): this new routines, which also merges content from
2888 (output_gram): this.
2889 (prepare_rules): Be sure never to walk through RITEMS.
2890 (output_stos): Rename as...
2891 (prepare_stos): this.
2892 (output): Always invoke prepare_states, after all, just don't use it
2893 in the output if you don't need it.
2894
643a5994
AD
28952002-04-07 Akim Demaille <akim@epita.fr>
2896
2897 * src/LR0.c (new_state): Display `nstates' as the name of the
2898 newly created state.
2899 Adjust to initialize first_state and last_state if needed.
2900 Be sure to distinguish the initial from the final state.
2901 (new_states): Create the itemset of the initial state, and use
2902 new_state.
2903 * src/closure.c (closure): Now that the initial state has its
2904 items properly set, there is no need for a special case when
2905 creating `ruleset'.
2906
2907 As a result, now the rule 0, reducing to $axiom, is visible in the
2908 outputs. Adjust the test suite.
2909
2910 * tests/conflicts.at (Solved SR Conflicts)
2911 (Unresolved SR Conflicts): Adjust.
2912 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
2913 * tests/conflicts.at (S/R in initial): New.
2914
b4c4ccc2
AD
29152002-04-07 Akim Demaille <akim@epita.fr>
2916
2917 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
2918 the RHS of the rules.
2919 * src/output.c (output_gram): Likewise.
2920
bba97eb2
AD
29212002-04-07 Akim Demaille <akim@epita.fr>
2922
2923 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
2924 bucket.
2925 Adjust all dependencies.
2926 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
2927 `number' of the buckets too.
2928 * src/gram.h: Include `symtab.h'.
2929 (associativity): Move to...
2930 * src/symtab.h: here.
2931 No longer include `gram.h'.
2932
c3b407f4
AD
29332002-04-07 Akim Demaille <akim@epita.fr>
2934
2935 * src/gram.h, src/gram.c (rules_rhs_length): New.
2936 (ritem_longest_rhs): Use it.
2937 * src/gram.h (rule_t): `number' is a new member.
2938 * src/reader.c (packgram): Set it.
2939 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
2940 the end of `rules', and count them out of `nrules'.
2941 (reduce_output, dump_grammar): Adjust.
2942 * src/print.c (print_grammar): It is no longer needed to check for
2943 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
2944 * tests/reduce.at (Reduced Automaton): New test.
2945
11652ab3
AD
29462002-04-07 Akim Demaille <akim@epita.fr>
2947
2948 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
2949 lacking `+ 1' to nrules, Bison reported as useless a token if it
2950 was used solely to set the precedence of the last rule...
2951
26b23c1a
AD
29522002-04-07 Akim Demaille <akim@epita.fr>
2953
2954 * data/bison.c++, data/bison.simple: Don't output the current file
2955 name in #line, to avoid useless diffs between two identical
2956 outputs under different names.
2957
18bcecb0
AD
29582002-04-07 Akim Demaille <akim@epita.fr>
2959
2960 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
2961 Normalize loops to using `< nrules + 1', not `<= nrules'.
2962
fa770c86
AD
29632002-04-07 Akim Demaille <akim@epita.fr>
2964
2965 * TODO: Update.
2966
d9b739c3
AD
29672002-04-07 Akim Demaille <akim@epita.fr>
2968
2969 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
2970 bucket.value as bucket.number.
2971
99013900
AD
29722002-04-07 Akim Demaille <akim@epita.fr>
2973
2974 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
2975 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
2976 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
2977 RHS, instead of being an index in RITEMS.
2978
e966383b
PE
29792002-04-04 Paul Eggert <eggert@twinsun.com>
2980
2981 * doc/bison.texinfo: Update copyright date.
2982 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
2983 (Symbols): Warn about running Bison in one character set,
2984 but compiling and/or running in an incompatible one.
2985 Warn about character code 256, too.
2986
29872002-04-03 Paul Eggert <eggert@twinsun.com>
2988
2989 * src/bison.data (YYSTACK_ALLOC): Depend on whether
2990 YYERROR_VERBOSE is nonzero, not whether it is defined.
2991
2992 Merge changes from bison-1_29-branch.
c307773e 2993
8d6c48b9
PE
29942002-03-20 Paul Eggert <eggert@twinsun.com>
2995
2996 Merge fixes from Debian bison_1.34-1.diff.
2997
2998 * configure.in (AC_PREREQ): 2.53.
2999
e53c6322
AD
30002002-03-20 Akim Demaille <akim@epita.fr>
3001
3002 * src/conflicts.c (log_resolution): Argument `resolution' is const.
3003
9ffbeca7
PE
30042002-03-19 Paul Eggert <eggert@twinsun.com>
3005
21db0b2a
PE
3006 * src/bison.simple (YYCOPY): New macro.
3007 (YYSTACK_RELOCATE): Use it.
3008 Remove Type arg; no longer needed. All callers changed.
3009 (yymemcpy): Remove; no longer needed.
3010
9ffbeca7
PE
3011 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
3012 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3013
642cb8f8
AD
30142002-03-19 Akim Demaille <akim@epita.fr>
3015
3016 Test and fix the #line outputs.
3017
3018 * tests/atlocal.at (GCC): New.
3019 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
3020 (Prologue synch line, ,%union synch line, Postprologue synch line)
3021 (Action synch line, Epilogue synch line): New tests.
3022 * src/reader.c (parse_union_decl): Define the muscle stype_line.
3023 * data/bison.simple, data/bison.c++: Use it.
3024
3c31a486
AD
30252002-03-19 Akim Demaille <akim@epita.fr>
3026
3027 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
3028 (Solved SR Conflicts, %expect not enough, %expect right)
3029 (%expect too much): Move to...
3030 * tests/conflicts.at: this new file.
3031
0d8bed56
AD
30322002-03-19 Akim Demaille <akim@epita.fr>
3033
3034 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
3035 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
3036 that we can move to enums for instance.
3037 * src/output.c (token_definitions_output): Output a list of
3038 `token-name, token-number' instead of the #define.
3039 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
3040
9208d17f
AD
30412002-03-14 Akim Demaille <akim@epita.fr>
3042
3043 Use Gettext 0.11.1.
3044
af27eacb
RA
30452002-03-09 Robert Anisko <robert@lrde.epita.fr>
3046
3047 * data/bison.c++: Make the user able to add members to the generated
3048 parser by subclassing.
3049
9101a310
RA
30502002-03-05 Robert Anisko <robert@lrde.epita.fr>
3051
3052 * src/reader.c (read_additionnal_code): `c' should be an integer, not
3053 a character.
3054 Reported by Nicolas Tisserand and Nicolas Burrus.
3055
fff9bf0b
RA
30562002-03-04 Robert Anisko <robert@lrde.epita.fr>
3057
3058 * src/reader.c: Warn about lacking semi-colons, do not complain.
3059
64dba31e
RA
30602002-03-04 Robert Anisko <robert@lrde.epita.fr>
3061
3062 * data/bison.c++: Remove a debug line.
3063
374f5a14
RA
30642002-03-04 Robert Anisko <robert@lrde.epita.fr>
3065
3066 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
3067 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
3068 provide a default implementation.
3069
bfcf1f3a
AD
30702002-03-04 Akim Demaille <akim@epita.fr>
3071
3072 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
3073 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
3074 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
3075 * tests/semantic.at (Parsing Guards): Similarly.
3076 * src/reader.at (readgram): Complain if the last rule is not ended
3077 with a semi-colon.
3078
65ccf9fc
AD
30792002-03-04 Akim Demaille <akim@epita.fr>
3080
3081 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
3082 * src/closure.c: here.
3083 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
3084 RTC.
3085 * src/warshall.h, src/warshall.c: Remove.
3086 * tests/sets.at (Broken Closure): Adjust.
3087
d0039cbc
AD
30882002-03-04 Akim Demaille <akim@epita.fr>
3089
3090 * src/output.c (output_skeleton): tempdir is const.
3091 bytes_read is unused.
3092
345cea78
AD
30932002-03-04 Akim Demaille <akim@epita.fr>
3094
3095 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
3096 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
3097 Update.
3098 From Michael Hayes.
3099
564801f7
AD
31002002-03-04 Akim Demaille <akim@epita.fr>
3101
3102 * src/closure.c (closure): `r' is unused.
3103
e5352bc7
AD
31042002-03-04 Akim Demaille <akim@epita.fr>
3105
3106 * tests/sets.at (Broken Closure): Add the ending `;'.
3107 * src/reader.at (readgram): Complain if a rule is not ended with a
3108 semi-colon.
3109
914feea9
AD
31102002-03-04 Akim Demaille <akim@epita.fr>
3111
3112 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
3113 (count_sr_conflicts): Use bitset_count.
3114 * src/reduce.c (inaccessable_symbols): Ditto.
3115 (bits_size): Remove.
3116 * src/warshall.h, src/warshall.c: Convert to bitsetv.
3117
f0250de6
AD
31182002-03-04 Akim Demaille <akim@epita.fr>
3119
3120 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
3121 * src/reduce.c: Remove the `bitset_zero's following the
3122 `bitset_create's, as now it is performed by the latter.
3123
ef017502
AD
31242002-03-04 Akim Demaille <akim@epita.fr>
3125
3126 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
3127 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
3128 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
3129 latest sources from Michael.
3130
76514394
AD
31312002-03-04 Akim Demaille <akim@epita.fr>
3132
3133 * src/output.c (output): Don't free the grammar.
3134 * src/reader.c (grammar_free): New.
3135 * src/main.c (main): Call it and don't free symtab here.
3136
55024580
AD
31372002-03-04 Akim Demaille <akim@epita.fr>
3138
3139 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
3140 before returning.
3141 Reported by Benoit Perrot.
3142
f9abaa2c
AD
31432002-03-04 Akim Demaille <akim@epita.fr>
3144
3145 Use bitset operations when possible, not loops over bits.
3146
3147 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
3148 bitset_or.
3149 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
3150 * src/reduce.c (useless_nonterminals): Formatting changes.
3151 * src/warshall.c (TC): Use bitset_or.
3152
0e721e75
AD
31532002-03-04 Akim Demaille <akim@epita.fr>
3154
3155 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
3156 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
3157 Ditto.
3158
0fb1ffb1
AD
31592002-03-04 Akim Demaille <akim@epita.fr>
3160
3161 * src/lalr.c (F): Now a bitset*.
3162 Adjust all dependencies.
3163
b86796bf
AD
31642002-03-04 Akim Demaille <akim@epita.fr>
3165
3166 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
3167 Adjust all dependencies.
3168
602bbf31
AD
31692002-03-04 Akim Demaille <akim@epita.fr>
3170
3171 * src/L0.c, src/LR0.h (nstates): Be size_t.
3172 Adjust comparisons (signed vs unsigned).
3173 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
3174 bitset*.
3175 Adjust all dependencies.
3176
d8a0245c
AD
31772002-03-04 Akim Demaille <akim@epita.fr>
3178
3179 * src/closure.c (firsts): Now, also a bitset.
3180 Adjust all dependencies.
3181 (varsetsize): Remove, now unused.
3182 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
3183
34ba9743
AD
31842002-03-04 Akim Demaille <akim@epita.fr>
3185
3186 * src/print.c: Convert to use bitset.h, not hand coded iterations
3187 over ints.
3188
ed86e78c
AD
31892002-03-04 Akim Demaille <akim@epita.fr>
3190
3191 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
3192
dfdb1797
AD
31932002-03-04 Akim Demaille <akim@epita.fr>
3194
3195 * src/closure.c (ruleset): Be a bitset.
3196 (rulesetsize): Remove.
3197
7086e707
AD
31982002-03-04 Akim Demaille <akim@epita.fr>
3199
3200 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
3201 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
3202 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
3203 * src/closure.c (fderives): Be an array of bitsets.
3204
98254360
RA
32052002-02-28 Robert Anisko <robert@lrde.epita.fr>
3206
3207 * data/bison.c++: Merge the two generated headers. Insert a copyright
3208 notice in each output file.
3209
a75c057f
AD
32102002-02-28 Akim Demaille <akim@epita.fr>
3211
3212 * data/bison.c++: Copy the prologue of bison.simple to fetch
3213 useful M4 definitions, such as b4_header_guard.
3214
06b00abc
AD
32152002-02-25 Akim Demaille <akim@epita.fr>
3216
3217 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
3218 translator friendly scheme for the bgr
3219 copyright notice.
06b00abc 3220
70e7d534
AD
32212002-02-25 Akim Demaille <akim@epita.fr>
3222
3223 * src/output.c (header_output): Remove, now handled completely via
3224 M4.
3225
abe017f6
AD
32262002-02-25 Akim Demaille <akim@epita.fr>
3227
3228 * m4/m4.m4: New, from CVS Autoconf.
3229 * configure.in: Invoke it.
3230 * src/output.c (output_skeleton): Use its result instead of the
3231 hard coded name.
3232
381fb12e
AD
32332002-02-25 Akim Demaille <akim@epita.fr>
3234
3235 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
3236 Fileutils 4.1.5.
3237 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
3238 * src/output.c (output_skeleton): Use mkstemp to create a real
3239 temporary file.
3240 Move the filling of `skeleton' and its muscle to...
3241 (prepare): here.
3242 (output): Move the definition of the prologue muscle to...
3243 (prepare): here.
3244 * src/system.h (DEFAULT_TMPDIR): New.
3245
6f38107f
PE
32462002-02-14 Paul Eggert <eggert@twinsun.com>
3247
3248 Remove the support for C++ namespace cleanliness; it was
3249 causing more problems than it was curing, since it didn't work
3250 properly on some nonstandard C++ compilers. This can wait
3251 for a proper C++ parser.
3252
3253 * NEWS: Document this.
3254 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
3255 of C++, as it's treated like C now.
3256 * src/bison.simple (YYSTD): Remove.
3257 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
3258 Treat C++ just like Standard C instead of trying to support
3259 namespace cleanliness.
3260
80cce3da
AD
32612002-02-14 Akim Demaille <akim@epita.fr>
3262
3263 * tests/regression.at (else): Adjust to Andreas' change.
3264
842e8679
AD
32652002-02-14 Akim Demaille <akim@epita.fr>
3266
3267 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
3268
4bda3f10
AD
32692002-02-13 Andreas Schwab <schwab@suse.de>
3270
3271 * src/output.c (output_rule_data): Don't output NULL, it might
3272 not be defined yet.
3273
4162fa07 32742002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 3275
4162fa07
RA
3276 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
3277 (Copyright notice): Update.
b418ecd8 3278
bd16a5dc
AD
32792002-02-11 Akim Demaille <akim@epita.fr>
3280
3281 * tests/regression.at (%nonassoc and eof): Don't include
3282 nonportable headers.
3283
8d69a1a3
RA
32842002-02-08 Robert Anisko <robert@lrde.epita.fr>
3285
3286 * data/bison.c++: Correct error recovery. Make the user able to
3287 initialize the starting location.
3288
9b2d0677
AD
32892002-02-07 Akim Demaille <akim@epita.fr>
3290
3291 * tests/input.at: New.
3292
69e2658b
RA
32932002-02-07 Robert Anisko <robert@lrde.epita.fr>
3294
3295 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 3296 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
3297 directives around tables only needed for debugging.
3298
4aacc3a7
RA
32992002-02-07 Robert Anisko <robert@lrde.epita.fr>
3300
3301 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
3302 C++ parsers.
3303 (yy::b4_name::parse): Use print_.
3304
762a801e
RA
33052002-02-07 Robert Anisko <robert@lrde.epita.fr>
3306
3307 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
3308
4bb2bc3f
RA
33092002-02-07 Robert Anisko <robert@lrde.epita.fr>
3310
3311 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
3312 C++ parsers.
3313 (yy::b4_name::parse): Build verbose error messages, and use error_.
3314
6b45a3ca
RA
33152002-02-06 Robert Anisko <robert@lrde.epita.fr>
3316
3317 * data/bison.c++: Fix m4 quoting in comments.
3318
50997c6e
RA
33192002-02-06 Robert Anisko <robert@lrde.epita.fr>
3320
3321 * data/bison.c++: Adjust the parser code. Fix some muscles that were
3322 not expanded by m4.
3323
3f3eed27
AD
33242002-02-05 Akim Demaille <akim@epita.fr>
3325
3326 * data/bison.c++: Adjust to the M4 back end.
3327 More is certainly needed.
3328
be2a1a68
AD
33292002-02-05 Akim Demaille <akim@epita.fr>
3330
3331 Give a try to M4 as a back end.
3332
3333 * lib/readpipe.c: New, from wdiff.
3334 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
3335 BISON_HAIRY.
3336 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
3337 specific values. Now it is m4 that performs the lookup.
3338 * src/parse-skel.y: Remove.
3339 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
3340 * src/output.c (actions_output, guards_output)
3341 (token_definitions_output): No longer keeps track of the output
3342 line number, hence remove the second argument.
3343 (guards_output): Check against the guard member of a rule, not the
3344 action member.
3345 Adjust callers.
3346 (output_skeleton): Don't look for the skeleton location, let m4 do
3347 that.
3348 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
3349 file will be used.
3350 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
3351 (prepare): Given that for the time being changesyntax is not
3352 usable in M4, rename the muscles using `-' to `_'.
3353 Define `defines_flag', `output_parser_name' and `output_header_name'.
3354 * src/output.h (actions_output, guards_output)
3355 (token_definitions_output): Adjust prototypes.
3356 * src/scan-skel.l: Instead of scanning the skeletons, it now
3357 processes the output of m4: `__oline__' and `#output'.
3358 * data/bison.simple: Adjust to be used by M4(sugar).
3359 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
3360 to date.
3361 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
3362 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
3363 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
3364 shamelessly stolen from CVS Autoconf.
3365
beda758b
AD
33662002-02-05 Akim Demaille <akim@epita.fr>
3367
3368 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
3369 * configure.in: Check for the declarations of free and malloc.
3370 * src/muscle_tab.c: Adjust.
3371
5ece6d43
AD
33722002-02-05 Akim Demaille <akim@epita.fr>
3373
3374 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
3375 which have no values.
3376
5bb18f9a
AD
33772002-02-05 Akim Demaille <akim@epita.fr>
3378
3379 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
3380 * data/: here.
3381
894dd62e
PE
33822002-01-29 Paul Eggert <eggert@twinsun.com>
3383
3384 * src/bison.simple (YYSIZE_T): Do not define merely because
3385 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
3386 On some platforms, <alloca.h> does not declare YYSTD (size_t).
3387
82841af7
AD
33882002-01-27 Akim Demaille <akim@epita.fr>
3389
3390 Fix `%nonassoc and eof'.
3391
3392 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
3393 which were not properly copied! Replace
3394 memcpy (res->errs, src->errs, src->nerrs);
3395 with
3396 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
3397 !!!
3398 * tests/regression.at (%nonassoc and eof): Adjust to newest
3399 Autotest: `.' is not in the PATH.
3400
318b76e9
AD
34012002-01-27 Akim Demaille <akim@epita.fr>
3402
3403 * tests/sets.at (AT_EXTRACT_SETS): New.
3404 (Nullable): Use it.
3405 (Firsts): New.
3406
30d2f3d5
AD
34072002-01-26 Akim Demaille <akim@epita.fr>
3408
3409 * tests/actions.at, tests/calc.at, tests/headers.at,
3410 * tests/torture.at: Adjust to the newest Autotest which no longer
3411 forces `.' in the PATH.
3412
30f8c395
AD
34132002-01-25 Akim Demaille <akim@epita.fr>
3414
3415 * tests/regression.at (%nonassoc and eof): New.
3416 Suggested by Robert Anisko.
3417
29ae55f1
AD
34182002-01-24 Akim Demaille <akim@epita.fr>
3419
3420 Bison dumps core when trying to complain about broken input files.
3421 Reported by Cris van Pelt.
3422
3423 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
3424 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
3425 into...
3426 (Invalid inputs): Strengthen: exercise parse_percent_token.
3427
2b548aa6
RA
34282002-01-24 Robert Anisko <robert.anisko@epita.fr>
3429
3430 * src/Makefile.am: Add bison.c++.
3431 * src/bison.c++: New skeleton.
3432
bb0146c2
AD
34332002-01-21 Paolo Bonzini <bonzini@gnu.org>
3434
3435 * po/it.po: New.
3436
bec30531
AD
34372002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
3438
3439 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
3440
fc6edc45
MA
34412002-01-20 Marc Autret <marc@gnu.org>
3442
3443 * src/files.c (compute_output_file_names): Fix
3444
5e5d5415
MA
34452002-01-20 Marc Autret <marc@gnu.org>
3446
3447 * tests/output.at: New test.
3448 * src/files.c (compute_base_names): Don't map extensions when
3449 the YACC flag is set, use defaults.
3450 Reported by Evgeny Stambulchik.
3451
44ea3fbd
MA
34522002-01-20 Marc Autret <marc@gnu.org>
3453
bb0146c2 3454 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
3455 compilers as well (i.e. the vendor C compiler).
3456 Suggested by Albert Chin-A-Young.
3457
338963d1
TVH
34582002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
3459
3460 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
3461 canonical definition.
3462 * src/system.h: Use the canonical definition for PARAMS (avoids
3463 a conflict with the macro from lib/hash.h).
3464
c57b2479
AD
34652002-01-11 Akim Demaille <akim@epita.fr>
3466
3467 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 3468 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 3469
b85810ae
AD
34702002-01-09 Akim Demaille <akim@epita.fr>
3471
3472 * src/files.c, src/files.h (output_infix): New.
3473 (tab_extension): Remove.
3474 (compute_base_names): Compute the former, drop the latter.
3475 * src/output.c (prepare): Insert the muscles `output-infix', and
3476 `output-suffix'.
3477 * src/parse-skel.y (string, string.1): New.
3478 (section.header): Use it.
3479 (section.yacc): Remove.
3480 (prefix): Remove too.
3481 * src/scan-skel.l: Adjust.
3482 * src/bison.simple, src/bison.hairy: Adjust.
3483
cae60122
AD
34842002-01-09 Akim Demaille <akim@epita.fr>
3485
3486 * configure.in (WERROR_CFLAGS): Compute it.
3487 * src/Makefile.am (CFLAGS): Pass it.
3488 * tests/atlocal.in (CFLAGS): Idem.
3489 * src/files.c: Fix a few warnings.
3490 (get_extension_index): Remove, unused.
3491
ae404801
AD
34922002-01-08 Akim Demaille <akim@epita.fr>
3493
3494 * src/getargs.c (AS_FILE_NAME): New.
3495 (getargs): Use it to convert DOSish file names.
3496 * src/files.c (base_name): Rename as full_base_name to avoid
3497 clashes with `base_name ()'.
3498 (filename_split): New.
3499 (compute_base_names): N-th rewrite, using filename_split.
3500
22312b71
AD
35012002-01-08 Akim Demaille <akim@epita.fr>
3502
3503 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
3504 New, stolen from the Fileutils 4.1.
3505 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
3506 * configure.in: Check for the presence of memrchr, and of its
3507 prototype.
3508
a67cef01
TVH
35092002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
3510
3511 * lib/hash.h (__P): Added definition for this macro.
3512 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
3513 BUILT_SOURCES, to ensure they are generated first.
3514 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
3515 %error-verbose to allow bootstrapping with bison 1.30x.
3516
2b25d624
AD
35172002-01-06 Akim Demaille <akim@epita.fr>
3518
3519 * src/reader.c (parse_braces): Don't fetch the next char, the
3520 convention is to fetch on entry.
3521 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
3522 'switch' without a following semicolon.
3523 * tests/regression.at (braces parsing): New.
3524
3460813b
AD
35252002-01-06 Akim Demaille <akim@epita.fr>
3526
3527 Bison is dead wrong in its RR conflict reports.
3528
3529 * tests/torture.at (GNU Cim Grammar): New.
3530 * src/conflicts.c (count_rr_conflicts): Fix.
3531
73784c64
AD
35322002-01-06 Akim Demaille <akim@epita.fr>
3533
3534 Creating package.m4 from configure.ac causes too many problems.
3535
3536 * tests/Makefile.am (package.m4): Create it by hand,
3537 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
3538
25d81090
AD
35392002-01-06 Akim Demaille <akim@epita.fr>
3540
3541 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
3542 skeleton.h.
3543
a9b8959e
PE
35442002-01-04 Paul Eggert <eggert@twinsun.com>
3545
3546 * doc/bison.texinfo (Debugging):
3547 Remove YYSTDERR; it's no longer defined or used.
3548 Also, s/cstdio.h/cstdio/.
3549
25d81090
AD
35502002-01-03 Akim Demaille <akim@epita.fr>
3551
3552 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
3553
1109455c
AD
35542002-01-03 Akim Demaille <akim@epita.fr>
3555
3556 * src/parse-skel.y (process_skeleton): Don't bind the parser's
3557 tracing code to --trace, wait for a better --trace option, with
3558 args.
3559
7ea5e977
AD
35602002-01-03 Akim Demaille <akim@epita.fr>
3561
3562 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
3563 The ISO C++ standard is extremely clear about it: stderr is
3564 considered a macro, not a regular symbol (see table 94 `Header
3565 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
3566 Therefore std:: does not apply to it. It still does with fprintf.
3567 Also, s/cstdio.h/cstdio/.
3568
fab5b110
AD
35692002-01-03 Akim Demaille <akim@epita.fr>
3570
3571 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
3572 for non system headers.
3573
aed7fd9b
AD
35742002-01-02 Akim Demaille <akim@epita.fr>
3575
3576 Equip the skeleton chain with location tracking, runtime trace,
3577 pure parser and scanner.
3578
3579 * src/parse-skel.y: Request a pure parser, locations, and prefix
3580 renaming.
3581 (%union): Having several members with the same type does not help
3582 type mismatches, simplify.
3583 (YYPRINT, yyprint): New.
3584 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
3585 (skel_error): this.
3586 Handle locations.
3587 * src/scan-skel.l: Adjust to these changes.
3588 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
3589 (LOCATION_PRINT, skel_control_t): New.
3590
24fad99e
AD
35912001-12-30 Akim Demaille <akim@epita.fr>
3592
3593 * src/parse-skel.y: Get rid of the shift/reduce conflict:
3594 replace `gb' with BLANKS.
3595 * src/scan-skel.l: Adjust.
3596
a4b36db4
AD
35972001-12-30 Akim Demaille <akim@epita.fr>
3598
3599 * src/system.h: We don't need nor want bcopy.
3600 Throw away MS-DOS crap: we don't need getpid.
3601 * configure.in: We don't need strndup. It was even causing
3602 problems: because Flex includes the headers *before* us,
3603 _GNU_SOURCE is not defined by config.h, and therefore strndup was
3604 not visible.
3605 * lib/xstrndup.c: New.
3606 * src/scan-skel.l: Use it.
3607 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
3608 * src/parse-skel.y: Use %directives instead of #defines.
3609
1239777d
AD
36102001-12-30 Akim Demaille <akim@epita.fr>
3611
3612 * src/skeleton.h: New.
3613 * src/output.c (output_parser, output_master_parser): Remove, dead
3614 code.
3615 * src/output.h (get_lines_number, actions_output, guards_output)
3616 (token_definitions_output): Prototype them.
3617 * src/parse-skel.y: Add the license notice.
3618 Include output.h and skeleton.h.
3619 (process_skeleton): Returns void, and takes a single parameter.
3620 * src/scan-skel.l: Add the license notice.
3621 Include skeleton.h.
3622 Don't use %option yylineno: it seems that then Flex imagines
3623 REJECT has been used, and therefore it won't reallocate its
3624 buffers (which makes no other sense to me than a bug). It results
3625 in warnings for `unused: yy_flex_realloc'.
3626
9b3add5b
RA
36272001-12-30 Robert Anisko <robert.anisko@epita.fr>
3628
3629 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
3630 (MUSCLE_INSERT_PREFIX): ...to there.
3631 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
3632 (MUSCLE_INSERT_PREFIX): Move from here...
3633
3634 * src/bison.hairy: Add a section directive. Put braces around muscle
3635 names. This parser skeleton is still broken, but Bison should not
3636 choke on a bad muscle 'syntax'.
3637 * src/bison.simple: Add a section directive. Put braces around muscle
3638 names.
3639
3640 * src/files.h (strsuffix, stringappend): Add declarations.
3641 (tab_extension): Add declaration.
3642 (short_base_name): Add declaration.
3643
3644 * src/files.c (strsuffix, stringappend): No longer static. These
3645 functions are used in the skeleton parser.
3646 (tab_extension): New.
3647 (compute_base_names): Use the computations done in this function
fab5b110 3648 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
3649 names.
3650 (short_base_name): No longer static.
3651
3652 * src/output.c (output_skeleton): New.
3653 (output): Disable call to output_master_parser, and give a try to
3654 a new skeleton handling system.
3655 (guards_output, actions_output): No longer static.
3656 (token_definitions_output, get_lines_number): No longer static.
3657
3658 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
3659
fab5b110 3660 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
3661 parse-skel.y.
3662
3663 * src/parse-skel.y: New file.
3664 * src/scan-skel.l: New file.
3665
b5b61c61
AD
36662001-12-29 Akim Demaille <akim@epita.fr>
3667
3668 %name-prefix is broken.
3669
3670 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
3671 Adjust all dependencies.
3672 * tests/headers.at (export YYLTYPE): Strengthen this test: use
3673 %name-prefix.
3674
3675 Renaming yylval but not yylloc is not consistent. Now we do.
3676
3677 * src/bison.simple: Prefix yylloc if used.
3678 * doc/bison.texinfo (Decl Summary): Document that.
3679
8c9a50be
AD
36802001-12-29 Akim Demaille <akim@epita.fr>
3681
3682 * doc/bison.texinfo: Promote `%long-directive' over
3683 `%long_directive'.
3684 Remove all references to fixed-output-files, yacc is enough.
3685
d99361e6
AD
36862001-12-29 Akim Demaille <akim@epita.fr>
3687
3688 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
3689 user prologue. These are defaults.
3690 * tests/actions.at (Mid-rule actions): Make sure the user can
3691 define YYDEBUG and YYERROR_VERBOSE.
3692
b9cecb91
AD
36932001-12-29 Akim Demaille <akim@epita.fr>
3694
3695 * src/output.c (header_output): Don't forget to export YYLTYPE and
3696 yylloc.
3697 * tests/headers.at (export YYLTYPE): New, make sure it does.
3698 * tests/regression.at (%union and --defines, Invalid CPP headers):
3699 Move to...
3700 * tests/headers.at: here.
3701
aea13e97
AD
37022001-12-29 Akim Demaille <akim@epita.fr>
3703
3704 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
3705
931394cb
AD
37062001-12-29 Akim Demaille <akim@epita.fr>
3707
3708 * tests/actions.at (Mid-rule actions): Output on a single line
3709 instead of several.
3710
704a47c4
AD
37112001-12-29 Akim Demaille <akim@epita.fr>
3712
3713 * doc/bison.texinfo: Formatting changes.
3714
091e20bb
AD
37152001-12-29 Akim Demaille <akim@epita.fr>
3716
3717 Don't store the token defs in a muscle, just be ready to output it
3718 on command. Now possible via `symbols'. Fixes a memory leak.
3719
3720 * src/output.c (token_definitions_output): New.
3721 (output_parser, header_output): Use it.
3722 * src/reader.c (symbols_save): Remove.
3723
cce71710
AD
37242001-12-29 Akim Demaille <akim@epita.fr>
3725
3726 * src/bison.simple: Do not provide a default for YYSTYPE and
3727 YYLTYPE before the user's prologue. Otherwise it's hardly... a
3728 default.
3729
82c035a8
AD
37302001-12-29 Akim Demaille <akim@epita.fr>
3731
3732 Mid-rule actions are simply... ignored!
3733
3734 * src/reader.c (readgram): Be sure to attach mid-rule actions to
3735 the empty-rule associated to the dummy symbol, not to the host
3736 rule.
3737 * tests/actions.at (Mid-rule actions): New.
3738
8419d367
AD
37392001-12-29 Akim Demaille <akim@epita.fr>
3740
3741 Memory leak.
3742
3743 * src/reader.c (reader): Free grammar.
3744
375d5806
AD
37452001-12-29 Akim Demaille <akim@epita.fr>
3746
3747 Memory leak.
3748
3749 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
3750 since it allocates it for each state, although only one is needed.
3751 (allocate_storage): Do it here.
3752
f51cb8ff
AD
37532001-12-29 Akim Demaille <akim@epita.fr>
3754
3755 * src/options.h, src/options.c (create_long_option_table): Rename
3756 as...
3757 (long_option_table_new): this, with a clearer prototype.
3758 (percent_table): Remove, unused,
3759 * src/getargs.c (getargs): Adjust.
3760
29e88316
AD
37612001-12-29 Akim Demaille <akim@epita.fr>
3762
3763 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
3764 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
3765 as states.
3766
b9f71f19
AD
37672001-12-29 Akim Demaille <akim@epita.fr>
3768
3769 * src/lalr.c (build_relations): Rename `states' as `states1'.
3770 Sorry, I don't understand exactly what it is, no better name...
3771
1a2b5d37
AD
37722001-12-29 Akim Demaille <akim@epita.fr>
3773
3774 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
3775 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
3776 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
3777 as rules.
3778
1cca533e
AD
37792001-12-29 Akim Demaille <akim@epita.fr>
3780
3781 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
3782 ago.
3783
c03ae966
AD
37842001-12-29 Akim Demaille <akim@epita.fr>
3785
3786 * src/reader.c, src/reader.h (user_toknums): Remove.
3787 Adjust all users to use symbols[i]->user_token_number.
3788
5a670b1e
AD
37892001-12-29 Akim Demaille <akim@epita.fr>
3790
3791 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
3792 Adjust all users to use symbols[i]->prec or ->assoc.
3793
ad949da9
AD
37942001-12-29 Akim Demaille <akim@epita.fr>
3795
3796 * src/reader.c, src/reader.h (tags): Remove.
3797 Adjust all users to use symbols[i]->tag.
3798
0e78e603
AD
37992001-12-29 Akim Demaille <akim@epita.fr>
3800
3801 * src/gram.h, src/gram.c (symbols): New, similar to state_table
3802 and rule_table.
3803 * src/reader.c (packsymbols): Fill this table.
3804 Drop sprec.
3805 * src/conflicts.c (resolve_sr_conflict): Adjust.
3806 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
3807 single table.
3808 Use symbols[i]->tag instead of tags[i].
3809
213e640e
AD
38102001-12-29 Akim Demaille <akim@epita.fr>
3811
3812 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
3813 In addition, put a comment in there, to replace...
3814 * tests/regression.at (%union and C comments): Remove.
3815
e7b8bef1
AD
38162001-12-29 Akim Demaille <akim@epita.fr>
3817
3818 * tests/regression.at (Web2c Actions): Blindly move the actual
3819 output as expected output. The contents *seem* right to me, but I
3820 can't pretend reading perfectly parser tables... Nonetheless, all
3821 the other tests pass correctly, the table look OK, even though the
3822 presence of `$axiom' is to be noted: AFAICS it is useless (but
3823 harmless).
3824
b68e7744
AD
38252001-12-29 Akim Demaille <akim@epita.fr>
3826
3827 * src/reader.c (readgram): Don't add the rule 0 if there were no
3828 rules read. In other words, add it _after_ having performed
3829 grammar sanity checks.
3830 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
3831
78d5bae9
AD
38322001-12-29 Akim Demaille <akim@epita.fr>
3833
3834 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
3835 visible, and some states have now a different number.
3836
ff442794
AD
38372001-12-29 Akim Demaille <akim@epita.fr>
3838
3839 * src/reader.c (readgram): Bind the initial rule's lineno to that
3840 of the first rule.
3841 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
3842 (Solved SR Conflicts): Adjust rule 0's line number.
3843
610ab194
AD
38442001-12-29 Akim Demaille <akim@epita.fr>
3845
3846 Fix the `GAWK Grammar' failure.
3847
3848 * src/LR0.c (final_state): Initialize to -1 so that we do compute
3849 the reductions of the first state which was mistakenly confused
3850 with the final state because precisely final_state was initialized
3851 to 0.
3852 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
3853 now noticed by Bison.
3854 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
3855 have a reduction on $default.
3856
29d29c8f
AD
38572001-12-29 Akim Demaille <akim@epita.fr>
3858
3859 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
3860 rule line numbers.
3861 * src/closure.c (print_closure): Likewise.
3862 * src/derives.c (print_derives): Likewise.
3863 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
3864 now.
3865
7c6b64d0
AD
38662001-12-29 Akim Demaille <akim@epita.fr>
3867
3868 * src/lalr.c (lookaheads_print): New.
3869 (lalr): Call it when --trace-flag.
3870 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
3871 are dumped.
3872
3d4daee3
AD
38732001-12-29 Akim Demaille <akim@epita.fr>
3874
3875 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
3876 when walking through ritem, even via rule->rhs.
3877 * src/reduce.c (dump_grammar, useful_production, reduce_output)
3878 (useful_production, useless_nonterminals): Likewise.
3879 (reduce_grammar_tables): Likewise, plus update nritems.
3880 * src/nullable.c (set_nullable): Likewise.
3881 * src/lalr.c (build_relations): Likewise.
3882 * tests/sets.at (Nullable): Adjust.
3883 Fortunately, now, the $axiom is no longer nullable.
3884
9e7f6bbd
AD
38852001-12-29 Akim Demaille <akim@epita.fr>
3886
3887 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
3888 the 0-sentinel.
3889 * src/gram.c (ritem_longest_rhs): Likewise.
3890 * src/reduce.c (nonterminals_reduce): Likewise.
3891 * src/print_graph.c (print_graph): Likewise.
3892 * src/output.c (output_rule_data): Likewise.
3893 * src/nullable.c (set_nullable): Likewise.
3894
255ef638
AD
38952001-12-29 Akim Demaille <akim@epita.fr>
3896
3897 * src/output.c: Comment changes.
3898
0d8a7363
AD
38992001-12-27 Paul Eggert <eggert@twinsun.com>
3900
3901 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
3902 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
3903 Sparc, as they were causing more porting problems than the
3904 (minor) performance improvement was worth.
3905
3906 Also, catch up with 1.31's YYSTD.
3907
3db472b9
AD
39082001-12-27 Akim Demaille <akim@epita.fr>
3909
3910 * src/output.c (output_gram): Rely on nritems, not the
3911 0-sentinel. See below.
3912 Use -1 as separator, not 0.
3913 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
3914 Rely on -1 as separator in yyrhs, instead of 0.
3915 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
3916 twice `Now at end of input', therefore there are two lines less to
3917 expect.
3918
b365aa05
AD
39192001-12-27 Akim Demaille <akim@epita.fr>
3920
3921 * tests/regression.at (Unresolved SR Conflicts):
3922 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
3923 below.
3924
30171f79
AD
39252001-12-27 Akim Demaille <akim@epita.fr>
3926
3927 * src/LR0.c (new_state): Recognize the final state by the fact it
3928 is reached by eoftoken.
3929 (insert_start_shifting_state, insert_eof_shifting_state)
3930 (insert_accepting_state, augment_automaton): Remove, since now
3931 these states are automatically computed from the initial state.
3932 (generate_states): Adjust.
3933 * src/print.c: When reporting a rule number to the user, substract
3934 1, so that the axiom rule is rule 0, and the first user rule is 1.
3935 * src/reduce.c: Likewise.
3936 * src/print_graph.c (print_core): For the time being, just as for
3937 the report, depend upon --trace-flags to dump the full set of
3938 items.
3939 * src/reader.c (readgram): Once the grammar read, insert the rule
3940 0: `$axiom: START-SYMBOL $'.
3941 * tests/set.at: Adjust: rule 0 is now displayed, and since the
3942 number of the states has changed (the final state is no longer
3943 necessarily the last), catch up.
3944
75142d45
AD
39452001-12-27 Akim Demaille <akim@epita.fr>
3946
3947 Try to make the use of the eoftoken valid. Given that its value
3948 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
3949 is used instead of > 0 where appropriate, (ii), depend upon nritems
3950 instead of the 0-sentinel.
3951
3952 * src/gram.h, src/gram.c (nritems): New.
3953 Expected to be duplication of nitems, but for the time being...
3954 * src/reader.c (packgram): Assert nritems and nitems are equal.
3955 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
3956 * src/closure.c (print_closure, print_fderives): Likewise.
3957 * src/gram.c (ritem_print): Likewise.
3958 * src/print.c (print_core, print_grammar): Likewise.
3959 * src/print_graph.c: Likewise.
3960
b7c49edf
AD
39612001-12-27 Akim Demaille <akim@epita.fr>
3962
3963 * src/main.c (main): If there are complains after grammar
3964 reductions, then output the report anyway if requested, then die.
3965 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
3966 * src/reader.c (eoftoken): New.
3967 (parse_token_decl): If the token being defined has value `0', it
3968 is the eoftoken.
3969 (packsymbols): No longer hack `tags' to insert `$' by hand.
3970 Be sure to preserve the value of the eoftoken.
3971 (reader): Make sure eoftoken is defined.
3972 Initialize nsyms to 0: now eoftoken is created just like the others.
3973 * src/print.c (print_grammar): Don't special case the eof token.
3974 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
3975 lie anyway, albeit pleasant.
3976 * tests/calc.at: Exercise error messages with eoftoken.
3977 Change the grammar so that empty input is invalid.
3978 Adjust expectations.
3979 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
3980
ec2da99f
AD
39812001-12-27 Akim Demaille <akim@epita.fr>
3982
3983 * configure.in: Check the protos of strchr ans strspn.
3984 Replace strchr if needed.
3985 * src/system.h: Provide the protos of strchr, strspn and memchr if
3986 missing.
3987 * lib/strchr.c: New.
3988 * src/reader.c (symbols_save): Use strchr.
3989
8adfa272
AD
39902001-12-27 Akim Demaille <akim@epita.fr>
3991
3992 * src/print.c, src/print_graph.c (escape): New.
3993 Use it to quote the TAGS outputs.
3994 * src/print_graph.c (print_state): Now errors are in red, and
3995 reductions in green.
3996 Prefer high to wide: output the state number on a line of its own.
3997
80dac38c
AD
39982001-12-27 Akim Demaille <akim@epita.fr>
3999
4000 * src/state.h, src/state.c (reductions_new): New.
4001 * src/LR0.c (set_state_table): Let all the states have a
4002 `reductions', even if reduced to 0.
4003 (save_reductions): Adjust.
4004 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
4005 * src/print.c (print_reductions, print_actions): Adjust.
4006 * src/output.c (action_row): Adjust.
4007
2cec70b9
AD
40082001-12-27 Akim Demaille <akim@epita.fr>
4009
4010 * src/state.h, src/state.c (errs_new, errs_dup): New.
4011 * src/LR0.c (set_state_table): Let all the states have an errs,
4012 even if reduced to 0.
4013 * src/print.c (print_errs, print_reductions): Adjust.
4014 * src/output.c (output_actions, action_row): Adjust.
4015 * src/conflicts.c (resolve_sr_conflict): Adjust.
4016
13ca549a
AD
40172001-12-27 Akim Demaille <akim@epita.fr>
4018
4019 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
4020
5092aba5
AD
40212001-12-27 Akim Demaille <akim@epita.fr>
4022
4023 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
4024 * src/print.c: here.
4025 (lookaheadset, shiftset): New, used as additional storage by
4026 print_reductions.
4027 (print_results): Adjust.
4028 (print_shifts, print_gotos, print_errs): New, extracted from...
4029 (print_actions): here.
4030 * src/print_graph.c (print_actions): Remove dead code.
4031
11e2beca
AD
40322001-12-27 Akim Demaille <akim@epita.fr>
4033
4034 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
4035 `$n' and `@n'.
4036
dac3c910
AD
40372001-12-27 Akim Demaille <akim@epita.fr>
4038
4039 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
4040 (build_relations): Adjust.
4041
d0b0fefa
AD
40422001-12-27 Akim Demaille <akim@epita.fr>
4043
4044 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
4045 duplication.
4046
adc8c848
AD
40472001-12-27 Akim Demaille <akim@epita.fr>
4048
4049 * src/reader.c (packgram): Catch nitems overflows.
4050
14d293ac
AD
40512001-12-27 Akim Demaille <akim@epita.fr>
4052
4053 * src/files.c, src/files.h (guard_obstack): Remove.
4054 * src/output.c (output): Adjust.
4055 * src/reader.c (parse_braces): New, factoring...
4056 (copy_action, copy_guard): these two which are renamed as...
4057 (parse_action, parse_guard): these.
4058 As a voluntary consequence, using braces around guards is now
4059 mandatory.
4060
f499b062
AD
40612001-12-27 Akim Demaille <akim@epita.fr>
4062
4063 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
4064 * src/reader.c (symbol_list): `guard' and `guard_line' are new
4065 members.
4066 (symbol_list_new): Adjust.
4067 (copy_action): action_line is the first line, not the last.
4068 (copy_guard): Just as for actions, store the `action' only, not
4069 the switch/case/break flesh.
4070 Don't parse the user action that might follow the guard, let...
4071 (readgram): do it, i.e., now, there can be an action after a
4072 guard.
4073 In other words the guard is just explicitly optional.
4074 (packgram): Adjust.
4075 * src/output.c (guards_output): New.
4076 (output_parser): Call it when needed.
4077 (output): Also free the guard and attrs obstacks.
4078 * src/files.c, src/files.h (obstack_save): Remove.
4079 (output_files): Remove.
4080 As a result, if one needs the former `.act' file, using an
4081 appropriate skeleton which requires actions and guards is now
4082 required.
4083 * src/main.c (main): Adjust.
4084 * tests/semantic.at: New.
4085 * tests/regression.at: Use `input.y' as input file name.
4086 Avoid 8+3 problems by requiring input.c when the test needs the
4087 parser.
4088
d945f5cd
AD
40892001-12-27 Akim Demaille <akim@epita.fr>
4090
4091 * src/reader.c (symbol_list_new): Be sure to initialize all the
4092 fields.
4093
d200e455
AD
40942001-12-27 Akim Demaille <akim@epita.fr>
4095
4096 All the hacks using a final pseudo state are now useless.
4097
4098 * src/LR0.c (set_state_table): state_table holds exactly nstates.
4099 * src/lalr.c (nLA): New.
4100 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
4101 instead of lookaheadsp from the pseudo state (nstate + 1).
4102
f9507c28
AD
41032001-12-27 Akim Demaille <akim@epita.fr>
4104
4105 * src/output.c (action_row, token_actions): Use a state_t instead
4106 of a integer, and nlookaheads instead of the following state's
4107 lookaheadsp.
4108
065fbd27
AD
41092001-12-27 Akim Demaille <akim@epita.fr>
4110
4111 * src/conflicts.c (log_resolution, flush_shift)
4112 (resolve_sr_conflict, set_conflicts, solve_conflicts)
4113 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
4114 (conflicts_print, print_reductions): Use a state_t instead of an
4115 integer when referring to a state.
4116 As much as possible, depend upon nlookaheads, instead of the
4117 `lookaheadsp' member of the following state (since lookaheads of
4118 successive states are successive, the difference between state n + 1
4119 and n served as the number of lookaheads for state n).
4120 * src/lalr.c (add_lookback_edge): Likewise.
4121 * src/print.c (print_core, print_actions, print_state)
4122 (print_results): Likewise.
4123 * src/print_graph.c (print_core, print_actions, print_state)
4124 (print_graph): Likewise.
4125 * src/conflicts.h: Adjust.
4126
1b177bd7
AD
41272001-12-27 Akim Demaille <akim@epita.fr>
4128
4129 * src/bison.hairy: Formatting/comment changes.
4130 ANSIfy.
4131 Remove `register' indications.
4132 Add plenty of `static'.
4133
7742ddeb
AD
41342001-12-27 Akim Demaille <akim@epita.fr>
4135
4136 * src/output.c (prepare): Drop the muscle `ntbase' which
4137 duplicates ntokens.
4138 * src/bison.simple: Formatting/comment changes.
4139 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
4140 is an undocumented synonym.
4141
1fa14068
AD
41422001-12-22 Akim Demaille <akim@epita.fr>
4143
4144 * src/output.c (output_table_data): Change the prototype to use
4145 `int' for array ranges: some invocations do pass an int, not a
4146 short.
4147 Reported by Wayne Green.
4148
b9752825
AD
41492001-12-22 Akim Demaille <akim@epita.fr>
4150
4151 Some actions of web2c.y are improperly triggered.
4152 Reported by Mike Castle.
4153
4154 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
4155 * tests/regression.at (Web2c): Rename as...
4156 (Web2c Report): this.
4157 (Web2c Actions): New.
4158
776209d6
AD
41592001-12-22 Akim Demaille <akim@epita.fr>
4160
4161 Reductions in web2c.y are improperly reported.
4162 Reported by Mike Castle.
4163
4164 * src/conflicts.c (print_reductions): Fix.
4165 * tests/regression.at (Web2c): New.
4166
275fc3ad
AD
41672001-12-18 Akim Demaille <akim@epita.fr>
4168
4169 Some host fail on `assert (!"foo")', which expands to
4170 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
4171 Reported by Nelson Beebee.
4172
4173 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
4174 `#define it_succeeded 0' and `assert (it_succeeded)'.
4175
897668ee
MA
41762001-12-17 Marc Autret <autret_m@epita.fr>
4177
4178 * src/bison.simple: Don't hard code the skeleton line and filename.
4179 * src/output.c (output_parser): Rename 'line' as 'output_line'.
4180 New line counter 'skeleton_line' (skeleton-line muscle).
4181
ab3399e0
PE
41822001-12-17 Paul Eggert <eggert@twinsun.com>
4183
4184 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
4185 YYDEBUG must be defined to a nonzero value.
4186
4187 * src/bison.simple (yytname): Do not assume that the user defines
4188 YYDEBUG to a properly parenthesized expression.
4189
3877f72b
AD
41902001-12-17 Akim Demaille <akim@epita.fr>
4191
4192 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
4193 nlookaheads is a new member.
4194 Adjust all users.
4195 * src/lalr.h (nlookaheads): Remove this orphan declaration.
4196 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
4197 state.
776209d6 4198
331dbc1b
AD
41992001-12-17 Akim Demaille <akim@epita.fr>
4200
4201 * src/files.h, src/files.c (open_files, close_files): Remove.
4202 * src/main.c (main): Don't open/close files, nor invoke lex_free,
4203 let...
4204 * src/reader.c (reader): Do it.
776209d6 4205
be750e4c
AD
42062001-12-17 Akim Demaille <akim@epita.fr>
4207
4208 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 4209
709ae8c6
AD
42102001-12-17 Akim Demaille <akim@epita.fr>
4211
4212 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
4213 (flush_reduce): New.
4214 (resolve_sr_conflict): Adjust.
776209d6 4215
f87685c3
AD
42162001-12-17 Akim Demaille <akim@epita.fr>
4217
4218 * src/output.c (output_obstack): Be static and rename as...
4219 (format_obstack): this, to avoid any confusion with files.c's
4220 output_obstack.
4221 * src/reader.h (muscle_obstack): Move to...
4222 * src/output.h: here, since it's defined in output.c.
4223
837491d8
AD
42242001-12-17 Akim Demaille <akim@epita.fr>
4225
4226 * src/output.c (action_row, save_column, default_goto)
4227 (sort_actions, matching_state, pack_vector): Better variable
4228 locality.
4229
796d61fb
AD
42302001-12-17 Akim Demaille <akim@epita.fr>
4231
4232 * src/output.c: Various formatting changes.
776209d6 4233
64d15509
AD
42342001-12-17 Akim Demaille <akim@epita.fr>
4235
4236 * src/files.c (output_files): Free the output_obstack.
4237 * src/main.c (main): Call print and print_graph conditionally.
4238 * src/print.c (print): Work unconditionally.
4239 * src/print_graph.c (print_graph): Work unconditionally.
4240 * src/conflicts.c (log_resolution): Output only if verbose_flag.
4241
fbc8ecb7
MA
42422001-12-16 Marc Autret <autret_m@epita.fr>
4243
4244 * src/output.c (actions_output): Fix. When we use %no-lines,
4245 there is one less line per action.
4246
f0440388
MA
42472001-12-16 Marc Autret <autret_m@epita.fr>
4248
4249 * src/bison.simple: Remove a useless #line directive.
4250 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
4251 * src/output.c (get_lines_number): New.
776209d6 4252 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
4253 output muscles.
4254 Fix line numbering.
4255 (actions_output): Computes the number of lines taken by actions.
4256 (output_master_parser): Insert new skeleton which is the name of
4257 the output parser file name.
4258
a79986b8
MA
42592001-12-15 Marc Autret <autret_m@epita.fr>
4260
4261 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
4262
4ec8e00f
MA
42632001-12-15 Marc Autret <autret_m@epita.fr>
4264
4265 * src/output.c (output_gram): Keep track of the hairy one.
4266
1a4648ff
AD
42672001-12-15 Akim Demaille <akim@epita.fr>
4268
4269 Make `make distcheck' work.
4270
4271 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
4272 system.h which uses libgettext.h.
4273
9c2c67e6
AD
42742001-12-15 Akim Demaille <akim@epita.fr>
4275
4276 * src/nullable.c (set_nullable): Useless rules must be skipped,
4277 otherwise, since we range over their symbols, we might look at a
4278 nonterminal which no longer ``exists'', i.e., it is not counted in
4279 `nvars', hence we overflow our arrays.
4280
93ede233
AD
42812001-12-15 Akim Demaille <akim@epita.fr>
4282
4283 The header can also be produced directly, without any obstack!
4284 Yahoo!
4285
4286 * src/files.c, src/files.h (defines_obstack): Remove.
4287 (compute_header_macro): Global.
4288 (defines_obstack_save): Remove.
4289 * src/reader.c (parse_union_decl): No longer output to
4290 defines_obstack: its content can be found in the `stype' muscle
4291 anyway.
4292 (output_token_translations): Merge into...
4293 (symbols_output): this.
4294 Rename as...
4295 (symbols_save): this.
4296 (reader): Adjust.
4297 * src/output.c (header_output): New.
4298 (output): Call it.
4299
2666f928
AD
43002001-12-15 Akim Demaille <akim@epita.fr>
4301
4302 * src/reader.c (parse_union_decl): Instead of handling two obstack
4303 simultaneously, use one to define the `stype' muscle, and use the
4304 value of the latter to fill defines_obstack.
4305 (copy_comment): Remove.
4306 (copy_comment2): Work for a single obstack.
4307 Rename as...
4308 (copy_comment): this.
4309
428046f8
AD
43102001-12-15 Akim Demaille <akim@epita.fr>
4311
4312 * src/lex.c, src/lex.h (xgetc): No longer static.
4313 * src/reader.c (parse_union_decl): Revamp.
4314
ea52d706
AD
43152001-12-15 Akim Demaille <akim@epita.fr>
4316
4317 Still making progress in separating Bison into (i) input, (ii)
4318 process, (iii) output: now we can directly output the parser file
4319 without using table_obstack at all.
4320
4321 * src/files.c, src/files.h (table_obstack): Bye bye.
4322 (parser_file_name): New.
4323 * src/files.c (compute_output_file_names): Compute it.
4324 * src/output.c (actions_output, output_parser)
4325 (output_master_parser): To a file instead of an obstack.
4326
3f96f4dc
AD
43272001-12-15 Akim Demaille <akim@epita.fr>
4328
4329 Attach actions to rules, instead of pre-outputting them to
4330 actions_obstack.
4331
4332 * src/gram.h (rule_t): action and action_line are new members.
4333 * src/reader.c (symbol_list): Likewise.
4334 (copy_action): Save the actions within the rule.
4335 (packgram): Save them in rule_table.
4336 * src/output.c (actions_output): New.
4337 (output_parser): Use it on `%%actions'.
4338 (output_rule_data): Don't free rule_table.
4339 (output): Do it.
4340 (prepare): Don't save the `action' muscle.
4341 * src/bison.simple: s/%%action/%%actions/.
4342
51576fb3
AD
43432001-12-15 Akim Demaille <akim@epita.fr>
4344
4345 * src/reader.c (copy_action): When --yacc, don't append a `;'
4346 to the user action: let it fail if lacking.
dee049eb 4347 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 4348
2648a72d
AD
43492001-12-14 Akim Demaille <akim@epita.fr>
4350
4351 * src/lex.c (literalchar): Simply return the char you decoded, non
4352 longer mess around with obstacks and int pointers.
4353 Adjust all callers.
4354
92790e5b
AD
43552001-12-14 Akim Demaille <akim@epita.fr>
4356
4357 * src/lex.c (literalchar): Don't escape the special characters,
4358 just decode them, and keep them as char (before, eol was output as
4359 the 2 char string `\n' etc.).
4360 * src/output.c (output_rule_data): Use quotearg to output the
4361 token strings.
4362
927c1557
PE
43632001-12-13 Paul Eggert <eggert@twinsun.com>
4364
4365 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
4366 Do not infringe on the global user namespace when using C++.
4367 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
4368 All uses of `fprintf' and `stderr' changed.
4369
4370 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
4371
ed8e1f68
AD
43722001-12-13 Akim Demaille <akim@epita.fr>
4373
4374 The computation of nullable is broken: it doesn't handle empty
4375 RHS's properly.
4376
4377 * tests/torture.at (GNU AWK Grammar): New.
4378 * tests/sets.at (Nullable): New.
4379 * src/nullable.c (set_nullable): Instead of blindly looping over
4380 `ritems', loop over the rules, and then over their rhs's.
4381
4382 Work around Autotest bugs.
4383
4384 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
4385 frame, because Autotest understand lines starting with a `+' as
4386 traces from the shell. Then, they are not processed properly.
4387 Admittedly an Autotest bug, but we don't have time to wait for
4388 Autotest to catch up.
4389 * tests/regression.at (Broken Closure): Adjust to the new table
4390 frames.
4391 Move to...
4392 * tests/sets.at: here.
4393
cb581495
AD
43942001-12-13 Akim Demaille <akim@epita.fr>
4395
4396 * src/closure.c (closure): Use nrules instead of playing tricks
4397 with BITS_PER_WORD.
4398
2e729273
AD
43992001-12-13 Akim Demaille <akim@epita.fr>
4400
4401 * src/print.c (print_actions): Output the handling of `$' as the
4402 traces do: shifting the token EOF. Before EOF was treated as a
4403 nonterminal.
4404 * tests/regression.at: Adjust some tests.
4405 * src/print_graph.c (print_core): Complete the set of items via
4406 closure. The next-to-final and final states are still unsatisfying,
4407 but that's to be addressed elsewhere.
4408 No longer output the rule numbers, but do output the state number.
4409 A single loop for the shifts + gotos is enough, but picked a
4410 distinct color for each.
4411 (print_graph): Initialize and finalize closure.
4412
107f7dfb
AD
44132001-12-13 Akim Demaille <akim@epita.fr>
4414
4415 * src/reader.c (readgram): Remove dead code, an strip useless
4416 braces.
4417 (get_type): Remove, unused.
4418
9b53a24f
AD
44192001-12-12 Akim Demaille <akim@epita.fr>
4420
4421 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
4422 on that of lib/error.c.
4423
dbfb6dcd
AD
44242001-12-12 Akim Demaille <akim@epita.fr>
4425
4426 Some hosts don't like `/' in includes.
4427
4428 * src/system.h: Include libgettext.h without qualifying the path.
4429 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
4430 $(top_srcdir).
4431
c25fb648
MA
44322001-12-11 Marc Autret <autret_m@epita.fr>
4433
4434 * src/output.c (output_parser): Remove useless muscle.
4435
710ddc4f
MA
44362001-12-11 Marc Autret <autret_m@epita.fr>
4437
4438 * src/bison.simple: Remove #line just before %%epilogue. It
4439 is now handled in ...
4440 * src/reader.c (read_additionnal_code): Add the output of a
4441 #line for the epilogue.
4442
e83d80b8
MA
44432001-12-10 Marc Autret <autret_m@epita.fr>
4444
927c1557 4445 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
4446 replace precedent remove.
4447 * src/bison.simple: Remove #line before %%prologue because
4448 %%input-line is wrong at this time.
4449
971d5158
MA
44502001-12-10 Marc Autret <autret_m@epita.fr>
4451
4452 * src/reader.c (symbols_output): Clean up.
927c1557 4453 * src/output.c (output_gram, output): Clean up.
971d5158 4454
5edafffd
AD
44552001-12-10 Akim Demaille <akim@epita.fr>
4456
4457 * src/lalr.c (initialize_lookaheads): New. Extracted from...
4458 * src/LR0.c (set_state_table): here.
4459 * src/lalr.c (lalr): Call it.
4460
0279f8e9
AD
44612001-12-10 Akim Demaille <akim@epita.fr>
4462
4463 * src/state.h (shifts): Remove the `number' member: shifts are
4464 attached to state, hence no longer need to be labelled with a
4465 state number.
4466
190c4f5f
AD
44672001-12-10 Akim Demaille <akim@epita.fr>
4468
4469 Now that states have a complete set of members, the linked list of
4470 shifts is useless: just fill directly the state's shifts member.
4471
4472 * src/state.h (shifts): Remove the `next' member.
4473 * src/LR0.c (first_state, last_state): Remove.
4474 Adjust the callers.
4475 (augment_automaton): Don't look for the shifts that must be added
4476 a shift on EOF: it is those of the state we looked for! But now,
4477 since shifts are attached, it is no longer needed to looking
4478 merely by its id: its number.
4479
2a73b93d
AD
44802001-12-10 Akim Demaille <akim@epita.fr>
4481
4482 * src/LR0.c (augment_automaton): Better variable locality.
4483 Remove an impossible branch: if there is a state corresponding to
4484 the start symbol being shifted, then there is shift for the start
4485 symbol from the initial state.
4486
74392f6a
AD
44872001-12-10 Akim Demaille <akim@epita.fr>
4488
4489 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
4490 only when appropriate: when insert_start_shifting_state' is not
4491 invoked.
4492 * tests/regression.at (Rule Line Numbers): Adjust.
4493
37c82725
AD
44942001-12-10 Akim Demaille <akim@epita.fr>
4495
4496 * src/LR0.c (augment_automaton): Now that all states have shifts,
4497 merge the two cases addition shifts to the initial state.
4498
6a164e0c
AD
44992001-12-10 Akim Demaille <akim@epita.fr>
4500
4501 * src/lalr.c (set_state_table): Move to...
4502 * src/LR0.c: here.
4503 * src/lalr.c (lalr): Don't call it...
4504 * src/LR0.c (generate_states): do it.
4505 * src/LR0.h (first_state): Remove, only the table is used.
4506
7215de24
AD
45072001-12-10 Akim Demaille <akim@epita.fr>
4508
4509 * src/LR0.h (first_shift, first_reduction): Remove.
4510 * src/lalr.c: Don't use first_shift: find shifts through the
4511 states.
4512
80e25d4d
AD
45132001-12-10 Akim Demaille <akim@epita.fr>
4514
4515 * src/LR0.c: Attach shifts to states as soon as they are
4516 computed.
4517 * src/lalr.c (set_state_table): Instead of assigning shifts to
4518 state, just assert that the mapping was properly done.
4519
0ab3728b
AD
45202001-12-10 Akim Demaille <akim@epita.fr>
4521
4522 * src/LR0.c (insert_start_shift): Rename as...
4523 (insert_start_shifting_state): this.
4524 (insert_eof_shifting_state, insert_accepting_state): New.
4525 (augment_automaton): Adjust.
4526 Better locality of the variables.
4527 When looking if the start_symbol is shifted from the initial
4528 state, using `while (... symbol != start_symbol ...)' sounds
4529 better than `while (... symbol < start_symbol ...)': If fail
4530 to see how the order between symbols could be relevant!
4531
78af9bbc
AD
45322001-12-10 Akim Demaille <akim@epita.fr>
4533
4534 * src/getargs.h: Don't declare `spec_name_prefix' and
4535 `spec_file_prefix', declared by src/files.h.
4536 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
4537 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
4538 * src/output.c (prepare): Adjust.
4539 * src/reader.c (symbols_output): Likewise.
4540 * src/vmsgetargs.c: Vaguely adjust, but who cares?
4541
bdef2a41
AD
45422001-12-10 Akim Demaille <akim@epita.fr>
4543
4544 * src/muscle_tab.c (muscle_init): NULL is a better default than
4545 `"0"'.
4546
3735969c
AD
45472001-12-10 Akim Demaille <akim@epita.fr>
4548
4549 * src/reader.c (reader): Calling symbols_output once is enough.
4550
49701457
AD
45512001-12-10 Akim Demaille <akim@epita.fr>
4552
4553 Now that states have a complete set of members, the linked list of
4554 reductions is useless: just fill directly the state's reductions
4555 member.
4556
4557 * src/state.h (struct reductions): Remove member `number' and
4558 `next'.
4559 * src/LR0.c (first_reduction, last_reduction): Remove.
4560 (save_reductions): Don't link the new reductions, store them in
4561 this_state.
4562 * src/lalr.c (set_state_table): No need to attach reductions to
4563 states, it's already done.
4564 * src/output.c (output_actions): No longer free the shifts, then
4565 the reductions, then the states: free all the states and their
4566 members.
4567
0edad749
AD
45682001-12-10 Akim Demaille <akim@epita.fr>
4569
4570 * src/options.c (OPTN, DRTV, BOTH): New.
4571 (option_table): Use them.
4572
0edad749
AD
4573 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
4574 the job of system.h.
4575 * src/options.c: Don't include stdio.h and xalloc.h for the same
4576 reasons.
4577
5449dd0f
AD
45782001-12-10 Akim Demaille <akim@epita.fr>
4579
4580 * src/output.c (output, prepare): Make sure the values of the
4581 muscles `action' and `prologue' are 0-terminated.
4582
a870c567
AD
45832001-12-10 Akim Demaille <akim@epita.fr>
4584
4585 Clean up GCC warnings.
4586
4587 * src/reader.c (copy_action): `buf' is not used.
4588 (parse_skel_decl): Be static.
4589 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
4590 * src/options.h (create_long_option_table): Have a real prototype.
4591 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
4592 (hash_delete_at): Return const void *.
4593 Adjust casts to preserve the const.
4594
80df8768
AD
45952001-12-10 Akim Demaille <akim@epita.fr>
4596
4597 * configure.in: Require 2.52g.
4598 M4 is not needed, but AUTOM4TE is.
4599 * m4/m4.m4: Remove.
4600 * tests/Makefile.am: Adjust.
4601
f693ad14
AD
46022001-12-10 Akim Demaille <akim@epita.fr>
4603
4604 One structure for states is enough, even though theoretically
4605 there are LR(0) states and LALR(1) states.
4606
4607 * src/lalr.h (state_t): Remove.
4608 (state_table): Be state_t **, not state_t *.
4609 * src/state.h (core, CORE_ALLOC): Rename as...
4610 (state_t, STATE_ALLOC): this.
4611 Add the LALR(1) members: shifts, reductions, errs.
4612 * src/LR0.c (state_table): Rename as...
4613 (state_hash): this, to avoid name clashes with the global
4614 `state_table'.
4615 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
4616 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
4617
74ffbcb6
AD
46182001-12-10 Akim Demaille <akim@epita.fr>
4619
4620 Bison dumps core on bash.y.
4621 Reported by Pascal Bart.
4622
4623 * src/warshall.c (bitmatrix_print): New.
4624 (TC): Use it.
4625 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
4626 j must be the outer loop.
4627 * tests/regression.at (Broken Closure): New.
4628
07708e19
AD
46292001-12-05 Akim Demaille <akim@epita.fr>
4630
4631 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
4632 its argument.
4633