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