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