]> git.saurik.com Git - bison.git/blame - ChangeLog
Regen.
[bison.git] / ChangeLog
CommitLineData
e3aa65c5
PE
12003-01-11 Paul Eggert <eggert@twinsun.com>
2
3 * NEWS: %expect-violations are now just warnings, reverting
4 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
5 bootstrapping problem reported by Matthias Klose; see
6 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
7 * src/conflicts.c (conflicts_print): Likewise.
8 * tests/conflicts.at (%expect not enough, %expect too much,
9 %expect with reduce conflicts): Likewise.
10 * doc/bison.texinfo (Expect Decl): Document this. Also mention
11 that the warning is enabled if the number of conflicts changes
12 (not necessarily increases).
13
14 * src/getargs.c (version): Update copyright year.
15
f0057011
AD
162003-01-09 Akim Demaille <akim@epita.fr>
17
18 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
19
1ee6d2a0
PE
202003-01-08 Paul Eggert <eggert@twinsun.com>
21
22 * Makefile.maint (WGETFLAGS):
23 New macro, containing "-C off" to disable proxy caches.
24 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
25 (rel-check): Use $(WGET) instead of wget.
26
d4fd77c4
PE
272003-01-06 Paul Eggert <eggert@twinsun.com>
28
29 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
30 the GLR paper of Scott, Johnstone and Hussain.
31
464c6927
PE
322003-01-04 Paul Eggert <eggert@twinsun.com>
33
d600ee67
PE
34 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
35 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
36 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
37 (EXTRA_LIBRARIES): New var, for liby.a.
38 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
39 (EXTRA_SCRIPTS): New var, for yacc.
40
464c6927
PE
41 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
42 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
43 Problem reported by Nelson H. F. Beebe.
44
452003-01-03 Paul Eggert <eggert@twinsun.com>
46
47 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
48 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
49 when compiling Bison 1.875's `bitset bset = obstack_alloc
50 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
51
52 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
53 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
54 grow to a huge size with typical invocation.
d600ee67 55
464c6927
PE
56 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
57 Use the pattern recommended by Autoconf 2.57, except also protect
58 against double-definition.
59 * src/system.h: Likewise.
60 Portability issues reported by Nelson H. F. Beebe.
d600ee67 61
464c6927
PE
62 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
63 All uses changed. Provide a definition in both C and C++.
64 (yytrue, yyfalse): Define even if defined (__cplusplus).
65
66 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
67 Reported by Nelson H. F. Beebe.
d600ee67 68
464c6927
PE
69 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
70
0f42c7d5
PE
712003-01-02 Paul Eggert <eggert@twinsun.com>
72
73 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
74 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
75 Bug reported by Nelson H. F. Beebe.
76
dc546b0f
PE
772003-01-01 Paul Eggert <eggert@twinsun.com>
78
79 * Version 1.875.
80
2c09b6a7
PE
812002-12-30 Paul Eggert <eggert@twinsun.com>
82
83 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
84 Moved here from...
85 (<INITIAL>","): Here. This causes stray "," to be treated
86 more uniformly.
87
dc546b0f 88 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2c09b6a7
PE
89 last brace in braced code when not in Yacc mode, for compatibility
90 with Bison 1.35. This resurrects the 2001-12-15 patch to
91 src/reader.c.
92
93 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
94 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
95
535c0f63
PE
962002-12-28 Paul Eggert <eggert@twinsun.com>
97
98 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
99 that of SYM's type. This fixes Debian bug 168069, reported by
100 Thomas Olsson.
d600ee67 101
963fcc17
PE
1022002-12-28 Paul Eggert <eggert@twinsun.com>
103
104 Version 1.75f.
105
106 Switch back to the Yacc style of conflict reports, undoing some
107 of the 2002-07-30 change.
108 * doc/bison.texinfo (Understanding): Use Yacc style for
109 conflict reports. Also, use new way of locating rules.
110 * src/conflicts.c (conflict_report):
111 Renamed from conflict_report_yacc, removing the old
112 'conflict_report'. Translate the entire conflict report at once,
113 so that we don't assume that "," has the same interpretation in
114 all languages.
115 (conflicts_output): Use Yacc-style conflict report for each state,
116 instead of our more-complicated style.
117 (conflicts_print): Use Yacc-style conflict report, except print
118 the input file name when not emulating Yacc.
119 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
120 Conflicted Reduction, %expect not enough, %expect too much,
121 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
122 * tests/existing.at (GNU Cim Grammar): Likewise.
123 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
124
125 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
126 fatal): Don't invoke fflush; it's not needed and it might even be
127 harmful for stdout, as stdout might not be open.
128 * src/reduce.c (reduce_print): Likewise.
129
b1efe548
PE
1302002-12-27 Paul Eggert <eggert@twinsun.com>
131
132 Fix a bug where error locations were not being recorded correctly.
133 This problem was originally reported by Paul Hilfinger in
e3aa65c5 134 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
b1efe548
PE
135
136 * data/yacc.c (yyparse): New local var yylerrsp, to record the
137 top of the location stack's error locations.
138 (yyerrlab): Set it. When discarding a token, push its location
139 onto yylerrsp so that we don't lose track of the error's end.
140 (yyerrlab1): Now is only the target of YYERROR, so that we can
141 properly record the location of the action that failed. For GCC
142 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
143 GCC warning about yyerrlab1 being unused if YYERROR is unused.
144 (yyerrlab2): New label, which yyerrlab now falls through to.
145 Compute the error's location by applying YYLLOC_DEFAULT to
146 the locations of all the symbols that went into the error.
147 * doc/bison.texinfo (Location Default Action): Mention that
148 YYLLOC_DEFAULT is also invoked for syntax errors.
149 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
150 Error locations include the locations of all the tokens that were
151 discarded, not just the last token.
d600ee67 152
983c5c2c
PE
1532002-12-26 Paul Eggert <eggert@twinsun.com>
154
b1efe548
PE
155 * src/files.c: Include quote.h.
156 (compute_output_file_names): Warn if we detect conflicting
157 outputs to the same file. This should catch the misunderstanding
158 exemplified by Debian Bug 165349, reported by Bruce Stephens..
159
160 * src/conflicts.c (conflicts_print): If the user specifies
161 "%expect N", report an error if there are any reduce/reduce
162 conflicts. This is what the manual says should happen.
163 This fixes Debian bug 130890, reported by Anthony DeRobertis.
164 * tests/conflicts.at (%expect with reduce conflicts): New test.
165
983c5c2c
PE
166 Don't use m4_include on relative file names, as it doesn't work as
167 desired if there happens to be a file with that name under ".".
d600ee67 168
983c5c2c
PE
169 * m4sugar/version.m4: Remove; it was included but it wasn't used.
170 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
171 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
172 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
173 * src/output.c (output_skeleton): Use full path names when
174 specifying a file to include; don't rely on include path, as
175 it's unreliable when the working file contains a file with
176 that name.
d600ee67 177
983c5c2c
PE
1782002-12-25 Paul Eggert <eggert@twinsun.com>
179
180 Remove obsolete references to bison.simple and bison.hairy.
181 Problem mentioned by Aubin Mahe in
e3aa65c5 182 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
983c5c2c
PE
183 * data/glr.c: Comment fix.
184 * doc/bison.1: Remove references. Also, mention "yacc".
185
186 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
187 with -g option.
188
189 * src/parse-gram.y (declaration): Use enum "report_states" rather
190 than its numeric value 1.
191
192 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
193 opening a new one. This fixes Debian bug 165349, reported by
194 Bruce Stephens.
195
23f2d9dc
PE
1962002-12-24 Paul Eggert <eggert@twinsun.com>
197
198 Version 1.75e.
199
200 * Makefile.maint (cvs-update): Don't assume that the shell
201 supports $(...), as Solaris sh doesn't.
202
203 * src/parse-gram.y (lloc_default): Remove test for empty
204 nonterminals at the end, since it didn't change the result.
205
2062002-12-24 Paul Eggert <eggert@twinsun.com>
33167b8b
PE
207
208 If the user does not define YYSTYPE as a macro, Bison now declares it
209 using typedef instead of defining it as a macro. POSIX requires this.
210 For consistency, YYLTYPE is also declared instead of defined.
211
212 %union directives can now have a tag before the `{', e.g., the
213 directive `%union foo {...}' now generates the C code
214 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
215 The default union tag is `YYSTYPE', for compatibility with Solaris 9
216 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
217 instead of `yyltype'.
218
219 `yystype' and `yyltype' are now obsolescent macros instead of being
220 typedefs or tags; they are no longer documented and will be
221 withdrawn in a future release.
222
223 * data/glr.c (b4_location_type): Remove.
224 (YYSTYPE): Renamed from yystype.
225 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
226 (struct YYLTYPE): Renamed from struct yyltype.
227 (YYLTYPE): Renamed from yyltype.
228 (yyltype, yystype): New (and obsolescent) macros,
229 for backward compatibility.
230 * data/yacc.c: Likewise.
231
232 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
233 does not specify a union tag. This is for compatibility with
234 Solaris 9 yacc.
235
236 * src/parse-gram.y (add_param): 2nd arg is now char * not char
237 const *, since it is now modified by stripping surrounding { }.
238 (current_braced_code): Remove.
239 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
240 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
241 trailing " {...}". Now of type <chars>.
242 (grammar_declaration): Adjust to bundled tokens.
243 (code_content): Remove; stripping is now done by add_param.
244 (print_token_value): Print contents of bundled tokens.
245 (token_name): New function.
246
247 * src/reader.h (braced_code, current_braced_code): Remove.
248 (token_name): New decl.
249
250 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
251 token_type, not braced_code code_kind. All uses changed.
252 (SC_PRE_CODE): New state, for scanning after a keyword that
253 has (or usually has) an immediately-following braced code.
254 (token_type): New local var, to keep track of which token type
255 to return when scanning braced code.
256 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
dc546b0f 257 <INITIAL>"%parse-param", <INITIAL>"%printer",
33167b8b
PE
258 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
259 instead of returning a token type immediately.
260 (<INITIAL>"{"): Set token type.
261 (<SC_BRACED_CODE>"}"): Use it.
262 (handle_action_dollar, handle_action_at): Now returns bool
263 indicating success. Fail if ! current_rule; this prevents a core dump.
264 (handle_symbol_code_dollar, handle_symbol_code_at):
265 Remove; merge body into caller.
266 (handle_dollar, handle_at): Complain in invalid contexts.
267
268 * NEWS, doc/bison.texinfo: Document the above.
269 * NEWS: Fix years and program names in copyright notice.
270
879ca4f8
PE
2712002-12-17 Paul Eggert <eggert@twinsun.com>
272
273 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
274 Reporting, Table of Symbols): Omit mentions of %lex-param and
275 %parse-param from the documentation for now.
276
1c5fe69d
PE
2772002-12-15 Paul Eggert <eggert@twinsun.com>
278
279 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
280 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
281 lookahead symbol, and which sets yychar in parser actions) and it
7ea9026a
PE
282 disagreed with the Bison documentation. Bug
283 reported by Andrew Walrond.
d600ee67 284
1c5fe69d
PE
285 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
286 as the caller now does that.
287 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
288 (YYEMPTY): Parenthesize right hand side, since others use it.
289 (yyparse): Don't assume that our generated code is the only code
290 that sets yychar.
291
d1de5372
PE
2922002-12-13 Paul Eggert <eggert@twinsun.com>
293
294 Version 1.75d.
295
296 POSIX requires a "yacc" command.
297 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
298 (MOSTLYCLEANFILES): Add yacc.
299 (yacc): New rule.
1c5fe69d 300 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
d1de5372
PE
301 as an alias for bison y.
302
303 * po/LINGUAS: Add da.
d600ee67 304
d1de5372
PE
305 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
306 problem with latest <getopt.h>.
307 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
308
309 * doc/fdl.texi: Upgrade to 1.2.
310 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
311 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
312 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
313 gnulib.
314 * config/install-sh: Sync with autotools.
315
316 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
e3aa65c5 317 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
d1de5372
PE
318 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
319 locations are requested.
320 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
321 locations are requested.
322
d0f3fe23
PE
3232002-12-12 Paul Eggert <eggert@twinsun.com>
324
325 Remove unportable casts and storage allocation tricks.
326 While we're at it, remove almost all casts, since they
327 usually aren't needed and are a sign of trouble.
328
329 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
330
331 * src/derives.c (derives_compute): Do not subtract NTOKENS from
332 the pointer DSET returned by malloc; this isn't portable.
333 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
334 Similarly for DERIVES.
335 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
336 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
337 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
338
339 * src/derives.c (derives_compute): Do not bother invoking
340 int_of_rule_number, since rule numbers are integers.
341
342 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
343 rather than XMALLOC (char, N).
344
345 * src/files.c (filename_split): Rewrite to avoid cast.
346
347 * src/gram.h (symbol_number_as_item_number,
348 item_number_as_symbol_number, rule_number_as_item_number,
349 item_number_as_rule_number):
350 Now inline functions rather than macros, to avoid casts.
351 * src/state.h (state_number_as_int): Likewise.
352 * src/tables.c (state_number_to_vector_number,
353 symbol_number_to_vector_number): Likewise.
354
355 * src/gram.h (int_of_rule_number): Remove; no longer used.
356
357 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
358 since the resulting storage is always stored into.
359
360 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
361 where it's needed.
362
363 * src/muscle_tab.c (muscle_m4_output):
364 Now inline. Return bool, not int.
365 * src/state.c (state_compare): Likewise.
366 * src/symtab.c (symbol_check_defined,
367 symbol_check_alias_consistency, symbol_pack, symbol_translation,
368 hash_compare_symbol, hash_symbol):
369 Likewise.
370 * src/uniqstr.c (uniqstr_print): Likewise.
371 * src/muscle_tab.c (muscle_m4_output_processor):
372 New function, to avoid casts.
373 * src/state.c (state_comparator, stage_hasher): Likewise.
374 * src/symtab.c (symbol_check_defined_processor,
375 symbol_check_alias_consistency_processor, symbol_pack_processor,
376 symbol_translation_processor, hash_symbol_comparator,
377 hash_symbol_hasher): Likewise.
378 * src/uniqstr.c (uniqstr_print_processor): Likewise.
379 * src/muscle_tab.c (muscles_m4_output):
380 Use new functions instead of casting old functions unportably.
381 * src/state.c (state_hash_new): Likewise.
382 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
383 symbols_token_translations_init):
384 Likewise.
385 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
386
387 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
388 var instead of casting to long, to avoid casts.
389 (prepare_states): Use MALLOC rather than alloca, so that we don't
390 have to worry about alloca.
391 * src/state.c (state_hash_lookup): Likewise.
392
393 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
394 local var instead of casting to unsigned char, to avoid casts.
395
396 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
397 STATE_ALLOC): Remove.
398 (transitions_new, errs_new, reductions_new, state_new): Use malloc
399 rather than calloc, and use offsetof to avoid allocating slightly
400 too much storage.
401 (state_new): Initialize all members.
402
403 * src/state.c (state_hash): Use unsigned accumulator, not signed.
404
405 * src/symtab.c (symbol_free): Remove; unused.
406 (symbol_get): Remove cast in lhs of assignment.
407 (symbols_do): Now static. Accept generic arguments, not
408 hashing-related ones.
409
410 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
411 (symbol_processor): Remove.
412 (symbols_do): Remove decl; now static.
413
414 * src/system.h (alloca): Remove; decl no longer needed.
415 (<stddef.h>): Include, for offsetof.
416 (<inttypes.>, <stdint.h>): Include if available.
417 (uintptr_t): New type, if system lacks it.
418 (CALLOC, MALLOC, REALLOC): New macros.
419 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
420 new macros.
421
422 * src/tables.c (table_size): Now int, to pacify GCC.
423 (table_grow, table_ninf_remap): Use signed table size.
424 (save_row): Don't bother initializing locals when not needed.
425 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
426 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
427
428 * src/vcg.h: Correct misspellings.
429
430 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
431
432
433 * src/getargs.c (getargs): Don't assume EOF == -1.
434
26b4a969
PE
4352002-12-09 Paul Eggert <eggert@twinsun.com>
436
437 Change identifier spellings to avoid collisions with names
438 that are reserved by POSIX.
439
440 Don't use names ending in _t, since POSIX reserves them.
441 For consistency, remove _e and _s endings -- they're weren't
442 needed to remove ambiguity. All uses changed.
443 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
444 turn was just renamed from struniq_t.
445 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
446 which in turn was just renamed from struniq_processor_t.
447 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
448 in turn was renamed from hash_compare_struniq_t.
449 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
450 (state_list): Renamed from state_list_t.
451 * src/assoc.h (assoc): Renamed from assoc_t.
452 * src/conflicts.c (enum conflict_resolution): Renamed from
453 enum conflict_resolution_e.
454 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
455 (rule_list): Renamed from rule_list_t.
456 * src/getargs.h (enum trace): Renamed from enum trace_e.
457 (enum report): Renamed from enum report_e.
458 * src/gram.h (item_number): Renamed from item_number_t.
459 (rule_number): Renamed from rule_number_t.
460 (struct rule_s): Remove the "rule_s" part; not used.
461 (rule): Renamed from rule_t.
462 (rule_filter): Renamed from rule_filter_t.
463 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
464 (goto_list): Renamed from goto_list_t.
465 * src/lalr.h (goto_number): Renamed from goto_number_t.
466 * src/location.h (location): Renamed from location_t.
467 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
468 and moved here from:
469 * src/muscle_tab.h (muscle_entry_t): here.
470 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
471 (rule_list): Renamed from rule_list_t.
472 * src/print_graph.c (static_graph): Renamed from graph.
473 * src/reader.h (braced_code): Renamed from braced_code_t.
474 Remove brace_code_e tag.
475 * src/relation.h (relation_node): Renamed from relation_node_t.
476 (relation_nodes): Renamed from relation_nodes_t.
477 (relation): Renamed from relation_t.
478 * src/state.h (state_number): Renamed from state_number_t.
479 (struct state): Renamed from struct state_s.
480 (state): Renamed from state_t.
481 (transitions): Renamed from transitions_t. Unused (and
482 misspelled) transtion_s tag removed.
483 (errs): Renamed from errs_t. Unused errs_s tag removed.
484 (reductions): Renamed from reductions_t. Unused tag
485 reductions_s removed.
486 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
487 (struct symbol_list): Renamed from struct symbol_list_s.
488 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
489 (struct symbol): Renamed from struct symbol_s.
490 (symbol): Renamed from symbol_t.
491 * src/tables.c (vector_number): Renamed from vector_number_t.
492 (action_number): Renamed from action_t.
493 * src/tables.h (base_number): Renamed from base_t.
494 * src/vcg.h (enum color): Renamed from enum color_e.
495 (enum textmode): Renamed from enum textmode_e.
496 (enum shape): Renamed from enum shape_e.
497 (struct colorentry): Renamed from struct colorentry_s.
498 (struct classname): Renamed from struct classname_s.
499 (struct infoname): Renamed from struct infoname_s.
500 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
501 (enum decision): Renamed from enum decision_e.
502 (enum orientation): Renamed from enum orientation_e.
503 (enum alignment): Renamed from enum alignment_e.
504 (enum arrow_mode): Renamed from enum arrow_mode_e.
505 (enum crossing_type): Renamed from enum crossing_type_e.
506 (enum view): Renamed from enum view_e.
507 (struct node): Renamed from struct node_s.
508 (node): Renamed from node_t.
509 (enum linestyle): Renamed from enum linestyle_e.
510 (enum arrowstyle): Renamed from enum arrowstyle_e.
511 (struct edge): Renamed from struct edge.
512 (edge): Renamed from edge_t.
513 (struct graph): Renamed from struct graph_s.
514 (graph): Renamed from graph_t.
515 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
516 Rename value_t -> value.
517 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
518 value_t_as_yystype -> value_as_yystype.
519
520 Don't include <errno.h> in the mainstream code, since it
521 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
522 * lib/get-errno.c, lib/get-errno.h: New files.
523 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
524 get-errno.c.
525 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
526 * src/output.c (output_skeleton): Likewise.
527 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
528 instead of errno.
529 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
530 Likewise.
531 (handle_action_dollar, handle_action_at): Likewise.
532 * src/system.h: Do not include <errno.h>.
533 (TAB_EXT): Renamed from EXT_TAB.
534 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
535
536 Avoid str[a-z]*, since <string.h> reserves that name space.
537 Change all instances of "struniq" in names to "uniqstr", and
538 likewise for "STRUNIQ" and "UNIQSTR".
539 * src/uniqstr.c: Renamed from src/struniq.c.
540 * src/uniqstr.h: Renamed from src/struniq.h.
541 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
542 * src/files.c (strsuffix): Remove; unused.
543 (concat2): Renamed from stringappend. Now static.
544 * src/files.h (strsuffix, stringappend): Remove; unused.
545 * src/parse-gram.y (<chars>): Renamed from <string>.
546 (<uniqstr>): Renamed from <struniq>.
547 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
548 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
549 (struct graph_s.expand): Renamed from struct graph_s.stretch.
550 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
551 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
552 (N_EXPAND): Renamed from N_STRETCH.
553
554 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
555 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
556 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
557 Remove; unused.
558 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
559 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
560 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
561 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
562 (BASE_MAXIMUM): Renamed from BASE_MAX.
563 (BASE_MINIMUM): Renamed from BASE_MIN.
564 (ACTION_MAX): Remove; unused.
565 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
566 Unnecessary casts removed from above defines.
567
568
569 Fix misspelling in names.
570 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
571 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
572 G_NODE_ALIGNEMENT.
573
574
575 * lib/timevar.c (timevar_report): Renamed from time_report,
576 for consistency with other names.
577 * lib/timevar.h (timevar_report): New decl.
578 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
579
580
581 Sort include-file uses.
582
583 Reorder all include files under src to be in the order "system.h".
584 then the ../lib include files in angle brackets (alphabetized),
585 then the . include files in double-quotes (alphabetized). Fix
586 dependency breakages encountered in this process, as follows:
587 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
588 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
589 * src/state.h: Include "symtab.h".
590
996b1c7e
PE
5912002-12-08 Paul Eggert <eggert@twinsun.com>
592
593 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
594 since this causes problems when __file__ contains character
595 sequences like "@" that are treated specially by src/scan-skel.l.
596 Instead, just use the file's basename. This fixes the bug
597 reported by Martin Mokrejs in
e3aa65c5 598 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
996b1c7e 599
e19c4e5d
PE
6002002-12-06 Paul Eggert <eggert@twinsun.com>
601
602 Add support for rules that do not have trailing semicolons, as
603 POSIX requires. Improve the quality of locations in Bison
604 diagnostics.
26b4a969 605
e19c4e5d
PE
606 * src/location.c: Include <quotearg.h>.
607 (empty_location): Now const.
608 (location_print): New function. Follow the recommendation of the
609 GNU Coding Standards for locations that span file boundaries.
610 * src/location.h: Do not include <quotearg.h>; no longer needed.
611 (boundary): New type.
612 (location_t): Use it. This allows locations to span file boundaries.
613 All member uses changed: file -> start.file or end.file (as needed),
614 first_line -> start.line, first_column -> start.column,
615 last_line -> end.line, last_column -> end.column.
616 (equal_boundaries): New function.
617 (LOCATION_RESET, LOCATION_STEP): Remove.
618 (LOCATION_PRINT): Remove. All callers changed to use location_print.
619 (empty_location): Now const.
620 (location_print): New decl.
621 * src/parse-gram.y (lloc_default): New function, which handles
622 empty locations more accurately.
623 (YYLLOC_DEFAULT): Use it.
624 (%token COLON): Remove.
625 (%token ID_COLON): New token.
26b4a969 626 (rules): Use it.
e19c4e5d
PE
627 (declarations, rules): Remove trailing semicolon.
628 (declaration, rules_or_grammar_declaration):
629 Allow empty (";") declaration.
630 (symbol_def): Remove empty actions; no longer needed.
631 (rules_or_grammar_declaration): Remove trailing semicolon.
632 (semi_colon.opt): Remove.
633 * src/reader.h: Include location.h.
634 (scanner_cursor): New decl.
635 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
636 rolling our own.
637 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
638 of *loc.
639 (STEP): Remove. No longer needed, now that adjust_location does
640 the work. All uses removed.
641 (scanner_cursor): New var.
642 (adjust_location): Renamed from extend_location. It now sets
643 *loc and adjusts the scanner cursor. All uses changed.
644 Don't bother testing for CR.
645 (handle_syncline): Remove location arg; now updates scanner cursor.
646 All callers changed.
647 (unexpected_end_of_file): Now accepts start boundary of token or
648 comment, not location. All callers changed. Update scanner cursor,
649 not the location.
650 (SC_AFTER_IDENTIFIER): New state.
651 (context_state): Renamed from c_context. All uses changed.
652 (id_loc, code_start, token_start): New local vars.
653 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
654 processing of Yacc white space and equivalents here.
655 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
656 instead of returning ID immediately, since we need to search for
657 a subsequent colon.
658 (<INITIAL>"'", "\""): Save token_start.
659 (<INITIAL>"%{", "{", "%%"): Save code_start.
660 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
661 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
662 BEGIN context_state at end, not INITIAL.
663 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
664 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
665 Return correct token start.
666 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
667 the start of a character, string or multiline comment is found.
668 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
669 Reduction): Adjust reported locations to match the more-precise
670 results now expected.
671 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
672 * tests/reduce.at (Useless Rules, Reduced Automaton,
673 Underivable Rules): Likewise.
674 * tests/regression.at (Invalid inputs): No longer `expecting ";"
675 or "|"' now that so many other tokens are allowed by the new grammar.
676
677 * src/complain.h (current_file): Remove duplicate decl;
678 current_file is now owned by files.h.
679 * src/complain.c, src/scan-gram.l: Include files.h.
680
6812002-12-06 Paul Eggert <eggert@twinsun.com>
26b4a969 682
e19c4e5d
PE
683 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
684 promotes to int; it might be unsigned int.
685 * data/yacc.c (yy_reduce_print): Likewise.
686
687 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
688 be #defined in the prologue, not in the Bison declarations.
689 This fixes Debian Bug 102878, reported by Shaul Karl.
26b4a969 690
b64755e3
PE
6912002-12-02 Paul Eggert <eggert@twinsun.com>
692
693 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
694 * lib/strtoul.c: New file, from gnulib.
695 This fixes a porting bug reported by Peter Klein in
e3aa65c5 696 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
b64755e3 697
6e746484
PE
6982002-11-30 Paul Eggert <eggert@twinsun.com>
699
b64755e3
PE
700 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
701 and put only a forward declaration in the prologue. This is for
702 consistency with the other scanner helper functions.
703
6ba55592
PE
704 Type clashes now generate warnings, not errors, since it
705 appears that POSIX may allow some grammars with type clashes.
706 * src/reader.c (grammar_current_rule_check): Warn about
707 type clashes instead of complaining.
708 * tests/input.at (Type Clashes): Expect warnings, not complaints.
709
6e746484
PE
710 Add Yacc library, since POSIX requires it.
711 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
712 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
713 * lib/main.c, lib/yyerror.c: New files.
714
715 gram_error can be static; it need not be extern.
716 * src/reader.h (gram_error): Remove decl.
717 * src/parse-gram.y (gram_error): Now static. Add static decl.
718 (print_token_value): Omit parameter names from forward decl,
719 for consistency.
720
88510f9c
PE
7212002-11-29 Paul Eggert <eggert@twinsun.com>
722
6e746484
PE
723 * doc/bison.texinfo: Emphasize that yylex and yyerror must
724 be declared before being used. E.g., one should typically
725 declare them in the prologue. Use GNU coding style in examples.
726 Put "const" consistently after the type it modifies. Mention
727 that C99 supports "inline". Mention that yyerror traditionally
728 returns "int".
729
88510f9c
PE
730 %parse-param and %lex-param now take just one argument, the
731 declaration; the argument name is deduced from the declaration.
732
733 * doc/bison.texinfo (Parser Function, Pure Calling, Error
734 Reporting, Table of Symbols): Document this.
735 * src/parse-gram.y (add_param): New function.
736 (COMMA): Remove.
737 (declaration): Implement new rule for %parse-param and %lex-param.
738 * src/scan-gram.l: "," now elicits a warning, rather than being
739 a token; this is more compatible with byacc.
740 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
741
bb92250c
PE
7422002-11-27 Paul Eggert <eggert@twinsun.com>
743
744 Rename identifiers to avoid real and potential collisions.
745
746 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
747 to avoid collision with lex macro described by Bruce Lilly in
e3aa65c5 748 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
bb92250c
PE
749 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
750 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
751 * src/parse-gram.y (print_token_value): Renamed from yyprint.
752 All uses changed.
753 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
754 The name "yycontrol" violates the name space rules, and this stuff
755 wasn't being used anyway.
756 (input): Remove action; this stuff wasn't being used.
757 (gram_error): Rename local variable yylloc -> loc.
758 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
759 (YY_DECL): Don't use "yy" at start of local variables.
760 All uses changed, e.g., yylloc -> loc.
761 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
762 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
763 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
764 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
765
766 * src/parse-gram.y (gram_error): loc is now const *.
767 * src/reader.h (gram_error): Likewise.
768
3af4feb2
PE
7692002-11-24 Paul Eggert <eggert@twinsun.com>
770
771 Version 1.75c.
772
773 * tests/actions.at (Actions after errors): Use an output format
774 more similar to that of the Printers and Destructors test.
775 Test the position of the ';' token too.
776 (Printers and Destructors): Likewise.
777 (Printers and Destructors: %glr-parser): Remove for now, to avoid
778 unnecessarily alarming people when the test fails.
779
780 * data/yacc.c (yyerrlab1): Move this label down, so that the
781 parser does not discard the lookahead token if the user code
782 invokes YYERROR. This change is required for POSIX conformance.
783
784 * lib/error.c: Sync with gnulib.
785
7862002-11-22 Paul Eggert <eggert@twinsun.com>
787
788 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
789 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
790 * lib/xmalloc.c: Likewise.
26b4a969 791
58004308
PE
7922002-11-20 Paul Eggert <eggert@twinsun.com>
793
794 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
795
7962002-11-20 Paul Eggert <eggert@twinsun.com>
26b4a969 797
58004308
PE
798 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
799 should use `if (! x) abort ();' rather than `assert (x);', and
800 anyway it's one less thing to worry about configuring.
801
802 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
803 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
804 and replace all instances of assert with abort.
805 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
806 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
807
808 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
809 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
810 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
811 hash_find_entry, hash_rehash, hash_insert): Likewise.
812 * src/conflicts.c (resolve_sr_conflict): Likewise.
813 * src/lalr.c (set_goto_map, map_goto): Likewise.
814 * src/nullable.c (nullable_compute): Likewise.
815 * src/output.c (prepare_rules, token_definitions_output): Likewise.
816 * src/reader.c (packgram, reader): Likewise.
817 * src/state.c (state_new, state_free, state_transitions_set,
818 state_reduction_find): Likewise.
819 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
820 symbol_pack): Likewise.
821 * src/tables.c (conflict_row, pack_vector): Likewise.
822 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
823 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
824 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
825 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
826
827 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
828 (ARGMATCH_CONSTRAINT): New macro.
829 (ARGMATCH_ASSERT): Use it.
830
831 * src/system.h (verify): New macro.
832 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
833 rather than assert.
834 * src/tables.c (tables_generate): Likewise.
835
836 * src/struniq.c (struniq_assert): Now returns void, and aborts
837 if the assertion is false.
838 (struniq_assert_p): Remove.
839 * src/struniq.h: Likewise.
840
76ae8198
PE
8412002-11-18 Paul Eggert <eggert@twinsun.com>
842
843 * data/glr.c (yygetLRActions): Replace `yyindex' with
844 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
845 This fixes the regression with Sun ONE Studio 7 cc that I reported in
e3aa65c5 846 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
76ae8198 847
d3c4e709
AD
8482002-11-18 Akim Demaille <akim@epita.fr>
849
850 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
851 space.
852 From Tim Van Holder.
853
8d8a7238
PE
8542002-11-17 Paul Eggert <eggert@twinsun.com>
855
856 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
857 to "SyntaxError" for consistency with my 2002-11-15 change.
858
859 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
860 not define to {}, since this breaks the common use of `YYDPRINTF
861 ((...));' if a single statement is desired (e.g. before `else').
862 Work around GCC warnings by surrounding corresponding calls with
863 {} if needed.
864 (yyhasResolvedValue): Remove unused function.
865 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
866 loop body.
867 (yyreportSyntaxError): Renamed from yyreportParseError.
868 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
869 All uses changed.
870 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
871 extern when possible. Remove unused initializations.
872
b0937b22
AD
8732002-11-16 Akim Demaille <akim@epita.fr>
874
875 Augment the similarity between GLR and LALR traces.
876
877 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
878 (YY_REDUCE_PRINT): New.
879 (yyparse): Use them.
880 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
881 YYDPRINT here.
882 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
883 state reached after the reduction/recovery, since...
884 (yyparse, yyprocessOneStack): Report the state we are entering in.
885
c5e3e510
AD
8862002-11-16 Akim Demaille <akim@epita.fr>
887
888 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
889 Add support for --trace=skeleton.
890 * src/scan-skel.l: %option debug.
891 Scan strings of non-@ or \n instead of character by character.
892 (scan_skel): Handle trace_skeleton.
893 (QPUTS): New.
894 (@output_parser_name@, @output_header_name@): ``Restore'' their
895 support (used to be M4 macros).
896 * data/yacc.c: Quote larger chunks, a la glr.c.
897 * data/lalr1.cc: Likewise.
898 The header guards are no longer available, so use some other
899 string than `YYLSP_NEEDED'.
900
4c6cc1db
AD
9012002-11-16 Akim Demaille <akim@epita.fr>
902
903 Make the ``Printers and Destructors'' test more verbose, taking
904 `yacc.c''s behavior as (possibly wrong) reference.
905
906 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
907 instead of fprint on stdout.
908 Set and report the last_line of the symbols.
909 Consistently display values and locations.
910
6d9e8019
PE
9112002-11-16 Paul Eggert <eggert@twinsun.com>
912
913 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
914
6e649e65
PE
9152002-11-15 Paul Eggert <eggert@twinsun.com>
916
b25d88f6
PE
917 * tests/actions.at (Actions after errors): New test case.
918
6e649e65
PE
919 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
920 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
921 tests/action.at, tests/calc.at, tests/conflicts.at,
922 tests/cxx-type.at, tests/regression.at:
923 "parse error" -> "syntax error" for POSIX compatibility.
924 "parsing stack overflow..." -> "parser stack overflow" so
925 that code matches Bison documentation.
926
0f39aab9
AD
9272002-11-15 Akim Demaille <akim@epita.fr>
928
929 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
930 take two BRACED_CODE, not two string_content.
931 Free the scanner's obstack when we are done.
932 (code_content): New.
933 * tests/calc.at: Adjust.
934 * doc/bison.texinfo: Adjust.
935 Also, make sure to include the `,' for these declarations.
936
761c1926
AD
9372002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
938
939 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
940 definition; avoids potential autoreconf problems.
941
b0f98b10
AD
9422002-11-15 Akim Demaille <akim@epita.fr>
943
944 Always check the value returned by yyparse.
945
946 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
947 returned by yyparse.
948 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
949 Adjust calls.
950 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
951 returned by yyparse.
952
970785f1
PH
9532002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
954
955 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
956 on input.at test.
957
8fcc7db1
PE
9582002-11-14 Paul Eggert <eggert@twinsun.com>
959
7ec1b48e
PE
960 * src/output.c (output_skeleton): Call xfopen instead of
961 duplicating xfopen's body.
962
cfff7583 963 Fix bugs reported by Nelson H. F. Beebe in
e3aa65c5 964 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
cfff7583 965
8fcc7db1
PE
966 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
967 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
968 Group compiler. Instead, use "$CC -E bar.c". Include the .h
969 file twice in the grammar, as an extra check.
970
971 * tests/input.at (Torturing the Scanner): Surround the
972 backslash-newline tests with "#if 0", to make it less likely that
973 we'll run into compiler bugs. Bring back solitary \ inside
974 comment, but add a closing comment to work around HP C bug. Don't
e3aa65c5 975 test backslash-newline in C character constant.
8fcc7db1 976
4e8d992c
AD
9772002-11-14 Akim Demaille <akim@epita.fr>
978
979 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
980 status of the compiler.
f32b346d 981 Calling `exit 1' is no longer needed.
4e8d992c
AD
982 Reported by Nelson H. F. Beebe.
983
9501dc6e
AD
9842002-11-14 Akim Demaille <akim@epita.fr>
985
986 * tests/atlocal.in (CPPFLAGS): We have config.h.
987 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
988 New.
989 * tests/actions.at, tests/calc.at, tests/conflicts.at,
990 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
991 * tests/regression.at, tests/torture.at: Use them for all the
992 grammars that are to be compiled.
993 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
994 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
995 * doc/bison.texinfo (GLR Parsers): Document `inline'.
996
18b519c0
AD
9972002-11-14 Akim Demaille <akim@epita.fr>
998
999 * doc/bison.texinfo: Various formatting changes (alignments in
1000 samples, additional @group/@end group, GCS in samples.
1001 Use @deffn instead of simple @table to define the directives,
1002 macros, variables etc.
1003
9a86cdb9
PE
10042002-11-13 Paul Eggert <eggert@twinsun.com>
1005
daa33def 1006 Fix some bugs reported by Albert Chin-A-Young in
e3aa65c5 1007 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
18b519c0 1008
daa33def 1009 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 1010 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
1011 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
1012 * tests/headers.at (export YYLTYPE): Likewise.
1013
1014 * tests/input.at (Torturing the Scanner): Remove lines containing
8fcc7db1 1015 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 1016
9a86cdb9
PE
1017 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
1018 comments, since they're not portable. Use GNU coding style.
1019
9c1e26bd
AD
10202002-11-13 Akim Demaille <akim@epita.fr>
1021
1022 * data/yacc.c: Leave bigger chunks of quoted text.
1023 (YYDSYMPRINTF): New.
1024 Use it to report symbol activities.
1025 * data/glr.c (YYDSYMPRINTF): New.
1026 Use it.
1027
87f721cc
PE
10282002-11-12 Paul Eggert <eggert@twinsun.com>
1029
1030 Version 1.75b.
1031
1032 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
1033 (yyglrReduce): Return yyok, not 0.
1034 This should avoid the enumerated-type warnings reported
464c6927 1035 by Nelson H. F. Beebe in
e3aa65c5 1036 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
87f721cc
PE
1037
1038 * lib/bbitset.h (BITSET_INLINE): Remove.
1039 * lib/bitset.h [! BITSET_INLINE]: Remove.
1040 (bitset_set, bitset_reset, bitset_test): Rename local vars
1041 to avoid shadowing warnings by GCC.
1042
1043 * data/glr.c (inline): Remove #define. It's the user's
1044 responsibility to #define it away, just like 'const'.
464c6927 1045 This fixes one of the bugs reported by Nelson H. F. Beebe in
e3aa65c5 1046 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
18b519c0 1047
87f721cc
PE
1048 * Makefile.maint (po-check): Scan .l and .y files instead of the
1049 .c and the .h files that they generate. This fixes the bug
1050 reported by Tim Van Holder in:
e3aa65c5 1051 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
87f721cc
PE
1052 Look for N_ as well as for _. Try to avoid matching #define for
1053 N_ and _.
1054 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
1055 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
1056 * src/scan-gram.l: Revamp regular expressions so that " and '
1057 do not confuse xgettext.
1058
1059 * src/struniq.h (struniq_new): Do not declare the return type
1060 to be 'const'; this violates the C standard.
1061 * src/struniq.c (struniq_new): Likewise.
1062
be14ade5
AD
10632002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
1064
1065 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
1066 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
1067 linker.
1068
05291fbc
AD
10692002-11-12 Akim Demaille <akim@epita.fr>
1070
1071 * Makefile.maint: Sync with Autoconf:
1072 (local_updates): New.
1073
1f5fd52e
AD
10742002-11-12 Akim Demaille <akim@epita.fr>
1075
1076 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
1077
283f1e64
AD
10782002-11-12 Akim Demaille <akim@epita.fr>
1079
1080 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
1081 locations.
1082
886b69d1
AD
10832002-11-12 Akim Demaille <akim@epita.fr>
1084
1085 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
1086 not yyvalue.
1087
3df37415
AD
10882002-11-12 Akim Demaille <akim@epita.fr>
1089
1090 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
1091 Use it to test the GLR parser.
1092
7bd6c77e
AD
10932002-11-12 Akim Demaille <akim@epita.fr>
1094
1095 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
1096 defines it.
1097 * data/glr.c (yystos): New.
1098 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
1099 (YYDSYMPRINT): New.
1100 (yyval): Don't define it, it is handled via M4.
1101 (yyrecoverParseError): Free verbosely the discarded symbols.
1102 * data/yacc.c (yysymprint): Remove, rather...
1103 (b4_yysymprint_generate): invoke.
1104 * data/c.m4 (b4_yysymprint_generate): New.
1105 Accept pointers as arguments, as opposed to the version from
1106 yacc.c.
1107 (b4_yydestruct_generate): Likewise.
1108 * tests/cations.at (Printers and Destructors): Use Bison directives
1109 instead of CPP macros.
1110 Don't rely on internal details.
1111
b0400cc6
AD
11122002-11-12 Akim Demaille <akim@epita.fr>
1113
1114 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
1115 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
1116 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
1117 it against YYEMPTY and so forth), work on yytoken (i.e., set
1118 it to YYEMPTY etc.).
1119 (yydestruct): Replace with a b4_yydestruct_generate invocation.
1120 (b4_symbol_actions): Remove.
1121 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
1122 for 0, end-of-input.
1123
72f889cc
AD
11242002-11-12 Akim Demaille <akim@epita.fr>
1125
1126 * doc/bison.texinfo (Destructor Decl): New.
1127
b1ae9233
AD
11282002-11-12 Akim Demaille <akim@epita.fr>
1129
1130 * src/tables.c (tables_generate): Use free for pointers that
1131 cannot be NULL, not XFREE.
1132 (pack_vector): Use assert, not fatal, for bound violations.
1133 * src/state.c (state_new): Likewise.
1134 * src/reader.c (reader): Likewise.
1135 * src/lalr.c (set_goto_map): Likewise.
72f889cc 1136 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
1137 the file name.
1138
7ec2d4cd
AD
11392002-11-12 Akim Demaille <akim@epita.fr>
1140
1141 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
1142 Restore.
1143 * src/scan-gram.l (last_string): Is global to the file, not to
1144 yylex.
1145 * src/parse-gram.y (input): Don't append the epilogue here,
1146 (epilogue.opt): do it here, and free the scanner's obstack.
1147 * src/reader.c (epilogue_set): Rename as...
1148 (epilogue_augment): this.
1149 * data/c.m4 (b4_epilogue): Defaults to empty.
1150
573a6cd3
AD
11512002-11-12 Akim Demaille <akim@epita.fr>
1152
1153 * src/getargs.c (long_options): Remove duplicates.
1154 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
1155 Remove.
1156 * doc/bison.rnh: Remove.
1157 * doc/bison.texinfo (VMS Invocation): Remove.
1158
95612cfa
AD
11592002-11-12 Akim Demaille <akim@epita.fr>
1160
1161 * src/struniq.h, src/struniq.c (struniq_t): Is const.
1162 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
1163
1164 Use struniq for symbols.
1165
1166 * src/symtab.h (symbol_t): The tag member is a struniq.
1167 (symbol_type_set): Adjust.
1168 * src/symtab.c (symbol_new): Takes a struniq.
1169 (symbol_free): Don't free the tag member.
1170 (hash_compare_symbol_t, hash_symbol_t): Rename as...
1171 (hash_compare_symbol, hash_symbol): these.
1172 Use the fact that tags as struniqs.
1173 (symbol_get): Use struniq_new.
1174 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
1175 Returns a strniq.
1176 * src/reader.h (merger_list, grammar_currentmerge_set): The name
1177 and type members are struniqs.
1178 * src/reader.c (get_merge_function)
1179 (grammar_current_rule_merge_set): Adjust.
1180 (TYPE, current_type): Are struniq.
1181
1182 Use struniq for file names.
1183
1184 * src/files.h, src/files.c (infile): Split into...
1185 (grammar_file, current_file): these.
1186 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
1187 * src/reduce.c (reduce_print): Likewise.
1188 * src/getargs.c (getargs): Likewise.
1189 * src/complain.h, src/complain.c: Likewise.
1190 * src/main.c (main): Call struniqs_new early enough to use it for
1191 file names.
1192 Don't free the input file name.
1193
3e6656f9
AD
11942002-11-12 Akim Demaille <akim@epita.fr>
1195
1196 * src/symtab.c (symbol_free): Remove dead deactivated code:
1197 type_name are properly removed.
1198 Don't use XFREE to free items that cannot be NULL.
1199 * src/struniq.h, src/struniq.c: New.
1200 * src/main.c (main): Initialize/free struniqs.
1201 * src/parse-gram.y (%union): Add astruniq member.
1202 (yyprint): Adjust.
1203 * src/scan-gram.l (<{tag}>): Return a struniq.
1204 Free the obstack bit that used to store it.
1205 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
1206
7672019c
PE
12072002-11-11 Paul Eggert <eggert@twinsun.com>
1208
1209 Revamp to fix many (but not all) of the C- and M4-related quoting
1210 problems. Among other things, this fixes the Bison bug reported
1211 by Jan Hubicka when processing the Bash grammar; see:
e3aa65c5 1212 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
7672019c
PE
1213
1214 Use new @ escapes consistently. Represent brackets with @{ and @}
1215 rather than @<:@ and @:>@, since this works a bit better with dumb
1216 editors like vi. Represent @ with @@, since @ is now consistently
1217 an escape. Use @oline@ and @ofile@ rather than __oline__ and
1218 __ofile__, to avoid unexpected expansions. Similarly, use @output
1219 rather than #output.
1220
1221 * data/c.m4 (b4_copyright): Omit file name from comment, since
1222 the file name could contain "*/".
1223 (b4_synclines_flag): Don't quote the 2nd argument; it should already
1224 be quoted. All uses changed.
1225
1226 * data/glr.c: Use new @ escapes consistently.
1227 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
1228 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
1229 Remove, since they couldn't handle arbitrary characters in file
1230 names.
1231 * data/lalr1.cc: Likewise.
1232 * data/yacc.c: Likewise.
1233
1234 * src/files.c (output_infix): Remove; all uses removed.
1235 * src/files.h: Likewise.
1236
1237 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
1238 mishandled funny characters in file names, and anyway it isn't
1239 needed any more.
1240 * data/yacc.c: Likewise.
1241 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
1242
1243 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
1244 * data/yacc.c: Likewise.
1245
1246 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
1247 strings now.
1248 (muscle_init): Quote filename as a C string.
1249 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
1250 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
1251 * src/output.c (escaped_file_name_output): New function.
1252 (prepare_symbols): Quote tokens for M4.
1253 (prepare): Don't insert output_infix, output_prefix,
1254 output_parser_name, output_header_name; this is now down by scan-skel.
1255 Insert skeleton as a C string.
1256
1257 * src/output.c (user_actions_output, symbol_destructors_output,
1258 symbol_printers_output): Quote filenames for C and M4.
1259 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1260
1261 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
1262 escapes other than \\ and \'; this simplifies the code.
1263 (<SC_STRING>): Likewise, for \\ and \".
1264 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
1265 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
1266 Use new escapes @{ and @} for [ and ].
1267
1268 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
1269 them with auto vars.
1270 Switch to new escape scheme, where @ is the escape character uniformly.
1271 Abort if a stray escape character is found. Avoid unbounded input
1272 buffer when parsing non-escaped text.
1273
1274 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
1275 __oline__, #output, $@, and @{ do not have unintended meanings.
1276
acea4f3b
PE
12772002-11-09 Paul Eggert <eggert@twinsun.com>
1278
1279 Fix the test failure due to GCC warnings described in
e3aa65c5 1280 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
acea4f3b
PE
1281 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
1282 evaluate to 0 if it's impossible for NINF to be in the respective
1283 table.
1284 (yygetLRActions, yyrecoverParseError): Use them.
1285
1286 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
1287 counted in the token inserted at end of file. Now takes
1288 location_t *, not location_t, so that the location can be
1289 adjusted. All uses changed.
1290
1291 * tests/regression.at (Invalid inputs): Adjust wording in
1292 diagnostic to match the new behavior.
1293
1294 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
1295 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
1296 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
1297 abort ();'. This reduces the runtime of the "Many lookaheads"
1298 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
1299 GCC 3.2.
1300
20ef1ad5
PE
13012002-11-07 Paul Eggert <eggert@twinsun.com>
1302
1303 * src/parse-gram.y (CHARACTER): Remove unused token.
1304 All uses removed.
1305
1306 * src/scan-gram.l: Remove stack option. We no longer use the
1307 stack, since the stack was never deeper than 1; instead, use the
1308 new auto var c_context to record the stacked value.
1309
1310 Remove nounput option. At an unexpected end of file, we now unput
1311 the minimal input necessary to end cleanly; this simplifies the
1312 code.
1313
1314 Avoid unbounded token sizes where this is easy.
1315
1316 (unexpected_end_of_file): New function.
1317 Use it to systematize the error message on unexpected EOF.
1318 (last-string): Now auto, not static.
1319 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
1320 (scanner_last_string_free): Remove; not used.
1321 (percent_percent_count): Move decl to just before use.
1322 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
1323 not the (never otherwised-used) CHARACTER.
1324
93724f13
AD
13252002-11-07 Akim Demaille <akim@epita.fr>
1326
1327 Let yyerror always receive the msg as last argument, so that
1328 yyerror can be variadic.
1329
1330 * data/yacc.c (b4_yyerror_args): New.
1331 Use it when calling yyerror.
1332 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
1333 Use it when calling yyerror.
1334 * doc/bison.texinfo (Error Reporting): Adjust.
1335 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
1336 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
1337
6e40b4eb
AD
13382002-11-06 Akim Demaille <akim@epita.fr>
1339
1340 #line should have quoted strings.
1341 Ideally, this should be done by m4_quotearg.
1342
1343 * src/scan-skel.l: Include quotearg.h.
1344 Quote __ofile__.
1345 * src/output.c (symbol_printers_output)
1346 (symbol_destructors_output): Quote the file name.
1347
2dfbfc12
AD
13482002-11-06 Akim Demaille <akim@epita.fr>
1349
1350 * tests/regression.at (Invalid inputs): Adjust to the recent
1351 messages.
1352
437c2d80
AD
13532002-11-06 Akim Demaille <akim@epita.fr>
1354
1355 Restore --no-lines.
1356 Reported by Jim Kent.
1357
1358 * data/c.m4 (b4_syncline): New.
1359 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
1360 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
1361 * src/output.c (user_actions_output): Likewise.
1362 (prepare): Define 'b4_synclines_flag'.
2dfbfc12 1363 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 1364
900c5db5
AD
13652002-11-06 Akim Demaille <akim@epita.fr>
1366
1367 * src/main.c (main): Free `infile'.
1368 * src/scan-gram.l (handle_syncline): New.
1369 Recognize `#line'.
1370 * src/output.c (user_actions_output, symbol_destructors_output)
1371 (symbol_printers_output): Use the location's file name, not
1372 infile.
1373 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1374
e183b123 13752002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 1376
e183b123 1377 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 1378 either has GLR conflict entries.
e183b123 1379
193eb6b7
PE
13802002-11-05 Paul Eggert <eggert@twinsun.com>
1381
e183b123
PE
1382 * src/scan-gram.l: Use more accurate diagnostics, e.g.
1383 "integer out of range" rather than "invalid value".
1384 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
1385 accordingly.
1386
193eb6b7
PE
1387 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
1388 Also, remove one static variable in the scanner.
1389
1390 * src/scan-gram.l (braces_level): Now auto, not static.
1391 Initialize to zero if the compiler is being picky.
1392 (INITIAL): Clear braces_level instead of incrementing it.
1393 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
1394 as POSIX 1003.1-2001 requires.
1395 * src/system.h (IF_LINT): New macro, taken from coreutils.
1396 * configure.ac: Define "lint" if --enable-gcc-warnings.
1397
29c01725
AD
13982002-11-05 Akim Demaille <akim@epita.fr>
1399
1400 * src/scan-gram.l: When it starts with `%', complain about the
1401 whole directive, not just that `invalid character: %'.
1402
8aeac3ca
AD
14032002-11-04 Akim Demaille <akim@epita.fr>
1404
1405 * Makefile.maint: Update from Autoconf.
1406 (update, cvs-update, po-update, do-po-update): New.
1407
793a58bb
AD
14082002-11-04 Akim Demaille <akim@epita.fr>
1409
1410 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
1411 and yyerror.
1412 Have yyerror `use' its arguments.
1413 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
1414 returns true when location & yacc & pure & parse-param.
1415 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
1416
c4d720cd
AD
14172002-11-04 Akim Demaille <akim@epita.fr>
1418
1419 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
1420 clashes.
1421 * src/scan-gram.l: Use [\'] instead of ['] to pacify
1422 font-lock-mode.
1423 Use complain_at.
1424 Use quote, not quote_n since LOCATION_PRINT no longer uses the
1425 slot 0.
1426
613a0dc5
PE
14272002-11-03 Paul Eggert <eggert@twinsun.com>
1428
1429 * src/reader.c (get_merge_function, grammar_current_rule_check):
1430 Use consistent diagnostics for reporting type name clashes.
1431 Quote the types with <>, for consistency with Yacc.
1432 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
1433
2a8d363a
AD
14342002-11-03 Akim Demaille <akim@epita.fr>
1435
1436 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
1437 New.
1438 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
1439 (b4_parse_param): Remove.
1440 Use b4_identification.
1441 Propagate b4_pure_args where needed to pass them to yyerror.
1442 * data/glr.m4 (b4_parse_param): Remove.
1443 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
1444 (b4_lpure_formals): New.
1445 Use b4_identification.
1446 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
1447 b4_user_formals and b4_user_args.
1448 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
1449 (yyreportAmbiguity): When using a pure parser, also need
1450 the location, and the parse-params.
1451 Adjust callers.
1452 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
1453 When using a pure parser, also need the parse-params.
1454 Adjust callers.
1455 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
1456 (%pure-parser + %parse-param) LALR and GLR parsers.
1457 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
1458 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
1459 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
1460 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
1461 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
1462 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
1463 * doc/bison.texinfo: Untabify the whole file.
1464 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
1465 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
1466 (Error Reporting): Adjust to these new directives.
1467 Document %error-verbose, deprecate YYERROR_VERBOSE.
1468
9e32add8
AD
14692002-11-03 Akim Demaille <akim@epita.fr>
1470
1471 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
1472 AT_CHECK_CALC_GLR invocations to use % directives, instead of
1473 command line options.
1474 * tests/cxx-type.at: Formatting changes.
1475
b02d90a5
PE
14762002-11-03 Paul Eggert <eggert@twinsun.com>
1477
1478 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
1479 to count columns correctly, and to check for invalid inputs.
9e32add8 1480
b02d90a5
PE
1481 Use mbsnwidth to count columns correctly. Account for tabs, too.
1482 Include mbswidth.h.
1483 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
1484 (extend_location): New function.
1485 (YY_LINES): Remove.
1486
1487 Handle CRLF in C code rather than in Lex code.
1488 (YY_INPUT): New macro.
1489 (no_cr_read): New function.
1490
1491 Scan UCNs, even though we don't fully handle them yet.
1492 (convert_ucn_to_byte): New function.
1493
1494 Handle backslash-newline correctly in C code.
1495 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
1496 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
1497 all uses changed.
1498 (tag, splice): New EREs. Do not allow NUL or newline in tags.
1499 Use {splice} wherever C allows backslash-newline.
1500 YY_STEP after space, newline, vertical-tab.
1501 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
9e32add8 1502
b02d90a5
PE
1503 (letter, id): Don't assume ASCII; e.g., spell out a-z.
1504
1505 ({int}, handle_action_dollar, handle_action_at): Check for integer
1506 overflow.
9e32add8 1507
b02d90a5
PE
1508 (YY_STEP): Omit trailing semicolon, so that it's more like C.
1509
1510 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
1511 as well as \000. Check for UCHAR_MAX, not 255.
1512 Allow \x with an arbitrary positive number of digits, as in C.
1513 Check for overflow here.
1514 Allow \? and UCNs, for compatibility with C.
1515
1516 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
1517 with quote slot used by complain_at.
1518
1519 * tests/input.at: Add tests for backslash-newline, m4 quotes
1520 in symbols, long literals, and funny escapes in strings.
1521
1522 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
1523 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
1524 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
1525 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
1526 * m4/mbswidth.m4: New file, from GNU coreutils.
1527
1528 * doc/bison.texinfo (Grammar Outline): Document // comments.
1529 (Symbols): Document that trigraphs have no special meaning in Bison,
1530 nor is backslash-newline allowed.
1531 (Actions): Document that trigraphs have no special meaning.
1532
1533 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
1534 no longer used.
1535
15362002-11-02 Paul Eggert <eggert@twinsun.com>
1537
1538 * src/reader.c: Don't include quote.h; not needed.
1539 (get_merge_function): Reword warning to be consistent with
1540 type clash diagnostic in grammar_current_rule_check.
1541
1542 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
1543 bug in trigraph handling.
1544
1545 * src/output.c (prepare_symbols): When printing token names,
1546 escape "[" as "@<:@" and likewise for "]".
1547
1548 * src/system.h (errno): Remove declaration, as we are now
1549 assuming C89 or better, and C89 guarantees errno.
1550
762b212b
PE
15512002-10-30 Paul Eggert <eggert@twinsun.com>
1552
1553 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
1554 Check for close failures.
1555 * src/files.h (xfclose): Return void, not int, since it always
1556 returned zero.
1557 * src/files.c (xfclose): Likewise. Report I/O error if ferror
1558 indicates one.
1559 * src/output.c (output_skeleton): Use xfclose rather than fclose
1560 and ferror. xfclose now checks ferror.
1561
1562 * data/glr.c (YYLEFTMOST_STATE): Remove.
1563 (yyreportTree): Use a stack-based leftmost state. This avoids
1564 our continuing battles with bogus warnings about initializers.
1565
56100c60
AD
15662002-10-30 Akim Demaille <akim@epita.fr>
1567
1568 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
1569 #if.
1570
51b4a04c
PH
15712002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1572
1573 * tests/glr-regr1.at: New test for reported regressions.
1574 * tests/testsuite.at: Add glr-regr1.at test.
1575 * tests/Makefile.am: Add glr-regr1.at test.
e183b123 1576
bf1ebda2
PE
15772002-10-24 Paul Eggert <eggert@twinsun.com>
1578
5c16c6b1
PE
1579 Version 1.75a.
1580
bf1ebda2
PE
1581 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
1582 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
1583 we use malloc. Don't assume 'A' through 'Z' are contiguous.
1584 Don't assume strdup exists; POSIX says its an XSI extension.
1585 Check for buffer overflow on input.
1586
b526ee61
AD
15872002-10-24 Akim Demaille <akim@epita.fr>
1588
1589 * src/output.c (output_skeleton): Don't disable M4sugar comments
1590 too soon: it results in comments being expanded.
1591 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
1592 first output.
1593
f1886bb2
AD
15942002-10-24 Akim Demaille <akim@epita.fr>
1595
1596 * data/yacc.c (m4_int_type): New.
1597 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
1598 char' as only yacc.c wants K&R portability.
1599 * data/glr.c (yysigned_char): Remove.
1600 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
1601 Reported by Quoc Peyrot.
1602
c5576256
PE
16032002-10-23 Paul Eggert <eggert@twinsun.com>
1604
1605 * src/main.c (main): With --trace=time, report times even if a
1606 non-fatal error occurs. Formerly, the times were reported in some
1607 such cases but not in others.
1608 * src/reader.c (reader): Just return if a complaint has been issued,
1609 instead of exiting, so that 'main' can report times.
1610
27b0ffea
AD
16112002-10-22 Akim Demaille <akim@epita.fr>
1612
1613 * src/system.h: Include sys/types.
1614 Reported by Bert Deknuydt.
1615
223a7883
PE
16162002-10-23 Paul Eggert <eggert@twinsun.com>
1617
1618 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
1619 Suggested by Art Haas.
1620
16212002-10-22 Paul Eggert <eggert@twinsun.com>
1622
1623 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
1624 decl; not needed any more.
1625 * src/main.c (main): Use return to exit, undoing yesterday's change.
1626 The last OS that we could find where this wouldn't work is
1627 SunOS 3.5, and that's too old to worry about now.
1628
1629 * data/glr.c (struct yyltype): Define members even when not
1630 doing locations. This is more consistent with yacc.c, and it
1631 works around the following bug reports:
e3aa65c5
PE
1632 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
1633 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
27b0ffea 1634
223a7883
PE
1635 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
1636 @acronym consistently. Standardize on "Yacc" instead of "YACC",
1637 "Algol" instead of "ALGOL". Give a bit more history about BNF.
1638
8b76775a
AD
16392002-10-22 Akim Demaille <akim@epita.fr>
1640
1641 * data/README: New.
1642
6db10d14
PE
16432002-10-21 Paul Eggert <eggert@twinsun.com>
1644
1645 Be consistent about 'bool'; the old code used an enum in one
1646 module and an int in another, and this violates the C standard.
1647 * m4/stdbool.m4: New file, from coreutils 4.5.3.
1648 * configure.ac (AC_HEADER_STDBOOL): Add.
1649 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
1650 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
1651 * src/symtab.c (hash_compare_symbol_t): Likewise.
1652 * src/system.h (bool, false, true): Use a definition consistent
1653 with ../lib/hash.c. All uses changed.
1654
1655 * src/complain.c (warning_issued): Renamed from warn_message_count,
1656 so that we needn't worry about integer overflow (!).
1657 Now of type bool. All uses changed.
1658 (complaint_issued): Renamed from complain_message_count; likewise.
1659
1660 * src/main.c (main): Use exit to exit with failure.
27b0ffea 1661
6db10d14
PE
1662 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
1663 rather than 1 and 0.
1664 * src/main.c (main): Likewise.
1665 * src/getargs.c (getargs): Likewise.
1666 * src/reader.c (reader): Likewise.
1667
1668 * src/getarg.c (getargs): Remove duplicate code for
1669 "Try `bison --help'".
1670
1671 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
1672 What was that "2" for?
1673
1674 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
1675 * src/getargs.c (usage): Likewise.
1676
1677 * src/getargs.c (getargs): When there are too few operands, report
1678 the last one. When there are too many, report the first extra
1679 one. This is how diffutils does it.
1680
92a060fd
PE
16812002-10-20 Paul Eggert <eggert@twinsun.com>
1682
1683 Remove K&R vestiges.
1684 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
1685 * src/complain.c (VA_START): Remove. Assume prototypes.
1686 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
1687 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
1688 fatal): Assume prototypes.
1689 * src/complain.h: Assume prototypes.
1690 * src/system.h (PARAMS): Remove.
1691 Include <limits.h> unconditionally, since it's guaranteeed even
1692 for a freestanding C89 compiler.
1693 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
1694 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
8b76775a 1695
e7cb57c0
AD
16962002-10-20 Akim Demaille <akim@epita.fr>
1697
1698 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
1699 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
1700 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
1701 (yyresolveStates, yyresolveAction, yyresolveStack)
1702 (yyprocessOneStack): Use them.
1703 (yy_reduce_print): New.
1704 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
1705
0245f82d
AD
17062002-10-20 Akim Demaille <akim@epita.fr>
1707
1708 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
1709 arguments and output `void'.
1710 (b4_c_function): Rename as...
1711 (b4_c_function_def): this.
1712 (b4_c_function_decl, b4_c_ansi_function_def)
1713 (b4_c_ansi_function_decl): New.
1714 Change the interpretation of the arguments: before `int, foo', now
1715 `int foo, foo'.
1716 * data/yacc.c (yyparse): Prototype and define thanks to these.
1717 Adjust b4_c_function_def uses.
1718 * data/glr.c (yyparse): Likewise, but ANSI only.
1719
39912f52
AD
17202002-10-20 Akim Demaille <akim@epita.fr>
1721
1722 * src/output.c (prepare): Move the definition of `tokens_number',
1723 `nterms_number', `undef_token_number', `user_token_number_max'
1724 to...
1725 (prepare_tokens): Here.
1726 (prepare_tokens): Rename as...
1727 (prepare_symbols): this.
1728 (prepare): Move the definition of `rules_number' to...
1729 (prepare_rules): here.
1730 (prepare): Move the definition of `last', `final_state_number',
1731 `states_number' to...
1732 (prepare_states): here.
1733 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
1734
20c1e2ad
AD
17352002-10-20 Akim Demaille <akim@epita.fr>
1736
1737 * src/tables.h, src/tables.c, src/output.c: Comment changes.
1738
21964f43
AD
17392002-10-20 Akim Demaille <akim@epita.fr>
1740
1741 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
1742 * data/c.m4: here.
1743
66d30cd4
AD
17442002-10-20 Akim Demaille <akim@epita.fr>
1745
1746 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
1747 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
1748 `pair'.
1749 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
1750 `name' to...
1751 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
1752 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
1753 These.
1754
95f2c9fe
PE
17552002-10-19 Paul Eggert <eggert@twinsun.com>
1756
1757 Do not create a temporary file, as that involves security and
1758 cleanup headaches. Instead, use a pair of pipes.
1759 Derived from a suggestion by Florian Krohm.
1760 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
1761 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
1762 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
1763 (BISON_PREREQ_SUBPIPE): Add.
1764 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
1765 Add subpipe.h, subpipe.c.
1766 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
1767 * po/POTFILES.in: Add lib/subpipe.c.
1768 * src/output.c: Include "subpipe.h".
1769 (m4_invoke): Remove decl.
1770 (scan_skel): New decl.
1771 (output_skeleton): Use pipe rather than temporary file for m4 input.
1772 Check that m4sugar.m4 is readable, to avoid deadlock.
1773 Check for pipe I/O error.
1774 * src/scan-skel.l (readpipe): Remove decl.
1775 (scan_skel): New function, to be used in place of m4_invoke.
1776 Read from stream rather than file.
66d30cd4 1777
95f2c9fe
PE
1778 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
1779 float, as this generates a warning on Solaris 8 + GCC 3.2 with
1780 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
1781 this generates a more-accurate value anyway.
1782
1783 * lib/timevar.c (timervar_accumulate): Rename locals to
1784 avoid confusion with similarly-named more-global.
1785 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
1786
1787 * src/output.c (prepare): Use xstrdup to convert char const *
1788 to char *, to avoid GCC warning.
1789
c19988b7
AD
17902002-10-19 Akim Demaille <akim@epita.fr>
1791
1792 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
1793 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
1794 Use them to have `calc.y' ready for %pure-parser.
1795 * data/yacc.c (YYLEX): Pass a yylex return type to
1796 b4_c_function_call.
1797
ae7453f2
AD
17982002-10-19 Akim Demaille <akim@epita.fr>
1799
1800 Prototype support of %lex-param and %parse-param.
1801
1802 * src/parse-gram.y: Add the definition of the %lex-param and
1803 %parse-param tokens, plus their rules.
1804 Drop the `_' version of %glr-parser.
1805 Add the "," token.
1806 * src/scan-gram.l (INITIAL): Scan them.
1807 * src/muscle_tab.c: Comment changes.
1808 (muscle_insert, muscle_find): Rename `pair' as `probe'.
1809 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
1810 (muscle_entry_s): The `value' member is no longer const.
1811 Adjust all dependencies.
1812 * src/muscle_tab.c (muscle_init): Adjust: use
1813 MUSCLE_INSERT_STRING.
1814 Initialize the obstack earlier.
1815 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
1816 (muscle_pair_list_grow): New.
1817 * data/c.m4 (b4_c_function_call, b4_c_args): New.
1818 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
1819 * tests/calc.at: Use %locations, not --locations.
1820 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
1821
0e575721
AD
18222002-10-19 Akim Demaille <akim@epita.fr>
1823
1824 * src/getargs.c (usage): Take status as argument and exit
1825 accordingly.
1826 Report the traditional `Try ... --help' message when status != 0.
1827 (usage, version): Don't take a FILE * as arg, it is pointless.
1828 (getargs): When there is an incorrect number of arguments, make it
1829 an error, and report it GNUlically thanks to `usage ()'.
1830
724ce7f5
PE
18312002-10-18 Paul Eggert <eggert@twinsun.com>
1832
3a781eb2
PE
1833 * data/glr.c (yyreportParseError): Don't assume that sprintf
1834 yields the length of the printed string, as this is not true
1835 on SunOS 4.1.4. Reported by Peter Klein.
1836
724ce7f5
PE
1837 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
1838 * tests/conflicts.at (%nonassoc and eof): Likewise.
1839 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
1840
473d0a75
AD
18412002-10-17 Akim Demaille <akim@epita.fr>
1842
1843 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
1844 * src/getargs.c (trace_types, trace_args): Adjust.
1845 * src/reader.c (grammar_current_rule_prec_set)
1846 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
1847 Standardize error messages.
1848 And s/@prec/%prec/!
1849 (reader): Use trace_flag to enable scanner/parser debugging,
1850 instead of an adhoc scheme.
1851 * src/scan-gram.l: Remove trailing debugging code.
1852
e76d2469
PE
18532002-10-16 Paul Eggert <eggert@twinsun.com>
1854
93e2236a
PE
1855 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
1856 MUSCLE_TAB_H.
1857
e76d2469
PE
1858 * NEWS: Officially drop support for building Bison with K&R C,
1859 since it didn't work anyway and it's not worth worrying about.
1860 * Makefile.maint (wget_files): Remove ansi2knr.c.
1861 (ansi2knr.c-url_prefix): Remove.
1862 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
1863 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
1864 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
1865
5bd1c419
PE
18662002-10-15 Paul Eggert <eggert@twinsun.com>
1867
1868 Stop using the "enum_" trick for K&R-style function definitions;
1869 it confused me, and I was the author! Instead, assume that people
1870 who want to use K&R C compilers (when using these modules in GCC,
1871 perhaps?) will run ansi2knr.
1872
1873 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
1874 All uses of "enum_" changed to "enum ".
1875 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
1876 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
e76d2469 1877
5bd1c419
PE
1878 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
1879 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
1880 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
1881 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
1882 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
1883 abitset_not, abitset_ones, abitset_or, abitset_or_and,
1884 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
1885 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
1886 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
1887 Use function prototypes; this removes the need for declaring
1888 static functions simply to provide their prototypes.
1889 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
1890 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
1891 bitset_count_, bitset_create, bitset_dump, bitset_first,
1892 bitset_free, bitset_init, bitset_last, bitset_next,
1893 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
1894 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
1895 bitset_print, bitset_release_memory, bitset_toggle_,
1896 bitset_type_choose, bitset_type_get, bitset_type_name_get,
1897 debug_bitset): Likewise.
1898 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
1899 * lib/bitset_stats.c (bitset_log_histogram_print,
1900 bitset_percent_histogram_print, bitset_stats_and,
1901 bitset_stats_and_cmp, bitset_stats_and_or,
1902 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
1903 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
1904 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
1905 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
1906 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
1907 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
1908 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
1909 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
1910 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
1911 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
1912 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
1913 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
1914 bitset_stats_zero): Likewise.
1915 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
1916 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
1917 bitsetv_dump, debug_bitsetv): Likewise.
1918 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
1919 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
1920 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
1921 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
1922 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
1923 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
1924 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
1925 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
1926 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
1927 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
1928 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
1929 Likewise.
1930 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
1931 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
1932 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
1933 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
1934 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
1935 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
1936 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
1937 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
1938 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
1939 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
1940 lbitset_xor_cmp, lbitset_zero): Likewise.
e76d2469 1941
ae26e1f0
AD
19422002-10-14 Akim Demaille <akim@epita.fr>
1943
1944 Version 1.75.
1945
d43baf71
AD
19462002-10-14 Akim Demaille <akim@epita.fr>
1947
1948 * tests/Makefile.am (maintainer-check-posix): New.
1949
7ebc83e3
AD
19502002-10-14 Akim Demaille <akim@epita.fr>
1951
1952 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
1953 member.
1954
05846dae
AD
19552002-10-14 Akim Demaille <akim@epita.fr>
1956
1957 * src/tables.c (table_ninf_remap): base -> tab.
1958 Reported by Matt Rosing.
1959
1318e37d
PE
19602002-10-14 Paul Eggert <eggert@twinsun.com>
1961
447fbb17
PE
1962 * tests/action.at, tests/calc.at, tests/conflicts.at,
1963 tests/cxx-type.at, tests/headers.at, tests/input.at,
1964 tests/regression.at, tests/synclines.at, tests/torture.at:
1965 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
1966 so that the tests still work even if POSIXLY_CORRECT is set.
1967 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
05846dae 1968
1318e37d
PE
1969 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
1970 for portability to K&R hosts. Fix typo: signed char is guaranteed
1971 only to 127, not to 128.
1972 * data/glr.c (yysigned_char): New type.
1973 * data/yacc.c (yysigned_char): Likewise.
1974 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
1975
cc0f0794
PE
19762002-10-13 Paul Eggert <eggert@twinsun.com>
1977
5038f418
PE
1978 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
1979 true due to limited range of data type" warning from GCC.
1980
cc0f0794
PE
1981 * data/c.m4 (b4_token_defines): Protect against double-inclusion
1982 by wrapping enum yytokentype's definition inside #ifndef
1983 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
1984
6fed0802
AD
19852002-10-13 Akim Demaille <akim@epita.fr>
1986
1987 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
1988 Un yy- yyrhs to avoid the name clash with the global YYRHS.
1989
32f0598d
AD
19902002-10-13 Akim Demaille <akim@epita.fr>
1991
1992 * Makefile.maint: Update from Autoconf 2.54.
1993 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
1994
7ea9a33f
AD
19952002-10-13 Akim Demaille <akim@epita.fr>
1996
1997 * src/print.c (print_state): Separate the list of solved conflicts
1998 from the other items.
1999 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
2000
ea99527d
AD
20012002-10-13 Akim Demaille <akim@epita.fr>
2002
2003 Let nondeterministic skeletons be usable with deterministic
2004 tables.
2005
2006 With the patch, GAWK compiled by GCC without -O2 passes its test
2007 suite using a GLR parser driven by LALR tables. It fails with -O2
2008 because `struct stat' gives two different answers on my machine:
2009 88 (definition of an auto var) and later 96 (memset on this var).
2010 Hence the stack is badly corrumpted. The headers inclusion is to
2011 blame: if I move the awk.h inclusion before GLR's system header
2012 inclusion, the two struct stat have the same size.
2013
2014 * src/tables.c (pack_table): Always create conflict_table.
2015 (token_actions): Always create conflict_list.
2016 * data/glr.c (YYFLAG): Remove, unused.
2017
f377f69f
AD
20182002-10-13 Akim Demaille <akim@epita.fr>
2019
2020 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
2021 (O0FLAGS): New.
2022 (VALGRIND, GXX): New.
2023 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
2024 * tests/bison.in: Run $PREBISON a pre-command.
2025 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
2026 (maintainer-check-g++): New.
2027 * Makefile.am (maintainer-check): New.
2028
2a1fe6ed
AD
20292002-10-13 Akim Demaille <akim@epita.fr>
2030
2031 * data/glr.c: Formatting changes.
2032 Tweak some trace messages to match yacc.c's.
2033
f50adbbd
AD
20342002-10-13 Akim Demaille <akim@epita.fr>
2035
2036 GLR parsers sometimes raise parse errors instead of performing the
2037 default reduction.
2038 Reported by Charles-Henry de Boysson.
2039
2040 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
2041 check the length of the traces when %glr.
2042 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
2043 GLR's traces.
2044 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
2045 Test GLR parsers.
2046 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
2047 (yyltype): Remove the yy prefix from the member names.
2048 (yytable): Complete its comment.
2049 (yygetLRActions): Map error action number from YYTABLE from
2050 YYTABLE_NINF to 0.
2051 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
2052 (which was a bug: it should have been YYTABEL_NINF, and yet it was
2053 not satisfying as we could compare an YYACTION computed from
2054 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
2055 only value for error actions.
2056 (yyreportParseError): In verbose parse error messages, don't issue
2057 `error' in the list of expected tokens.
2058 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
2059 next action to perform to match glr.c's decoding.
2060 (yytable): Complete its comment.
2061
bcbad5b9
PE
20622002-10-13 Paul Eggert <eggert@twinsun.com>
2063
2064 Fix problem reported by Henrik Grubbstroem in
e3aa65c5 2065 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
bcbad5b9
PE
2066 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
2067 because the Bison parser reads the second action before reducing
2068 the first one.
2069 * src/scan-gram.l (rule_length): New static var.
2070 Use it to keep track of the rule length in the scanner, since
2071 we can't expect the parser to be in lock-step sync with the scanner.
2072 (handle_action_dollar, handle_action_at): Use this var.
2073 * tests/actions.at (Exotic Dollars): Test for the problem.
05846dae 2074
14904b89
PE
20752002-10-12 Paul Eggert <eggert@twinsun.com>
2076
1fe611e5
PE
2077 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
2078 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
2079 Include <sys/time.h> when checking for clock_t and struct tms.
2080 Use same include order as source.
2081 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
e3aa65c5 2082 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
05846dae 2083
1fe611e5
PE
2084 * lib/timevar.c: Update copyright date and clarify comments.
2085 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 2086
1fe611e5
PE
2087 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
2088 GCC version as of today, then merge Bison's changes.
2089 Change "GCC" to "Bison" in copyright notice. timevar.def's
2090 author is Akim, so change that too.
2091
98194095
PE
2092 * src/reader.c (grammar_current_rule_check):
2093 Don't worry about the default action if $$ is untyped.
2094 Prevents bogus warnings reported by Jim Gifford in
e3aa65c5 2095 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
98194095 2096
14904b89
PE
2097 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
2098 * data/glr.c, data/lalr1.cc, data/yacc.c:
2099 Output token definitions before the first part of user declarations.
2100 Fixes compatibility problem reported by Jim Gifford for kbd in
e3aa65c5 2101 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
14904b89 2102
ff6dca18
PE
21032002-10-11 Paul Eggert <eggert@twinsun.com>
2104
2105 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
2106 (yyparse): here. This undoes some of the 2002-07-25 change.
2107 Compatibility problem reported by Ralf S. Engelschall with
2108 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
2109
eb714592
AD
21102002-10-11 Akim Demaille <akim@epita.fr>
2111
2112 * tests/regression.at Characters Escapes): New.
2113 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
2114 characters.
2115 Reported by Jan Nieuwenhuizen.
2116
b7195100
AD
21172002-10-11 Akim Demaille <akim@epita.fr>
2118
2119 * po/id.po: New.
2120
f28a0f2d
PE
21212002-10-10 Paul Eggert <eggert@twinsun.com>
2122
2123 Portability fixes for bitsets; this also avoids several GCC
2124 warnings.
2125
2126 * lib/abitset.c: Include <stddef.h>, for offsetof.
2127 * lib/lbitset.c: Likewise.
2128
2129 * lib/abitset.c (abitset_bytes): Return a size that is aligned
2130 properly for vectors of objects. Do not assume that adding a
2131 header size to a multiple of a word size yields a value that is
2132 properly aligned for the whole union.
2133 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2134
2135 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
2136 unique names for structures.
2137 * lib/ebitset.c (ebitset_bytes): Likewise.
2138 * lib/lbitset.c (lbitset_bytes): Likewise.
2139
2140 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
2141 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
2142 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
2143 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
2144 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
2145 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
2146 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
2147 to improve the type-checking that GCC can do.
2148 * lib/bitset.c (bitset_op4_cmp): Likewise.
2149 * lib/bitset_stats.c (bitset_stats_count,
2150 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
2151 bitset_stats_copy, bitset_stats_disjoint_p,
2152 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
2153 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
2154 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
2155 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
2156 bitset_stats_and_or_cmp, bitset_stats_andn_or,
2157 bitset_stats_andn_or_cmp, bitset_stats_or_and,
2158 bitset_stats_or_and_cmp): Likewise.
2159 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
2160 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
2161 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
2162 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
2163
2164 * lib/abitset.h: Include bitset.h, not bbitset.h.
2165 * lib/ebitset.h: Likewise.
2166 * lib/lbitset.h: Likewise.
2167
2168 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
2169 All instances of parameters of type enum bitset_opts are now of
2170 type enum_bitset_opts, to conform to the C Standard, and similarly
2171 for enum_bitset_type.
2172 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2173 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
2174
2175 Do not use "struct bitset_struct" to mean different things in
2176 different modules. Not only is this confusing, it violates
2177 the C Standard, which requires that structure types in different
2178 modules must be compatible if one is to be passed to the other.
2179 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
2180 All instances of "struct bitset_struct *" replaced with "bitset".
2181 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
2182 (union bitset_union, struct abitset_struct, struct ebitset_struct,
2183 struct lbitset_struct, struct bitset_stats_struct): New types.
2184 All uses of struct bitset_struct changed to union bitset_union,
2185 etc.
2186 * lib/abitset.c (struct abitset_struct, abitset,
2187 struct bitset_struct): Remove.
2188 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
2189 struct bitset_struct): Remove.
2190 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
2191 bitset_struct): Remove.
2192 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
2193 Likewise.
2194
2195 Do not call a function of type T using a call that assumes the
2196 function is of a different type U. Standard C requires that a
2197 function must be called with a type that is compatible with its
2198 definition.
2199 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2200 New decls.
2201 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2202 New functions.
2203 * lib/ebitset.c (PFV): Remove.
2204 * lib/lbitset.c (PFV): Likewise.
2205 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
2206 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
2207 decls.
2208 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
2209 (ebitset_vtable): Use them.
2210 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
2211 lbitset_xor): New functions.
2212 (lbitset_vtable): Use them.
2213
2214 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
2215 Declare.
2216
2217 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
2218 GCC warning.
2219 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
2220 Use offsetof, for simplicity.
2221
6fbe4984
PE
22222002-10-06 Paul Eggert <eggert@twinsun.com>
2223
2224 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
2225 the same width as int. This reapplies a hunk of the 2002-08-12 patch
e3aa65c5 2226 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6fbe4984
PE
2227 which was inadvertently undone by the 2002-09-30 patch.
2228 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
2229 the same width as int.
2230
420f93c8
PE
22312002-10-04 Paul Eggert <eggert@twinsun.com>
2232
2233 Version 1.50.
2234
2235 * configure.ac (AC_INIT), NEWS: Increment version number.
2236
2237 * doc/bison.texinfo: Minor spelling, grammar, and white space
2238 fixes.
2239 (Symbols): Mention that any negative value returned from yylex
2240 signifies end-of-input. Warn about negative chars. Mention
2241 the portable Standard C character set.
2242
2243 The GNU coding standard says CFLAGS and YFLAGS are reserved
2244 for the installer to set.
2245 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
2246 * src/Makefile.am (AM_CFLAGS): Likewise.
2247 (AM_YFLAGS): Renamed from YFLAGS.
2248
2249 Fix some MAX and MIN problems.
2250 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
2251 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
2252 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
2253 * src/reader.c (reader): Use it.
2254
2255 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
2256 POSIX 1003.1-2001 has removed fgrep.
2257
22582002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2259
2260 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
2261 interpreted as signed.
2262 * lib/ebitset.c (ebitset_list): Fix bug.
2263
ff68026d
PE
22642002-10-01 Paul Eggert <eggert@twinsun.com>
2265
2266 More fixes for 64-bit hosts and large bitsets.
2267
2268 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
2269 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
2270 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
2271 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
2272 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
2273 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
2274 bitset_count_): Likewise.
2275 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
2276 bitset_first, bitset_last): Likewise.
2277 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
2278 bitset_stats_list_reverse, bitset_stats_size,
2279 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
2280 Likewise.
2281 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2282 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2283 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2284 bitsetv_reflexive_transitive_closure): Likewise.
2285 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
2286 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
2287 Likewise.
2288 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
2289 Likewise.
420f93c8 2290
ff68026d
PE
2291 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
2292 Use size_t, not unsigned int, to count bytes.
2293 * lib/abitset.h (abitset_bytes): Likewise.
2294 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
2295 Likewise.
2296 * lib/bitset.h (bitset_bytes): Likewise.
2297 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
2298 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
2299 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2300 * lib/ebitset.c (ebitset_bytes): Likewise.
2301 * lib/ebitset.h (ebitset_bytes): Likewise.
2302 * lib/lbitset.c (lbitset_bytes): Likewise.
2303 * lib/lbitset.h (lbitset_bytes): Likewise.
420f93c8 2304
ff68026d
PE
2305 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
2306 abitset_subset_p, abitset_disjoint_p, abitset_and,
2307 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
2308 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
2309 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
2310 abitset_or_and, abitset_or_and_cmp):
2311 Use bitset_windex instead of unsigned int.
2312 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2313 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
2314 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
2315 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
2316 Likewise.
2317 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
420f93c8 2318
ff68026d
PE
2319 * lib/bitset.c (bitset_print):
2320 Use proper printf formats for widths of integer types.
2321 * lib/bitset_stats.c (bitset_percent_histogram_print,
2322 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
2323 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2324 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2325 * lib/lbitset.c (lbitset_bytes): Likewise.
420f93c8 2326
ff68026d
PE
2327 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
2328 BITSET_SIZE_MAX): New macros.
2329 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
2330 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
2331 to BITSET_WINDEX_MAX.
2332
2333 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
2334 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
2335 since we now return the bitset_bindex type (not int).
2336
2337 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
2338 when computing sizes.
2339 * lib/ebitset.c (ebitset_elts_grow): Likewise.
2340
2341 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
2342 and avoid cast to unsigned.
2343
6aa452a6
AD
23442002-09-30 Akim Demaille <akim@epita.fr>
2345
2346 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
2347 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
2348 Updates from Michael Hayes.
2349
927f7817
AD
23502002-09-30 Art Haas <ahaas@neosoft.com>
2351
2352 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
2353 invocations.
2354 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
2355 defined.
2356
9738f41e
AD
23572002-09-27 Akim Demaille <akim@epita.fr>
2358
2359 Version 1.49c.
2360
a5c75d7f
AD
23612002-09-27 Akim Demaille <akim@epita.fr>
2362
2363 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
2364 (Because of AC_LIBSOURCE).
2365
8280e179
AD
23662002-09-27 Akim Demaille <akim@epita.fr>
2367
2368 Playing with Autoscan.
2369
2370 * configure.ac: Remove the old LIBOBJ tweaks.
2371 (AC_REPLACE_FUNCS): Add strrchr and strtol.
2372 * lib/strrchr.c: New.
2373 * lib/strtol.c: New, from the Coreutils 4.5.1.
2374
ae64af35
AD
23752002-09-27 Akim Demaille <akim@epita.fr>
2376
2377 Playing with Autoscan.
2378
2379 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
2380 * lib/Makefile.am (libbison_a_SOURCES): No longer include
2381 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
2382 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
2383 Coreutils 4.5.1.
2384
d1a1114f
AD
23852002-09-24 Akim Demaille <akim@epita.fr>
2386
2387 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
2388 (Frequently Asked Questions, Parser Stack Overflow): New.
2389
b906441c
AD
23902002-09-13 Akim Demaille <akim@epita.fr>
2391
2392 Playing with autoscan.
2393
2394 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
2395 * src/files.c (skeleton_find): Remove, unused.
2396 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
2397 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
2398
bd701811
AD
23992002-09-13 Akim Demaille <akim@epita.fr>
2400
2401 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
2402 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
2403
e0a13e7b
AD
24042002-09-13 Akim Demaille <akim@epita.fr>
2405
2406 * configure.ac: Require 2.54.
2407 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
2408 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
2409 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
2410 Remove, provided by Autoconf macros.
2411
c97011bf
AD
24122002-09-12 Akim Demaille <akim@epita.fr>
2413
2414 * m4/prereq.m4: Update, from Coreutils 4.5.1.
2415
d862b1be
AD
24162002-09-12 Akim Demaille <akim@epita.fr>
2417
2418 * m4/prereq.m4: Update, from Fileutils 4.1.5.
2419 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
2420 Reported by Martin Mokrejs.
2421
3d38c03a
AD
24222002-09-10 Akim Demaille <akim@epita.fr>
2423
2424 * src/parse-gram.y: Associate a human readable string to each
2425 token type.
2426 * tests/regression.at (Invalid inputs): Adjust.
2427
b6347355
AD
24282002-09-10 Gary V. Vaughan <gary@gnu.org>
2429
2430 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
2431 with an Autoconf-2.5x style configure.ac.
2432
09ba4ab2
PE
24332002-09-06 Paul Eggert <eggert@twinsun.com>
2434
2435 * doc/bison.texinfo (Conditions): Make explicit that the GPL
2436 exception applies only to yacc.c. This is a modification of a
2437 patch originally suggested by Akim Demaille.
2438
21846f69
AD
24392002-09-06 Akim Demaille <akim@epita.fr>
2440
09ba4ab2
PE
2441 * data/c.m4 (b4_copyright): Move the GPL exception comment from
2442 here to...
2443 * data/yacc.c: here.
2444
21846f69
AD
2445 * data/lalr1.cc (struct yyltype): Don't define it, since we use
2446 LocationType.
2447 (b4_ltype): Default to yy::Location from location.hh.
2448
c0ad8bf3
AD
24492002-09-04 Jim Meyering <jim@meyering.net>
2450
2451 * data/yacc.c: Guard the declaration of yytoknum also with
2452 `#ifdef YYPRINT', so it is declared only when used.
2453
3a93251e
AD
24542002-09-04 Akim Demaille <akim@epita.fr>
2455
2456 * configure.in: Rename as...
2457 * configure.ac: this.
2458 Bump to 1.49c.
2459
427c0dda
AD
24602002-09-04 Akim Demaille <akim@epita.fr>
2461
2462 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
2463 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
2464 translate maintainer only messages.
2465
6a254321
PE
24662002-08-12 Paul Eggert <eggert@twinsun.com>
2467
645e30d1
PE
2468 Version 1.49b.
2469
6a254321
PE
2470 * Makefile.am (SUBDIRS): Remove intl.
2471 (DISTCLEANFILES): Remove.
2472 * NEWS: Mention that GNU M4 is now required. Clarify what is
2473 meant by "larger grammars". Mention the pt_BR translation.
2474 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
2475 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
2476 Bump version from 0.11.2 to 0.11.5.
2477 (BISON_PREREQ_STAGE): Remove.
2478 (AM_GNU_GETTEXT): Use external gettext.
2479 (AC_OUTPUT): Remove intl/Makefile.
2480
2481 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
2482
2483 * data/glr.c: Include string.h, for strlen.
2484 (yyreportParseError): Use size_t for yysize.
2485 (yy_yypstack): No longer nested inside yypstates, as nested
2486 functions are not portable. Do not assume size_t is the
2487 same width as int.
2488 (yypstates): Do not assume that ptrdiff_t is the same width
2489 as int, and similarly for yyposn and YYINDEX.
2490
2491 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
2492
2493 * lib/Makefile.am (INCLUDES): Do not include from the intl
2494 directory, which has been removed.
2495 * src/Makefile.am (INCLUDES): Likewise.
2496
2497 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
2498 (bitsets_sources, additional_bitsets_sources, timevars_sources):
2499 New vars.
2500
2501 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
2502 * tests/Makefile.am (EXTRA_DIST): Likewise.
2503
2504 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
2505 Do not assume that bitset_windex is the same width as unsigned.
2506
2507 * lib/abitset.c (abitset_unused_clear): Do not assume that
2508 bitset_word is the same width as int.
2509 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
2510 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
2511 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
2512 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
2513 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
2514
2515 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
2516 portability to one's complement hosts!).
2517 * lib/ebitset.c (ebitset_op1): Likewise.
2518 * lib/lbitset.c (lbitset_op1): Likewise.
2519
2520 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
2521 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
2522 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
2523 Sync with fileutils.
2524 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
2525 lib/gettext.h: Sync with diffutils.
2526
2527 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
2528 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
2529
2530 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
2531 PROTOTYPES to check for prototypes, and "defined __STDC__" to
2532 check for void *.
2533
2534 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
2535 size_t; the old version tried to do this but casted improperly.
2536 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
2537 (bitset_test): Now returns int, not unsigned long.
2538
2539 * lib/bitset_stats.c: Include "gettext.h".
2540 (_): New macro.
2541 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
2542 name locals "index", as it generates unnecessary warnings on some
2543 hosts that have an "index" function.
2544
2545 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
2546 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
2547 they need translation.
2548 * src/LR0.c (state_list_append, new_itemsets, get_state,
2549 append_states, generate_states): Likewise.
2550 * src/assoc.c (assoc_to_string): Likewise.
2551 * src/closure.c (print_closure, set_firsts, closure): Likewise.
2552 * src/gram.c (grammar_dump): Likewise.
2553 * src/injections.c (injections_compute): Likewise.
2554 * src/lalr.c (lookaheads_print): Likewise.
2555 * src/relation.c (relation_transpose): Likewise.
2556 * src/scan-gram.l: Likewise.
2557 * src/tables.c (table_grow, pack_vector): Likewise.
2558
2559 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
2560 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
2561 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
2562 * m4/mbstate_t.m4: Sync with fileutils.
2563 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
2564
2565 * po/LINGUAS: Add pt_BR.
2566 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
2567 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
2568 lib/timevar.c.
2569 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
2570 manual recommends.
2571 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
2572
2573 * src/complain.c (strerror_r): Remove decl; not needed.
2574 (strerror): Use same pattern as ../lib/error.c.
2575
2576 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
2577
2578 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
2579
2580 * src/main.c (main): Cast result of bindtextdomain and textdomain
2581 to void, to avoid a GCC warning when --disable-nls is in effect.
2582
2583 * src/scan-gram.l: Use strings rather than escapes when possible,
2584 to minimize the number of warnings from xgettext.
2585 (handle_action_dollar, handle_action_at): Don't use isdigit,
2586 as it mishandles negative chars and it may not work as expected
2587 outside the C locale.
2588
2589 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
2590 this is a GCC extension and is not portable to other compilers.
2591
2592 * src/system.h (alloca): Use same pattern as ../lib/error.c.
2593 Do not include <ctype.h>; no longer needed.
2594 Do not include <malloc.h>; no longer needed (and generates
2595 warnings on OpenBSD 3.0).
2596
2597 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
2598 it's not portable.
2599
2600 * tests/regression.at: Do not use 'cc -c input.c -o input';
2601 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
2602
2603 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
2604 exit status as failure, not just exit status 1. Sun C exits
2605 with status 2 sometimes.
2606
2607 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
2608 Use it for the two large tests.
2609
c8f002c7
AD
26102002-08-02 Akim Demaille <akim@epita.fr>
2611
2612 * src/conflicts.c (conflicts_output): Don't output rules never
2613 reduced here, since anyway that computation doesn't work.
2614 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
2615 (rule_useless_p, rule_never_reduced_p): New.
2616 (grammar_rules_partial_print): Use a filter instead of a range.
2617 Display the title only if needed.
2618 (grammar_rules_print): Adjust.
2619 (grammar_rules_never_reduced_report): New.
2620 * src/tables.c (action_row): Move the computation of rules never
2621 reduced to...
2622 (token_actions): here.
2623 * src/main.c (main): Make the parser before making the report, so
2624 that rules never reduced are computed.
2625 Call grammar_rules_never_reduced_report.
2626 * src/print.c (print_results): Report rules never reduced.
2627 * tests/conflicts.at, tests/reduce.at: Adjust.
2628
cd08e51e
AD
26292002-08-01 Akim Demaille <akim@epita.fr>
2630
2631 Instead of attaching lookaheads and duplicating the rules being
2632 reduced by a state, attach the lookaheads to the reductions.
2633
2634 * src/state.h (state_t): Remove the `lookaheads',
2635 `lookaheads_rule' member.
2636 (reductions_t): Add a `lookaheads' member.
2637 Use a regular array for the `rules'.
2638 * src/state.c (reductions_new): Initialize the lookaheads member
2639 to 0.
2640 (state_rule_lookaheads_print): Adjust.
2641 * src/state.h, src/state.c (state_reductions_find): New.
2642 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
2643 (count_rr_conflicts): Adjust.
2644 * src/lalr.c (LArule): Remove.
2645 (add_lookback_edge): Adjust.
2646 (state_lookaheads_count): New.
2647 (states_lookaheads_initialize): Merge into...
2648 (initialize_LA): this.
2649 (lalr_free): Adjust.
2650 * src/main.c (main): Don't free nullable and derives too early: it
2651 is used by --verbose.
2652 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
2653
bb0027a9
AD
26542002-08-01 Akim Demaille <akim@epita.fr>
2655
2656 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
2657 `rule_number_t**'.
2658 (set_derives, free_derives): Rename as...
2659 (derives_compute, derives_free): this.
2660 Adjust all dependencies.
2661 * src/nullable.c (set_nullable, free_nullable): Rename as...
2662 (nullable_compute, nullable_free): these.
2663 (rule_list_t): Store rule_t *, not rule_number_t.
2664 * src/state.c (state_rule_lookaheads_print): Directly compare rule
2665 pointers, instead of their numbers.
2666 * src/main.c (main): Call nullable_free, and derives_free earlier,
2667 as they were lo longer used.
2668
3325ddc4
AD
26692002-08-01 Akim Demaille <akim@epita.fr>
2670
2671 * lib/timevar.c (get_time): Include children time.
2672 * src/lalr.h (LA, LArule): Don't export them: used with the
2673 state_t.
2674 * src/lalr.c (LA, LArule): Static.
2675 * src/lalr.h, src/lalr.c (lalr_free): New.
2676 * src/main.c (main): Call it.
2677 * src/tables.c (pack_vector): Check whether loc is >= to the
2678 table_size, not >.
2679 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
2680 (tables_generate): do it, since that's also it which allocates
2681 them.
2682 Don't free LA and LArule, main does.
2683
c6f1a33c
AD
26842002-07-31 Akim Demaille <akim@epita.fr>
2685
2686 Separate parser tables computation and output.
2687
2688 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
2689 (conflict_list, conflict_list_cnt, table, check, table_ninf)
2690 (yydefgoto, yydefact, high): Move to...
2691 * src/tables.h, src/tables.c: here.
2692 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
2693 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
2694 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
2695 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
2696 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
2697 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
2698 (action_row, save_row, token_actions, save_column, default_goto)
2699 (goto_actions, sort_actions, matching_state, pack_vector)
2700 (table_ninf_remap, pack_table, prepare_actions): Move to...
2701 * src/tables.c: here.
2702 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
2703 * src/output.c (token_actions, output_base, output_conflicts)
2704 (output_check): Merge into...
2705 (prepare_actions): this.
2706 (actions_output): Rename as...
2707 (user_actions_output): this.
2708 * src/main.c (main): Call tables_generate and tables_free.
2709
1509d42f
AD
27102002-07-31 Akim Demaille <akim@epita.fr>
2711
2712 Steal GCC's --time-report support.
2713
2714 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
2715 stolen/adjusted from GCC.
2716 * m4/stage.m4: Remove time related checks.
2717 * m4/timevar.m4: New.
2718 * configure.in: Adjust.
2719 * src/system.h: Adjust to using timevar.h.
2720 * src/getargs.h, src/getargs.c: Support trace_time for
2721 --trace=time.
2722 * src/main.c (stage): Remove.
2723 (main): Replace `stage' invocations with timevar calls.
2724 * src/output.c: Insert pertinent timevar calls.
2725
273a74fa
AD
27262002-07-31 Akim Demaille <akim@epita.fr>
2727
2728 Let --trace have arguments.
2729
2730 * src/getargs.h (enum trace_e): New.
2731 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
2732 (long_options, short_options): --trace/-T takes an optional
2733 argument.
2734 Change all the uses of trace_flag to reflect the new flags.
2735 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
2736
2737 Strengthen `stage' portability.
2738
2739 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
2740 * configure.in: Use it.
2741 Don't check for malloc.h and sys/times.h.
2742 * src/system.h: Include them when appropriate.
2743 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
2744 times and struct tms are available.
2745
217598da
AD
27462002-07-30 Akim Demaille <akim@epita.fr>
2747
2748 In verbose parse error message, don't report `error' as an
2749 expected token.
2750 * tests/actions.at (Printers and Destructors): Adjust.
2751 * tests/calc.at (Calculator $1): Adjust.
2752 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
2753 error message, do not report the parser accepts the error token in
2754 that state.
2755
52489d44
AD
27562002-07-30 Akim Demaille <akim@epita.fr>
2757
2758 Normalize conflict related messages.
2759
2760 * src/complain.h, src/complain.c (warn, complain): New.
2761 * src/conflicts.c (conflicts_print): Use them.
2762 (conflict_report_yacc): New, extracted from...
2763 (conflicts_print): here.
2764 * tests/conflicts.at, tests/existing.at: Adjust.
2765
e8832397
AD
27662002-07-30 Akim Demaille <akim@epita.fr>
2767
2768 Report rules which are never reduced by the parser: those hidden
2769 by conflicts.
2770
2771 * src/LR0.c (save_reductions): Don't make the final state too
2772 different: save its reduction (accept) instead of having a state
2773 without any action (no shift or goto, no reduce).
2774 Note: the final state is now a ``regular'' state, i.e., the
2775 parsers now contain `reduce 0' as default reduction.
2776 Nevertheless, since they decide to `accept' when yystate =
2777 final_state, they still will not reduce rule 0.
2778 * src/print.c (print_actions, print_reduction): Adjust.
2779 * src/output.c (action_row): Track reduced rules.
2780 (token_actions): Report rules never reduced.
2781 * tests/conflicts.at, tests/regression.at: Adjust.
2782
caf23d24
AD
27832002-07-30 Akim Demaille <akim@epita.fr>
2784
2785 `stage' was accidently included in a previous patch.
2786 Initiate its autoconfiscation.
2787
2788 * configure.in: Look for malloc.h and sys/times.h.
2789 * src/main.c (stage): Adjust.
2790 Report only when trace_flag.
2791
640748ee
AD
27922002-07-29 Akim Demaille <akim@epita.fr>
2793
2794 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
2795 state_number_t.
2796 (errs_t): symbol_t*, not symbol_number_t.
2797 (reductions_t): rule_t*, not rule_number_t.
2798 (FOR_EACH_SHIFT): New.
2799 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
2800 * src/print.c, src/print_graph.c: Adjust.
2801
88bce5a2
AD
28022002-07-29 Akim Demaille <akim@epita.fr>
2803
2804 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
2805
2806 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
2807 (endtoken, accept): these.
2808 * src/reader.c (reader): Set endtoken's default tag to "$end".
2809 Set undeftoken's tag to "$undefined" instead of "$undefined.".
2810 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
2811 Adjust.
2812
1bfb97db
AD
28132002-07-29 Akim Demaille <akim@epita.fr>
2814
2815 * src/reduce.c (reduce_grammar): When the language is empty,
2816 complain about the start symbol, not the axiom.
2817 Use its location.
2818 * tests/reduce.at (Empty Language): New.
2819
fc5734fe
AD
28202002-07-26 Akim Demaille <akim@epita.fr>
2821
2822 * src/reader.h, src/reader.c (gram_error): ... can't get
2823 yycontrol without making too strong assumptions on the parser
2824 itself.
2825 * src/output.c (prepare_tokens): Use the real 0th value of
2826 token_translations instead of `0'.
2827 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
2828 visible here.
2829 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
2830 for the time being: %locations ought to provide it to yyerror.
2831
3650b4b8
AD
28322002-07-25 Akim Demaille <akim@epita.fr>
2833
2834 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
2835 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
2836 * tests/regression.at (Web2c Actions): Adjust.
2837
4b3d3a8e
AD
28382002-07-25 Akim Demaille <akim@epita.fr>
2839
2840 Stop storing rules from 1 to nrules + 1.
2841
2842 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
2843 * src/nullable.c, src/output.c, src/print.c, src/reader.c
2844 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
2845 Iterate from 0 to nrules.
2846 Use rule_number_as_item_number and item_number_as_rule_number.
2847 Adjust to `derive' now containing possibly 0.
2848 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
2849 Handle the `- 1' part in rule numbers from/to item numbers.
2850 * src/conflicts.c (log_resolution): Fix the message which reversed
2851 shift and reduce.
2852 * src/output.c (action_row): Initialize default_rule to -1.
2853 (token_actions): Adjust.
2854 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
2855 expected output.
2856 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
2857
4a2a22f4
AD
28582002-07-25 Akim Demaille <akim@epita.fr>
2859
2860 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
2861 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
2862 (b4_c_knr_arg_decl): New.
2863 * data/yacc.c: Use it to define yysymprint, yydestruct, and
2864 yyreport_parse_error.
2865
b8df3223
AD
28662002-07-25 Akim Demaille <akim@epita.fr>
2867
2868 * data/yacc.c (yyreport_parse_error): New, extracted from...
2869 (yyparse): here.
2870 (yydestruct, yysymprint): Move above yyparse.
2871 Be K&R compliant.
2872
a762e609
AD
28732002-07-25 Akim Demaille <akim@epita.fr>
2874
2875 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
2876 replace...
2877 (b4_sint_type, b4_uint_type): these.
2878 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
2879 * tests/regression.at (Web2c Actions): Adjust.
2880
12b0043a
AD
28812002-07-25 Akim Demaille <akim@epita.fr>
2882
2883 * src/gram.h (TIEM_NUMBER_MAX): New.
2884 (item_number_of_rule_number, rule_number_of_item_number): Rename
2885 as...
2886 (rule_number_as_item_number, item_number_as_rule_number): these.
2887 Adjust dependencies.
2888 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
2889 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
2890 (symbol_number_to_vector_number): New.
2891 (order): Of vector_number_t* type.
2892 (base_t, BASE_MAX, BASE_MIN): New.
2893 (froms, tos, width, pos, check): Of base_t type.
2894 (action_number_t, ACTION_MIN, ACTION_MAX): New.
2895 (actrow): Of action_number_t type.
2896 (conflrow): Of unsigned int type.
2897 (table_ninf, base_ninf): New.
2898 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
2899 (muscle_insert_int_table, muscle_insert_base_table)
2900 (muscle_insert_rule_number_table): New.
2901 (prepare_tokens): Output `toknum' as int_table.
2902 (action_row): Returns a rule_number_t.
2903 Use ACTION_MIN, not SHRT_MIN.
2904 (token_actions): yydefact is rule_number_t*.
2905 (table_ninf_remap): New.
2906 (pack_table): Use it for `base' and `table'.
2907 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
2908 replaced with...
2909 (YYPACT_NINF, YYTABLE_NINF): these.
2910 (yypact, yytable): Compute their types instead of hard-coded
2911 `short'.
2912 * tests/regression.at (Web2c Actions): Adjust.
2913
5dde258a
AD
29142002-07-19 Akim Demaille <akim@epita.fr>
2915
2916 * src/scan-gram.l (id): Can start with an underscore.
2917
a945ec39
AD
29182002-07-16 Akim Demaille <akim@epita.fr>
2919
2920 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
2921 Adjust all former `associativity' dependencies.
2922 * src/symtab.c (symbol_new): Default associativity is `undef', not
2923 `right'.
2924 (symbol_check_alias_consistence): Adjust.
2925
fae437e8
AD
29262002-07-09 Akim Demaille <akim@epita.fr>
2927
2928 * doc/bison.texinfo: Properly set the ``header'' part.
2929 Use @dircategory ``GNU programming tools'' as per Texinfo's
2930 documentation.
2931 Use @copying.
2932
1a715ef2
AD
29332002-07-09 Akim Demaille <akim@epita.fr>
2934
2935 * lib/quotearg.h: Protect against multiple inclusions.
2936 * src/location.h (location_t): Add a `file' member.
2937 (LOCATION_RESET, LOCATION_PRINT): Adjust.
2938 * src/complain.c (warn_at, complain_at, fatal_at): Drop
2939 `error_one_per_line' support.
2940
a5d50994
AD
29412002-07-09 Akim Demaille <akim@epita.fr>
2942
2943 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
2944 * src/reader.c (lineno): Remove.
2945 Adjust all dependencies.
2946 (get_merge_function): Take a location and use complain_at.
2947 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
2948 * tests/regression.at (Invalid inputs, Mixing %token styles):
2949 Adjust.
2950
b275314e
AD
29512002-07-09 Akim Demaille <akim@epita.fr>
2952
2953 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
2954 recovery rule, and forbid extensions when --yacc.
2955 (gram_error): Use complain_at.
2956 * src/reader.c (reader): Exit if there were parse errors.
2957
865b9df1
AD
29582002-07-09 Akim Demaille <akim@epita.fr>
2959
2960 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
2961 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
2962 Reported by R Blake <blakers@mac.com>.
2963
c76e14da
AD
29642002-07-09 Akim Demaille <akim@epita.fr>
2965
2966 * data/yacc.c: Output the copyright notive in the header.
2967
7db2ed2d
AD
29682002-07-03 Akim Demaille <akim@epita.fr>
2969
2970 * src/output.c (froms, tos): Are state_number_t.
2971 (save_column): sp, sp1, and sp2 are state_number_t.
2972 (prepare): Rename `final' as `final_state_number', `nnts' as
2973 `nterms_number', `nrules' as `rules_number', `nstates' as
2974 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
2975 unused.
2976 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
2977 * data/lalr1.cc (nsym_): Remove, unused.
2978
e68e0410
AD
29792002-07-03 Akim Demaille <akim@epita.fr>
2980
2981 * src/lalr.h, src/lalr.c (goto_number_t): New.
2982 * src/lalr.c (goto_list_t): New.
2983 Propagate them.
2984 * src/nullable.c (rule_list_t): New.
2985 Propagate.
2986 * src/types.h: Remove.
2987
e1a4f3a4
AD
29882002-07-03 Akim Demaille <akim@epita.fr>
2989
2990 * src/closure.c (print_fderives): Use rule_rhs_print.
2991 * src/derives.c (print_derives): Use rule_rhs_print.
2992 (rule_list_t): New, replaces `shorts'.
2993 (set_derives): Add comments.
2994 * tests/sets.at (Nullable, Firsts): Adjust.
2995
536545f3
AD
29962002-07-03 Akim Demaille <akim@epita.fr>
2997
2998 * src/output.c (prepare_actions): Free `tally' and `width'.
2999 (prepare_actions): Allocate and free `order'.
3000 * src/symtab.c (symbols_free): Free `symbols'.
3001 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
3002 * src/output.c (m4_invoke): Move to...
3003 * src/scan-skel.l: here.
3004 (<<EOF>>): Close yyout, and free its name.
3005
8b752b00
AD
30062002-07-03 Akim Demaille <akim@epita.fr>
3007
3008 Fix some memory leaks, and fix a bug: state 0 was examined twice.
3009
3010 * src/LR0.c (new_state): Merge into...
3011 (state_list_append): this.
3012 (new_states): Merge into...
3013 (generate_states): here.
3014 (set_states): Don't ensure a proper `errs' state member here, do it...
3015 * src/conflicts.c (conflicts_solve): here.
3016 * src/state.h, src/state.c: Comment changes.
3017 (state_t): Rename member `shifts' as `transitions'.
3018 Adjust all dependencies.
3019 (errs_new): For consistency, also take the values as argument.
3020 (errs_dup): Remove.
3021 (state_errs_set): New.
3022 (state_reductions_set, state_transitions_set): Assert that no
3023 previous value was assigned.
3024 (state_free): New.
3025 (states_free): Use it.
3026 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
3027 temporary storage: use `errs' and `nerrs' as elsewhere.
3028 (set_conflicts): Allocate and free this `errs'.
3029
613f5e1a
AD
30302002-07-02 Akim Demaille <akim@epita.fr>
3031
3032 * lib/libiberty.h: New.
3033 * lib: Update the bitset implementation from upstream.
3034 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
3035 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
3036 * src/main.c: Adjust bitset stats calls.
3037
26e0cadc
PE
30382002-07-01 Paul Eggert <eggert@twinsun.com>
3039
3040 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
3041 char, so that negative chars don't collide with $.
3042
1154cced
AD
30432002-06-30 Akim Demaille <akim@epita.fr>
3044
3045 Have the GLR tests be `warning' checked, and fix the warnings.
3046
3047 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
3048 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
3049 (yyremoveDeletes): `yyi' and `yyj' are size_t.
3050 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
3051 (yyaddDeferredAction): static.
3052 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
3053 (yyreportParseError): yyprefix is const.
3054 yytokenp is used only when verbose.
3055 (yy__GNUC__): Replace with __GNUC__.
3056 (yypdumpstack): yyi is size_t.
3057 (yypreference): Un-yy local variables and arguments, to avoid
3058 clashes with `yyr1'. Anyway, we are not in the user name space.
3059 (yytname_size): be an int, as is compared with ints.
3060 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
3061 Use them.
3062 * tests/cxx-gram.at: Use quotation to protect $1.
3063 Use AT_COMPILE to enable warnings hunts.
3064 Prototype yylex and yyerror.
3065 `Use' argc.
3066 Include `string.h', not `strings.h'.
3067 Produce and prototype stmtMerge only when used.
3068 yylex takes a location.
3069
97650f4e
AD
30702002-06-30 Akim Demaille <akim@epita.fr>
3071
3072 We spend a lot of time in quotearg, in particular when --verbose.
3073
3074 * src/symtab.c (symbol_get): Store a quoted version of the key.
3075 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
3076 Adjust all callers.
3077
d2576365
AD
30782002-06-30 Akim Demaille <akim@epita.fr>
3079
3080 * src/state.h (reductions_t): Rename member `nreds' as num.
3081 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
3082 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
3083
ccaf65bc
AD
30842002-06-30 Akim Demaille <akim@epita.fr>
3085
3086 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
3087 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
3088 (shifts_to): Rename as...
3089 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
3090 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
3091 (TRANSITION_IS_DISABLED, transitions_to): these.
3092
87675353
AD
30932002-06-30 Akim Demaille <akim@epita.fr>
3094
3095 * src/print.c (print_shifts, print_gotos): Merge into...
3096 (print_transitions): this.
3097 (print_transitions, print_errs, print_reductions): Align the
3098 lookaheads columns.
3099 (print_core, print_transitions, print_errs, print_state,
3100 print_grammar): Output empty lines separator before, not after.
3101 (state_default_rule_compute): Rename as...
3102 (state_default_rule): this.
3103 * tests/conflicts.at (Defaulted Conflicted Reduction),
3104 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
3105 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
3106
ce4ccb4b
AD
31072002-06-30 Akim Demaille <akim@epita.fr>
3108
3109 Display items as we display rules.
3110
3111 * src/gram.h, src/gram.c (rule_lhs_print): New.
3112 * src/gram.c (grammar_rules_partial_print): Use it.
3113 * src/print.c (print_core): Likewise.
3114 * tests/conflicts.at (Defaulted Conflicted Reduction),
3115 (Unresolved SR Conflicts): Adjust.
3116 (Unresolved SR Conflicts): Adjust and rename as...
3117 (Resolved SR Conflicts): this, as was meant.
3118 * tests/regression.at (Web2c Report): Adjust.
3119
bc933ef1
AD
31202002-06-30 Akim Demaille <akim@epita.fr>
3121
3122 * src/print.c (state_default_rule_compute): New, extracted from...
3123 (print_reductions): here.
3124 Pessimize, but clarify the code.
3125 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
3126
53d4308d
AD
31272002-06-30 Akim Demaille <akim@epita.fr>
3128
3129 * src/output.c (action_row): Let default_rule be always a rule
3130 number.
3131
574fb2d5
AD
31322002-06-30 Akim Demaille <akim@epita.fr>
3133
3134 * src/closure.c (print_firsts, print_fderives, closure):
3135 Use BITSET_EXECUTE.
3136 * src/lalr.c (lookaheads_print): Likewise.
3137 * src/state.c (state_rule_lookaheads_print): Likewise.
3138 * src/print_graph.c (print_core): Likewise.
3139 * src/print.c (print_reductions): Likewise.
3140 * src/output.c (action_row): Likewise.
3141 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
3142
05811fd7
AD
31432002-06-30 Akim Demaille <akim@epita.fr>
3144
3145 * src/print_graph.c: Use report_flag.
3146
0e4d5753
AD
31472002-06-30 Akim Demaille <akim@epita.fr>
3148
3149 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
3150 to...
3151 * src/relation.h, src/relation.c (traverse, relation_digraph)
3152 (relation_print, relation_transpose): New.
3153
24c7d800
AD
31542002-06-30 Akim Demaille <akim@epita.fr>
3155
3156 * src/state.h, src/state.c (shifts_to): New.
3157 * src/lalr.c (build_relations): Use it.
3158
9222837b
AD
31592002-06-30 Akim Demaille <akim@epita.fr>
3160
3161 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
3162 (item_number_of_rule_number, rule_number_of_item_number): New.
3163 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
3164 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
3165 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
3166 Propagate their use.
3167 Much remains to be done, in particular wrt `shorts' from types.h.
3168
260008e5
AD
31692002-06-30 Akim Demaille <akim@epita.fr>
3170
3171 * src/symtab.c (symbol_new): Initialize the `printer' member.
3172
8a731ca8
AD
31732002-06-30 Akim Demaille <akim@epita.fr>
3174
3175 * src/LR0.c (save_reductions): Remove, replaced by...
3176 * src/state.h, src/state.c (state_reductions_set): New.
3177 (reductions, errs): Rename as...
3178 (reductions_t, errs_t): these.
3179 Adjust all dependencies.
3180
32e1e0a4
AD
31812002-06-30 Akim Demaille <akim@epita.fr>
3182
3183 * src/LR0.c (state_list_t, state_list_append): New.
3184 (first_state, last_state): Now symbol_list_t.
3185 (this_state): Remove.
3186 (new_itemsets, append_states, save_reductions): Take a state_t as
3187 argument.
3188 (set_states, generate_states): Adjust.
3189 (save_shifts): Remove, replaced by...
3190 * src/state.h, src/state.c (state_shifts_set): New.
3191 (shifts): Rename as...
3192 (shifts_t): this.
3193 Adjust all dependencies.
3194 * src/state.h (state_t): Remove the `next' member.
3195
e5fb6710
AD
31962002-06-30 Akim Demaille <akim@epita.fr>
3197
3198 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
3199 escaped in slot 0.
3200
c7ca99d4
AD
32012002-06-30 Akim Demaille <akim@epita.fr>
3202
3203 Use hash.h for the state hash table.
3204
3205 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
3206 (allocate_storage): Use state_hash_new.
3207 (free_storage): Use state_hash_free.
3208 (new_state, get_state): Adjust.
3209 * src/lalr.h, src/lalr.c (states): Move to...
3210 * src/states.h (state_t): Remove the `link' member, no longer
3211 used.
3212 * src/states.h, src/states.c: here.
3213 (state_hash_new, state_hash_free, state_hash_lookup)
3214 (state_hash_insert, states_free): New.
3215 * src/states.c (state_table, state_compare, state_hash): New.
3216 * src/output.c (output_actions): Do not free states now, since we
3217 still need to know the final_state number in `prepare', called
3218 afterwards. Do it...
3219 * src/main.c (main): here: call states_free after `output'.
3220
df0e7316
AD
32212002-06-30 Akim Demaille <akim@epita.fr>
3222
3223 * src/state.h, src/state.c (state_new): New, extracted from...
3224 * src/LR0.c (new_state): here.
3225 * src/state.h (STATE_ALLOC): Move to...
3226 * src/state.c: here.
3227 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
3228 * src/state.h, src/state.c: here.
3229
39f41916
AD
32302002-06-30 Akim Demaille <akim@epita.fr>
3231
3232 * src/reader.c (gensym): Rename as...
3233 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
3234 (getsym): Rename as...
3235 (symbol_get): this.
3236
d57650a5
AD
32372002-06-30 Akim Demaille <akim@epita.fr>
3238
3239 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
3240 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
3241 * src/output.c, src/print.c, src/print_graph.c: Propagate.
3242 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
3243
5a08f1ce
AD
32442002-06-30 Akim Demaille <akim@epita.fr>
3245
3246 Make the test suite pass with warnings checked.
3247
3248 * tests/actions.at (Printers and Destructors): Improve.
3249 Avoid unsigned vs. signed issues.
3250 * tests/calc.at: Don't exercise the scanner here, do it...
3251 * tests/input.at (Torturing the Scanner): here.
3252
720623af
PH
32532002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3254
88e7e941 3255 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
3256 reorganize first lines parallel to yacc.c.
3257
fb8135fa
AD
32582002-06-28 Akim Demaille <akim@epita.fr>
3259
3260 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
3261 (b4_token_enum, b4_token_defines): New, factored from...
3262 * data/lalr1.cc, data/yacc.c, glr.c: here.
3263
41442480
AD
32642002-06-28 Akim Demaille <akim@epita.fr>
3265
3266 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
3267 unused variables.
3268 * src/output.c (merger_output): static.
3269
e0e5bf84
AD
32702002-06-28 Akim Demaille <akim@epita.fr>
3271
3272 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
3273 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
3274 pacify GCC.
3275 * src/output.c (save_row): Initialize all the variables to pacify GCC.
e0e5bf84 3276
676385e2
PH
32772002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3278
3279 Accumulated changelog for new GLR parsing features.
3280
6a254321 3281 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
3282 conflicts_total_count.
3283 * src/conflicts.h: Ditto.
3284 * src/output.c (token_actions): Use the new name.
3285 (output_conflicts): Change conflp => conflict_list_heads, and
3286 confl => conflict_list for better readability.
3287 * data/glr.c: Use the new names.
3288 * NEWS: Add self to GLR announcement.
e0e5bf84 3289
676385e2
PH
3290 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
3291
3292 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
3293 Akim Demaille.
3294
3295 * data/bison.glr: Change name to glr.c
3296 * data/glr.c: Renamed from bison.glr.
3297 * data/Makefile.am: Add glr.c
e0e5bf84
AD
3298
3299 * src/getargs.c:
3300
676385e2
PH
3301 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
3302 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 3303
676385e2
PH
3304 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3305
3306 * data/bison.glr: Be sure to restore the
3307 current #line when returning to the skeleton contents after having
3308 exposed the input file's #line.
3309
3310 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3311
3312 * data/bison.glr: Bring up to date with changes to bison.simple.
3313
3314 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3315
3316 * data/bison.glr: Correct definitions that use b4_prefix.
3317 Various reformatting.
3318 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
3319 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
3320 yytokenp argument; now part of stack.
3321 (yychar): Define to behave as documented.
3322 (yyclearin): Ditto.
e0e5bf84 3323
676385e2
PH
3324 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3325
3326 * src/reader.h: Add declaration for free_merger_functions.
3327
3328 * src/reader.c (merge_functions): New variable.
3329 (get_merge_function): New function.
3330 (free_merger_functions): New function.
3331 (readgram): Check for %prec that is not followed by a symbol.
3332 Handle %dprec and %merge declarations.
3333 (packgram): Initialize dprec and merger fields in rules array.
3334
3335 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
3336 conflict_list_cnt, conflict_list_free): New variables.
3337 (table_grow): Also grow conflict_table.
e0e5bf84 3338 (prepare_rules): Output dprec and merger tables.
676385e2 3339 (conflict_row): New function.
e0e5bf84 3340 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
3341 default reduction in conflicted states for GLR parser so that there
3342 are spaces for the conflict lists.
3343 (save_row): Also save conflict information.
3344 (token_actions): Allocate conflict list.
3345 (merger_output): New function.
3346 (pack_vector): Pack conflict table, too.
3347 (output_conflicts): New function to output yyconflp and yyconfl.
3348 (output_check): Allocate conflict_tos.
3349 (output_actions): Output conflict tables, also.
3350 (output_skeleton): Output b4_mergers definition.
3351 (prepare): Output b4_max_rhs_length definition.
3352 Use 'bison.glr' as default skeleton for GLR parsers.
3353
3354 * src/gram.c (glr_parser): New flag.
3355 (grammar_free): Call free_merger_functions.
3356
3357 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
3358 all pairs of conflicting reductions, rather than just all tokens
3359 causing conflicts. Needed to size conflict tables.
e0e5bf84 3360 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
3361 interface.
3362 (conflicts_print): Ditto.
3363 (count_total_conflicts): New function.
3364
3365 * src/reader.h (merger_list): New type.
3366 (merge_functions): New variable.
3367
3368 * src/lex.h (tok_dprec, tok_merge): New token types.
3369
3370 * src/gram.h (rule_s): Add dprec and merger fields.
3371 (glr_parser): New flag.
3372
3373 * src/conflicts.h (count_total_conflicts): New function.
3374
3375 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
3376
3377 * doc/bison.texinfo (Generalized LR Parsing): New section.
3378 (GLR Parsers): New section.
3379 (Language and Grammar): Mention GLR parsing.
3380 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
3381 Correct typo ("tge" -> "the").
3382
3383 * data/bison.glr: New skeleton for GLR parsing.
3384
3385 * tests/cxx-gram.at: New tests for GLR parsing.
3386
3387 * tests/testsuite.at: Include cxx-gram.at.
3388
3389 * tests/Makefile.am: Add cxx-gram.at.
e0e5bf84 3390
676385e2
PH
3391 * src/parse-gram.y:
3392
3393 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
3394
3395 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
e0e5bf84 3396
b5480d74 33972002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
3398
3399 * src/options.h, src/options.c: Remove.
3400 * src/getargs.c (short_options, long_options): New.
3401
60491a94
AD
34022002-06-27 Akim Demaille <akim@epita.fr>
3403
3404 * data/bison.simple, data/bison.c++: Rename as...
3405 * data/yacc.c, data/lalr1.cc: these.
3406 * doc/bison.texinfo (Environment Variables): Remove.
3407
9be0c25b
AD
34082002-06-25 Raja R Harinath <harinath@cs.umn.edu>
3409
3410 * src/getargs.c (report_argmatch): Initialize strtok().
3411
1ae72863
AD
34122002-06-20 Akim Demaille <akim@epita.fr>
3413
3414 * data/bison.simple (b4_symbol_actions): New, replaces...
3415 (b4_symbol_destructor, b4_symbol_printer): these.
3416 (yysymprint): Be sure to call YYPRINT only for tokens, and using
3417 user token numbers.
3418
87542d29
AD
34192002-06-20 Akim Demaille <akim@epita.fr>
3420
3421 * data/bison.simple (yydestructor): Rename as...
3422 (yydestruct): this.
3423
1a31ed21
AD
34242002-06-20 Akim Demaille <akim@epita.fr>
3425
3426 * src/symtab.h, src/symtab.c (symbol_type_set)
3427 (symbol_destructor_set, symbol_precedence_set): The location is
3428 the last argument.
3429 Adjust all callers.
3430
e776192e
AD
34312002-06-20 Akim Demaille <akim@epita.fr>
3432
3433 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
3434 internals.
3435 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
3436 Takes a location.
3437 * src/symtab.h, src/symtab.c (symbol_class_set)
3438 (symbol_user_token_number_set): Likewise.
3439 Adjust all callers.
3440 Promote complain_at.
3441 * tests/input.at (Type Clashes): Adjust.
3442
5c1180b3
AD
34432002-06-20 Akim Demaille <akim@epita.fr>
3444
3445 * data/bison.simple (YYLEX): Fix the declaration when
3446 %pure-parser.
3447
e3170060
AD
34482002-06-20 Akim Demaille <akim@epita.fr>
3449
3450 * data/bison.simple (yysymprint): Don't print the token number,
3451 just its name.
3452 * tests/actions.at (Destructors): Rename as...
3453 (Printers and Destructors): this.
3454 Also exercise %printer.
3455
253862fd
AD
34562002-06-20 Akim Demaille <akim@epita.fr>
3457
3458 * data/bison.simple (YYDSYMPRINT): New.
3459 Use it to remove many of the #if YYDEBUG/if (yydebug).
3460
366eea36
AD
34612002-06-20 Akim Demaille <akim@epita.fr>
3462
3463 * src/symtab.h, src/symtab.c (symbol_t): printer and
3464 printer_location are new members.
3465 (symbol_printer_set): New.
3466 * src/parse-gram.y (PERCENT_PRINTER): New token.
3467 Handle its associated rule.
3468 * src/scan-gram.l: Adjust.
3469 (handle_destructor_at, handle_destructor_dollar): Rename as...
3470 (handle_symbol_code_at, handle_symbol_code_dollar): these.
3471 * src/output.c (symbol_printers_output): New.
3472 (output_skeleton): Call it.
3473 * data/bison.simple (yysymprint): New. Cannot be named yyprint
3474 since there are already many grammar files with a user `yyprint'.
3475 Replace the calls to YYPRINT to calls to yysymprint.
3476 * tests/calc.at: Adjust.
3477 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
3478 taking advantage of parser very internal details (stack size!).
3479
4f25ebb0
AD
34802002-06-20 Akim Demaille <akim@epita.fr>
3481
3482 * src/scan-gram.l: Complete the scanner with the missing patterns
3483 to pacify Flex.
3484 Use `quote' and `symbol_tag_get' where appropriate.
3485
93b68a0e
AD
34862002-06-19 Akim Demaille <akim@epita.fr>
3487
3488 * tests/actions.at (Destructors): Augment to test locations.
3489 * data/bison.simple (yydestructor): Pass it the current location
3490 if locations are enabled.
3491 Prototype only when __STDC__ or C++.
3492 Change the argument names to move into the yy name space: there is
3493 user code here.
3494
58612f1d
AD
34952002-06-19 Akim Demaille <akim@epita.fr>
3496
74310291
AD
3497 * data/bison.simple (b4_pure_if): New.
3498 Use it instead of #ifdef YYPURE.
3499
35002002-06-19 Akim Demaille <akim@epita.fr>
3501
3502 * data/bison.simple (b4_location_if): New.
58612f1d
AD
3503 Use it instead of #ifdef YYLSP_NEEDED.
3504
f25bfb75
AD
35052002-06-19 Akim Demaille <akim@epita.fr>
3506
3507 Prepare @$ in %destructor, but currently don't bind it in the
3508 skeleton, as %location use is not cleaned up yet.
3509
3510 * src/scan-gram.l (handle_dollar, handle_destructor_at)
3511 (handle_action_at): New.
3512 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
3513 a braced_code_t and a location as additional arguments.
3514 (handle_destructor_dollar): Instead of requiring `b4_eval', just
3515 unquote one when outputting `b4_dollar_dollar'.
3516 Adjust callers.
3517 * data/bison.simple (b4_eval): Remove.
3518 (b4_symbol_destructor): Adjust.
3519 * tests/input.at (Invalid @n): Adjust.
3520
c732d2c6
AD
35212002-06-19 Zack Weinberg <zack@codesourcery.com>
3522
3523 * doc/bison.texinfo: Document ability to have multiple
3524 prologue sections.
3525
8c165d89
AD
35262002-06-18 Akim Demaille <akim@epita.fr>
3527
3528 * src/files.c (compute_base_names): When computing the output file
3529 names from the input file name, strip the directory part.
3530
ca98bf57
AD
35312002-06-18 Akim Demaille <akim@epita.fr>
3532
3533 * data/bison.simple.new: Comment changes.
3534 Reported by Andreas Schwab.
3535
0bfb02ff
AD
35362002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
3537
3538 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
3539 there are no `label `yyoverflowlab' defined but not used' warnings
3540 when yyoverflow is defined.
3541
24c0aad7
AD
35422002-06-18 Akim Demaille <akim@epita.fr>
3543
3544 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
3545 new member.
3546 (symbol_destructor_set): Adjust.
3547 * src/output.c (symbol_destructors_output): Output the destructor
3548 locations.
3549 Output the symbol name.
3550 * data/bison.simple (b4_symbol_destructor): Adjust.
3551
5719c109
AD
35522002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
3553 and Akim Demaille <akim@epita.fr>
3554
3555 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
3556 what's left on the stack when the error recovery hits EOF.
3557 * tests/actions.at (Destructors): Complete to exercise this case.
3558
9280d3ef
AD
35592002-06-17 Akim Demaille <akim@epita.fr>
3560
3561 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
3562 arguments is really empty, not only equal to `[]'.
3563 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
3564 member.
3565 (symbol_destructor_set): New.
3566 * src/output.c (symbol_destructors_output): New.
3567 * src/reader.h (brace_code_t, current_braced_code): New.
3568 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
3569 (handle_dollar): Rename as...
3570 (handle_action_dollar): this.
3571 (handle_destructor_dollar): New.
3572 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
3573 (grammar_declaration): Use it.
3574 * data/bison.simple (yystos): Is always defined.
3575 (yydestructor): New.
3576 * tests/actions.at (Destructors): New.
3577 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
3578
dafdc66f
AD
35792002-06-17 Akim Demaille <akim@epita.fr>
3580
3581 * src/symlist.h, src/symlist.c (symbol_list_length): New.
3582 * src/scan-gram.l (handle_dollar, handle_at): Compute the
3583 rule_length only when needed.
3584 * src/output.c (actions_output, token_definitions_output): Output
3585 the full M4 block.
3586 * src/symtab.c: Don't access directly to the symbol tag, use
3587 symbol_tag_get.
3588 * src/parse-gram.y: Use symbol_list_free.
3589
56c47203
AD
35902002-06-17 Akim Demaille <akim@epita.fr>
3591
3592 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
3593 (symbol_list_prepend, get_type_name): Move to...
3594 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
3595 (symbol_list_prepend, symbol_list_n_type_name_get): here.
3596 Adjust all callers.
3597 (symbol_list_free): New.
3598 * src/scan-gram.l (handle_dollar): Takes a location.
3599 * tests/input.at (Invalid $n): Adjust.
3600
1e0bab92
AD
36012002-06-17 Akim Demaille <akim@epita.fr>
3602
3603 * src/reader.h, src/reader.c (symbol_list_new): Export it.
3604 (symbol_list_prepend): New.
3605 * src/parse-gram.y (%union): `list' is a new member.
3606 (symbols.1): New, replaces...
3607 (terms_to_prec.1, nterms_to_type.1): these.
3608 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
3609 Take a location as additional argument.
3610 Adjust all callers.
3611
04e60654
AD
36122002-06-15 Akim Demaille <akim@epita.fr>
3613
3614 * src/parse-gram.y: Move %token in the declaration section so that
3615 we don't depend upon CVS Bison.
3616
10e5b8bd
AD
36172002-06-15 Akim Demaille <akim@epita.fr>
3618
3619 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
3620 * src/print.c (print_core): Use it.
3621
9801d40c
AD
36222002-06-15 Akim Demaille <akim@epita.fr>
3623
3624 * src/conflicts.c (log_resolution): Accept the rule involved in
3625 the sr conflicts instead of the lookahead number that points to
3626 that rule.
3627 (flush_reduce): Accept the current lookahead vector as argument,
3628 instead of the index in LA.
3629 (resolve_sr_conflict): Accept the current number of lookahead
3630 bitset to consider for the STATE, instead of the index in LA.
3631 (set_conflicts): Adjust.
3632 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
3633
c0263492
AD
36342002-06-15 Akim Demaille <akim@epita.fr>
3635
3636 * src/state.h (state_t): Replace the `lookaheadsp' member, a
3637 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
3638 Adjust all dependencies.
3639 * src/lalr.c (initialize_lookaheads): Split into...
3640 (states_lookaheads_count, states_lookaheads_initialize): these.
3641 (lalr): Adjust.
3642
9757c359
AD
36432002-06-15 Akim Demaille <akim@epita.fr>
3644
3645 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
3646 out of...
3647 (grammar_rules_print): here.
3648 * src/reduce.c (reduce_output): Use it.
3649 * tests/reduce.at (Useless Rules, Reduced Automaton)
3650 (Underivable Rules): Adjust.
3651
6b98e4b5
AD
36522002-06-15 Akim Demaille <akim@epita.fr>
3653
3654 Copy BYacc's nice way to report the grammar.
3655
3656 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
3657 New.
3658 Don't print the rules' location, it is confusing and useless.
3659 (rule_print): Use grammar_rhs_print.
3660 * src/print.c (print_grammar): Use grammar_rules_print.
3661
6b98e4b5
AD
36622002-06-15 Akim Demaille <akim@epita.fr>
3663
3664 Complete and rationalize `useless thing' warnings.
3665
3666 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
3667 (symbol_tag_print): New.
3668 Use them everywhere in place of accessing directly the tag member.
3669 * src/gram.h, src/gram.c (rule_print): New.
3670 Use it where a rule used to be printed `by hand'.
3671 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
3672 (reduce_grammar_tables): Report the useless rules.
3673 (reduce_print): Useless things are a warning, not an error.
3674 Report it as such.
3675 * tests/reduce.at (Useless Nonterminals, Useless Rules):
3676 (Reduced Automaton, Underivable Rules): Adjust.
3677 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
3678 * tests/conflicts.at (Unresolved SR Conflicts)
3679 (Solved SR Conflicts): Adjust.
3680
ee000ba4
AD
36812002-06-15 Akim Demaille <akim@epita.fr>
3682
3683 Let symbols have a location.
3684
3685 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
3686 (getsym): Adjust.
3687 Adjust all callers.
3688 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
3689 Use location_t, not int.
3690 * src/symtab.c (symbol_check_defined): Take advantage of the
3691 location.
3692 * tests/regression.at (Invalid inputs): Adjust.
3693
8efe435c
AD
36942002-06-15 Akim Demaille <akim@epita.fr>
3695
3696 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
3697 (input): Don't try to initialize yylloc here, do it in the
3698 scanner.
3699 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
3700 * src/gram.h (rule_t): Change line and action_line into location
3701 and action_location, of location_t type.
3702 Adjust all dependencies.
3703 * src/location.h, src/location.c (empty_location): New.
3704 * src/reader.h, src/reader.c (grammar_start_symbol_set)
3705 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
3706 (grammar_current_rule_symbol_append)
3707 (grammar_current_rule_action_append): Expect a location as argument.
3708 * src/reader.c (grammar_midrule_action): Adjust to attach an
3709 action's location as dummy symbol location.
3710 * src/symtab.h, src/symtab.c (startsymbol_location): New.
3711 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
3712 the line numbers.
3713
1921f1d7
AD
37142002-06-14 Akim Demaille <akim@epita.fr>
3715
3716 Grammar declarations may be found in the grammar section.
3717
3718 * src/parse-gram.y (rules_or_grammar_declaration): New.
3719 (declarations): Each declaration may end with a semicolon, not
3720 just...
3721 (grammar_declaration): `"%union"'.
3722 (grammar): Branch to rules_or_grammar_declaration.
3723
4515534c
AD
37242002-06-14 Akim Demaille <akim@epita.fr>
3725
3726 * src/main.c (main): Invoke scanner_free.
3727
f958596b
AD
37282002-06-14 Akim Demaille <akim@epita.fr>
3729
3730 * src/output.c (m4_invoke): Extracted from...
3731 (output_skeleton): here.
3732 Free tempfile.
3733
2c569025
AD
37342002-06-14 Akim Demaille <akim@epita.fr>
3735
3736 * src/parse-gram.y (directives, directive, gram)
3737 (grammar_directives, precedence_directives, precedence_directive):
3738 Rename as...
3739 (declarations, declaration, grammar, grammar_declaration)
3740 (precedence_declaration, precedence_declarator): these.
3741 (symbol_declaration): New.
3742
592e8d4d
AD
37432002-06-14 Akim Demaille <akim@epita.fr>
3744
3745 * src/files.c (action_obstack): Remove, unused.
3746 (output_obstack): Remove it, and all its dependencies, as it is no
3747 longer needed.
3748 * src/reader.c (epilogue_set): Build the epilogue in the
3749 muscle_obstack.
3750 * src/output.h, src/output.c (muscle_obstack): Move to...
3751 * src/muscle_tab.h, src/muscle_tab.h: here.
3752 (muscle_init): Initialize muscle_obstack.
3753 (muscle_free): New.
3754 * src/main.c (main): Call it.
3755
0c15323d
AD
37562002-06-14 Akim Demaille <akim@epita.fr>
3757
3758 * src/location.h: New, extracted from...
3759 * src/reader.h: here.
3760 * src/Makefile.am (noinst_HEADERS): Merge into
3761 (bison_SOURCES): this.
3762 Add location.h.
3763 * src/parse-gram.y: Use location_t instead of Bison's.
3764 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
3765 Use location_t instead of ints.
3766
e96c9728
AD
37672002-06-14 Akim Demaille <akim@epita.fr>
3768
3769 * data/bison.simple, data/bison.c++: Be sure to restore the
3770 current #line when returning to the skeleton contents after having
3771 exposed the input file's #line.
3772
75d1fe16
AD
37732002-06-12 Akim Demaille <akim@epita.fr>
3774
3775 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
3776 eager.
3777 * tests/actions.at (Exotic Dollars): New.
3778
6c35d22c
AD
37792002-06-12 Akim Demaille <akim@epita.fr>
3780
3781 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
3782 ['"/] too eagerly.
3783 * tests/input.at (Torturing the Scanner): New.
3784
1d6412ad
AD
37852002-06-11 Akim Demaille <akim@epita.fr>
3786
3787 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
3788 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
3789 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
3790 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
3791 * src/reader.c (reader): Use it.
3792
4cdb01db
AD
37932002-06-11 Akim Demaille <akim@epita.fr>
3794
3795 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
3796 Adjust all callers.
3797 (scanner_last_string_free): New.
3798
44995b2e
AD
37992002-06-11 Akim Demaille <akim@epita.fr>
3800
3801 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
3802 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
3803 (last_string, YY_OBS_FREE): New.
3804 Use them when returning an ID.
3805
e9955c83
AD
38062002-06-11 Akim Demaille <akim@epita.fr>
3807
3808 Have Bison grammars parsed by a Bison grammar.
3809
3810 * src/reader.c, src/reader.h (prologue_augment): New.
3811 * src/reader.c (copy_definition): Remove.
3812
3813 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
3814 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
3815 (grammar_current_rule_prec_set, grammar_current_rule_check)
3816 (grammar_current_rule_symbol_append)
3817 (grammar_current_rule_action_append): Export.
3818 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
3819 (symbol_list_action_append): Remove.
3820 Hook the routines from reader.
3821 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
3822 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
3823
3824 * src/reader.c (read_declarations): Remove, unused.
3825
3826 * src/parse-gram.y: Handle the epilogue.
3827 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
3828 (grammar_start_symbol_set): this.
3829 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
3830 * src/reader.c (readgram): Remove, unused.
3831 (reader): Adjust to insert eoftoken and axiom where appropriate.
3832
3833 * src/reader.c (copy_dollar): Replace with...
3834 * src/scan-gram.h (handle_dollar): this.
3835 * src/parse-gram.y: Remove `%thong'.
3836
3837 * src/reader.c (copy_at): Replace with...
3838 * src/scan-gram.h (handle_at): this.
3839
3840 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
3841 New.
3842
3843 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
3844 time being.
3845
3846 * src/reader.h, src/reader.c (grammar_rule_end): New.
3847
3848 * src/parse.y (current_type, current_class): New.
3849 Implement `%nterm', `%token' support.
3850 Merge `%term' into `%token'.
3851 (string_as_id): New.
3852 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
3853 type name.
3854
3855 * src/parse-gram.y: Be sure to handle properly the beginning of
3856 rules.
3857
3858 * src/parse-gram.y: Handle %type.
3859 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
3860
3861 * src/parse-gram.y: More directives support.
3862 * src/options.c: No longer handle source directives.
3863
3864 * src/parse-gram.y: Fix %output.
3865
3866 * src/parse-gram.y: Handle %union.
3867 Use the prologue locations.
3868 * src/reader.c (parse_union_decl): Remove.
3869
3870 * src/reader.h, src/reader.c (epilogue_set): New.
3871 * src/parse-gram.y: Use it.
3872
3873 * data/bison.simple, data/bison.c++: b4_stype is now either not
3874 defined, then default to int, or to the contents of %union,
3875 without `union' itself.
3876 Adjust.
3877 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
3878
3879 * src/output.c (actions_output): Don't output braces, as they are
3880 already handled by the scanner.
3881
3882 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
3883 characters to themselves.
3884
3885 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
3886 that the epilogue has a proper #line.
3887
3888 * src/parse-gram.y: Handle precedence/associativity.
3889
3890 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
3891 a terminal.
3892 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
3893 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
3894 at all to define terminals that cannot be emitted.
3895
3896 * src/scan-gram.l: Escape M4 characters.
3897
3898 * src/scan-gram.l: Working properly with escapes in user
3899 strings/characters.
3900
3901 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
3902 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
3903 grammar.
3904 Use more modest sizes, as for the time being the parser does not
3905 release memory, and therefore the process swallows a huge amount
3906 of memory.
3907
3908 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
3909 stricter %token grammar.
3910
3911 * src/symtab.h (associativity): Add `undef_assoc'.
3912 (symbol_precedence_set): Do nothing when passed an undef_assoc.
3913 * src/symtab.c (symbol_check_alias_consistence): Adjust.
3914
3915 * tests/regression.at (Invalid %directive): Remove, as it is now
3916 meaningless.
3917 (Invalid inputs): Adjust to the new error messages.
3918 (Token definitions): The new grammar doesn't allow too many
3919 eccentricities.
3920
3921 * src/lex.h, src/lex.c: Remove.
3922 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
3923 (copy_character, copy_string2, copy_string, copy_identifier)
3924 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
3925 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
3926 (parse_action): Remove.
3927 * po/POTFILES.in: Adjust.
3928
2e047461
AD
39292002-06-11 Akim Demaille <akim@epita.fr>
3930
3931 * src/reader.c (parse_action): Don't store directly into the
3932 rule's action member: return the action as a string.
3933 Don't require `rule_length' as an argument: compute it.
3934 (grammar_current_rule_symbol_append)
3935 (grammar_current_rule_action_append): New, eved out from
3936 (readgram): here.
3937 Remove `action_flag', `rulelength', unused now.
3938
9af3fbce
AD
39392002-06-11 Akim Demaille <akim@epita.fr>
3940
3941 * src/reader.c (grammar_current_rule_prec_set).
3942 (grammar_current_rule_check): New, eved out from...
3943 (readgram): here.
3944 Remove `xaction', `first_rhs': useless.
3945 * tests/input.at (Type clashes): New.
3946 * tests/existing.at (GNU Cim Grammar): Adjust.
3947
1485e106
AD
39482002-06-11 Akim Demaille <akim@epita.fr>
3949
3950 * src/reader.c (grammar_midrule_action): New, Eved out from
3951 (readgram): here.
3952
da4160c3
AD
39532002-06-11 Akim Demaille <akim@epita.fr>
3954
3955 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
3956 New.
3957 (readgram): Use them as replacement of inlined code, crule and
3958 crule1.
3959
f6d0f937
AD
39602002-06-11 Akim Demaille <akim@epita.fr>
3961
3962 * src/reader.c (grammar_end, grammar_symbol_append): New.
3963 (readgram): Use them.
3964 Make the use of `p' as local as possible.
3965
69078d4b
AD
39662002-06-10 Akim Demaille <akim@epita.fr>
3967
3968 GCJ's parser requires the tokens to be defined before the prologue.
3969
3970 * data/bison.simple: Output the token definition before the user's
3971 prologue.
3972 * tests/regression.at (Braces parsing, Duplicate string)
3973 (Mixing %token styles): Check the output from bison.
3974 (Early token definitions): New.
3975
5e424082
AD
39762002-06-10 Akim Demaille <akim@epita.fr>
3977
3978 * src/symtab.c (symbol_user_token_number_set): Don't complain when
3979 assigning twice the same user number to a token, so that we can
3980 use it in...
3981 * src/lex.c (lex): here.
3982 Also use `symbol_class_set' instead of hand written code.
3983 * src/reader.c (parse_assoc_decl): Likewise.
3984
44536b35
AD
39852002-06-10 Akim Demaille <akim@epita.fr>
3986
3987 * src/symtab.c, src/symtab.c (symbol_class_set)
3988 (symbol_user_token_number_set): New.
3989 * src/reader.c (parse_token_decl): Use them.
3990 Use a switch instead of ifs.
3991 Use a single argument.
3992
8b9f2372
AD
39932002-06-10 Akim Demaille <akim@epita.fr>
3994
3995 Remove `%thong' support as it is undocumented, unused, duplicates
3996 `%token's job, and creates useless e-mail traffic with people who
3997 want to know what it is, why it is undocumented, unused, and
3998 duplicates `%token's job.
3999
4000 * src/reader.c (parse_thong_decl): Remove.
4001 * src/options.c (option_table): Remove "thong".
4002 * src/lex.h (tok_thong): Remove.
4003
3ae2b51f
AD
40042002-06-10 Akim Demaille <akim@epita.fr>
4005
4006 * src/symtab.c, src/symtab.c (symbol_type_set)
4007 (symbol_precedence_set): New.
4008 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
4009 (value_components_used): Remove, unused.
4010
2f1afb73
AD
40112002-06-09 Akim Demaille <akim@epita.fr>
4012
4013 Move symbols handling code out of the reader.
4014
4015 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
4016 (axiom): Move to...
4017 * src/symtab.h, src/symtab.c: here.
4018
4019 * src/gram.c (start_symbol): Remove: use startsymbol->number.
4020 * src/reader.c (startval): Rename as...
4021 * src/symtab.h, src/symtab.c (startsymbol): this.
4022 * src/reader.c: Adjust.
4023
4024 * src/reader.c (symbol_check_defined, symbol_make_alias)
4025 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4026 (token_translations_init)
4027 Move to...
4028 * src/symtab.c: here.
4029 * src/reader.c (packsymbols): Move to...
4030 * src/symtab.h, src/symtab.c (symbols_pack): here.
4031 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
4032 argument.
4033
e9bca3ad
AD
40342002-06-03 Akim Demaille <akim@epita.fr>
4035
4036 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
4037 then statements.
4038
86eff183
AD
40392002-06-03 Akim Demaille <akim@epita.fr>
4040
4041 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
4042 structs with non literals.
4043 * src/scan-skel.l: never-interactive.
4044 * src/conflicts.c (enum conflict_resolution_e): No trailing
4045 comma.
4046 * src/getargs.c (usage): Split long literal strings.
4047 Reported by Hans Aberg.
4048
717be197
AD
40492002-05-28 Akim Demaille <akim@epita.fr>
4050
4051 * data/bison.c++: Use C++ ostreams.
4052 (cdebug_): New member.
4053
670ddffd
AD
40542002-05-28 Akim Demaille <akim@epita.fr>
4055
4056 * src/output.c (output_skeleton): Be sure to allocate enough room
4057 for `/' _and_ for `\0' in full_skeleton.
4058
769b430f
AD
40592002-05-28 Akim Demaille <akim@epita.fr>
4060
4061 * data/bison.c++: Catch up with bison.simple:
4062 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4063 and Paul Eggert <eggert@twinsun.com>: `error' handing.
4064 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
4065 and popping traces.
4066
7067cb36
PH
40672002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4068
4069 * src/output.c (output_skeleton): Put an explicit path in front of
4070 the skeleton file name, rather than relying on the -I directory,
4071 to partially alleviate effects of having a skeleton file lying around
4072 in the current directory.
769b430f 4073
4a713ec2
PH
40742002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4075
769b430f 4076 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
4077 obstack_printf should be obstack_fgrow1.
4078
b408954b
AD
40792002-05-26 Akim Demaille <akim@epita.fr>
4080
4081 * src/state.h (state_t): `solved_conflicts' is a new member.
4082 * src/LR0.c (new_state): Set it to 0.
4083 * src/conflicts.h, src/conflicts.c (print_conflicts)
4084 (free_conflicts, solve_conflicts): Rename as...
4085 (conflicts_print, conflicts_free, conflicts_solve): these.
4086 Adjust callers.
4087 * src/conflicts.c (enum conflict_resolution_e)
4088 (solved_conflicts_obstack): New, used by...
4089 (log_resolution): this.
4090 Adjust to attach the conflict resolution to each state.
4091 Complete the description with the precedence/associativity
4092 information.
4093 (resolve_sr_conflict): Adjust.
4094 * src/print.c (print_state): Output its solved_conflicts.
4095 * tests/conflicts.at (Unresolved SR Conflicts)
4096 (Solved SR Conflicts): Exercise --report=all.
4097
a49aecd5
AD
40982002-05-26 Akim Demaille <akim@epita.fr>
4099
4100 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4101 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
4102 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
4103 (token_number_t, item_number_as_token_number)
4104 (token_number_as_item_number, muscle_insert_token_number_table):
4105 Rename as...
4106 (symbol_number_t, item_number_as_symbol_number)
4107 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
4108 these, since it is more appropriate.
4109
5504898e
AD
41102002-05-26 Akim Demaille <akim@epita.fr>
4111
4112 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
4113 `Error:' lines.
4114 * data/bison.simple (yystos) [YYDEBUG]: New.
4115 (yyparse) [YYDEBUG]: Display the symbols which are popped during
4116 error recovery.
4117 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
4118
ec3bc396
AD
41192002-05-25 Akim Demaille <akim@epita.fr>
4120
4121 * doc/bison.texinfo (Debugging): Split into...
4122 (Tracing): this new section, its former contents, and...
4123 (Understanding): this new section.
4124 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
4125 by...
4126 (report_flag): this.
4127 Adjust all dependencies.
4128 (report_args, report_types, report_argmatch): New.
4129 (usage, getargs): Report/support -r, --report.
4130 * src/options.h
4131 (struct option_table_struct): Rename as..,
4132 (struct option_table_s): this.
4133 Rename the `set_flag' member to `flag' to match with getopt_long's
4134 struct.
4135 * src/options.c (option_table): Split verbose into an entry for
4136 %verbose, and another for --verbose.
4137 Support --report/-r, so remove -r from the obsolete --raw.
4138 * src/print.c: Attach full item sets and lookaheads reports to
4139 report_flag instead of trace_flag.
4140 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
4141
78df8250
PE
41422002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4143 and Paul Eggert <eggert@twinsun.com>
769b430f 4144
78df8250
PE
4145 * data/bison.simple (yyparse): Correct error handling to conform to
4146 POSIX and yacc. Specifically, after syntax error is discovered,
4147 do not reduce further before shifting the error token.
4148 Clean up the code a bit by removing the labels yyerrdefault,
4149 yyerrhandle, yyerrpop.
4150 * NEWS: Document the above.
4151
c0c9ea05
PH
41522002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4153
4154 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
4155 type; it isn't always big enough, since it doesn't necessarily
4156 include non-terminals.
769b430f 4157 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
4158 the latter can be removed.
4159 (yy_token_number_type): Remove, only one use.
4160 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
4161 don't use TokenNumberType as element type.
769b430f 4162
c0c9ea05
PH
4163 * tests/regression.at: Modify expected output to agree with change
4164 to yyr1 and yytranslate.
769b430f 4165
6390a83f
FK
41662002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
4167
4168 * src/reader.c (parse_action): Use copy_character instead of
4169 obstack_1grow.
4170
db7c8e9a
AD
41712002-05-13 Akim Demaille <akim@epita.fr>
4172
4173 * tests/regression.at (Token definitions): Prototype yylex and
4174 yyerror.
4175
fcc61800
PH
41762002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4177
158c687b 4178 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
4179 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
4180 32-bit arithmetic.
4181 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
4182
5683e9b2
AD
41832002-05-07 Akim Demaille <akim@epita.fr>
4184
4185 * tests/synclines.at: Be sure to prototype yylex and yyerror to
4186 avoid GCC warnings.
4187
0c2d3f4c
AD
41882002-05-07 Akim Demaille <akim@epita.fr>
4189
4190 Kill GCC warnings.
4191
4192 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
4193 over the RHS of each rule.
4194 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
4195 * src/state.h (state_t): Member `nitems' is unsigned short.
4196 * src/LR0.c (get_state): Adjust.
4197 * src/reader.c (packgram): Likewise.
4198 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
4199 `Type'.
4200 (muscle_insert_int_table): Remove, unused.
4201 (prepare_rules): Remove `max'.
4202
1565b720
AD
42032002-05-06 Akim Demaille <akim@epita.fr>
4204
4205 * src/closure.c (print_firsts): Display of the symbol tags.
4206 (bitmatrix_print): Move to...
4207 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
4208 here.
4209 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
4210
cfaee611
AD
42112002-05-06 Akim Demaille <akim@epita.fr>
4212
4213 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
4214 hash_do_for_each.
4215
458be8e0
AD
42162002-05-06 Akim Demaille <akim@epita.fr>
4217
4218 * src/LR0.c (new_state, get_state): Instead of using the global
4219 `kernel_size' and `kernel_base', have two new arguments:
4220 `core_size' and `core'.
4221 Adjust callers.
4222
a900a624
AD
42232002-05-06 Akim Demaille <akim@epita.fr>
4224
4225 * src/reader.c (packgram): No longer end `ritem' with a 0
4226 sentinel: it is not used.
4227
d4e7d3a1
AD
42282002-05-05 Akim Demaille <akim@epita.fr>
4229
4230 New experimental feature: display the lookaheads in the report and
4231 graph.
4232
4233 * src/print (print_core): When --trace-flag, display the rules
4234 lookaheads.
4235 * src/print_graph.c (print_core): Likewise.
4236 Swap the arguments.
4237 Adjust caller.
4238
39ceb25b
AD
42392002-05-05 Akim Demaille <akim@epita.fr>
4240
4241 * tests/torture.at (Many lookaheads): New test.
4242
5372019f
AD
42432002-05-05 Akim Demaille <akim@epita.fr>
4244
4245 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
4246 (GENERATE_MUSCLE_INSERT_TABLE): this.
4247 (output_int_table, output_unsigned_int_table, output_short_table)
4248 (output_token_number_table, output_item_number_table): Replace with...
4249 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
4250 (muscle_insert_short_table, muscle_insert_token_number_table)
4251 (muscle_insert_item_number_table): these.
4252 Adjust all callers.
4253 (prepare_tokens): Don't free `translations', since...
4254 * src/reader.h, src/reader.c (grammar_free): do it.
4255 Move to...
4256 * src/gram.h, src/gram.c (grammar_free): here.
4257 * data/bison.simple, data/bison.c++: b4_token_number_max is now
4258 b4_translate_max.
4259
5df5f6d5
AD
42602002-05-05 Akim Demaille <akim@epita.fr>
4261
4262 * src/output.c (output_unsigned_int_table): New.
4263 (prepare_rules): `i' is unsigned.
4264 `prhs', `rline', `r2' are unsigned int.
4265 Rename muscle `rhs_number_max' as `rhs_max'.
4266 Output muscles `prhs_max', `rline_max', and `r2_max'.
4267 Free rline and r1.
4268 * data/bison.simple, data/bison.c++: Adjust to use these muscles
4269 to compute types instead of constant types.
4270 * tests/regression.at (Web2c Actions): Adjust.
4271
b87f8b21
AD
42722002-05-04 Akim Demaille <akim@epita.fr>
4273
4274 * src/symtab.h (SALIAS, SUNDEF): Rename as...
4275 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
4276 Adjust dependencies.
4277 * src/output.c (token_definitions_output): Be sure not to output a
4278 `#define 'a'' when fed with `%token 'a' "a"'.
4279 * tests/regression.at (Token definitions): New.
4280
8bb936e4
PE
42812002-05-03 Paul Eggert <eggert@twinsun.com>
4282
4283 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
4284 for K&R C.
4285
42862002-05-03 gettextize <bug-gnu-gettext@gnu.org>
4287
4288 * Makefile.am (SUBDIRS): Remove intl.
4289 (EXTRA_DIST): Add config/config.rpath.
4290
53c71a12
AD
42912002-05-03 Akim Demaille <akim@epita.fr>
4292
4293 * data/bison.simple (m4_if): Don't output empty enums.
4294 And actually, output valid enum definitions :(.
4295
289dd0cf
AD
42962002-05-03 Akim Demaille <akim@epita.fr>
4297
4298 * configure.bat: Remove, completely obsolete.
4299 * Makefile.am (EXTRA_DIST): Adjust.
4300 Don't distribute config.rpath...
4301 * config/Makefile.am (EXTRA_DIST): Do it.
4302
db85e524
AD
43032002-05-03 Akim Demaille <akim@epita.fr>
4304
4305 * configure.in (GETTEXT_VERSION): New.
4306 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
4307
83ccf991
AD
43082002-05-03 Akim Demaille <akim@epita.fr>
4309
4310 * data/bison.simple (b4_token_enum): New.
4311 (b4_token_defines): Use it to output tokens both as #define and
4312 enums.
4313 Suggested by Paul Eggert.
4314 * src/output.c (token_definitions_output): Don't output spurious
4315 white spaces.
4316
1f418995
AD
43172002-05-03 Akim Demaille <akim@epita.fr>
4318
4319 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
4320
45119f04
RA
43212002-05-02 Robert Anisko <robert@lrde.epita.fr>
4322
4323 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
4324 Update the stack class, give a try to deque as the default container.
4325
b2d52318
AD
43262002-05-02 Akim Demaille <akim@epita.fr>
4327
4328 * data/bison.simple (yyparse): Do not implement @$ = @1.
4329 (YYLLOC_DEFAULT): Adjust to do it.
4330 * doc/bison.texinfo (Location Default Action): Fix.
4331
3a8b4109
AD
43322002-05-02 Akim Demaille <akim@epita.fr>
4333
4334 * src/reader.c (parse_braces): Merge into...
4335 (parse_action): this.
4336
84614e13
AD
43372002-05-02 Akim Demaille <akim@epita.fr>
4338
4339 * configure.in (ALL_LINGUAS): Remove.
4340 * po/LINGUAS, hr.po: New.
4341
fdbcd8e2
AD
43422002-05-02 Akim Demaille <akim@epita.fr>
4343
4344 Remove the so called hairy (semantic) parsers.
4345
4346 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
4347 * src/gram.h, src/gram.c (semantic_parser): Remove.
4348 (rule_t): Remove the guard and guard_line members.
4349 * src/lex.h (token_t): remove tok_guard.
4350 * src/options.c (option_table): Remove %guard and %semantic_parser
4351 support.
4352 * src/output.c, src/output.h (guards_output): Remove.
4353 (prepare): Adjust.
4354 (token_definitions_output): Don't output the `T'
4355 tokens (???).
4356 (output_skeleton): Don't output the guards.
4357 * src/files.c, src/files.c (attrsfile): Remove.
4358 * src/reader.c (symbol_list): Remove the guard and guard_line
4359 members.
4360 Adjust dependencies.
4361 (parse_guard): Remove.
4362 * data/bison.hairy: Remove.
4363 * doc/bison.texinfo (Environment Variables): Remove occurrences of
4364 BISON_HAIRY.
4365
82b6cb3f
AD
43662002-05-02 Akim Demaille <akim@epita.fr>
4367
4368 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
4369 (parse_guard): Rename the formal argument `stack_offset' as
4370 `rule_length', which is more readable.
4371 Adjust callers.
4372 (copy_at, copy_dollar): Instead of outputting the hard coded
4373 values of $$, $n and so forth, output invocation to b4_lhs_value,
4374 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
4375 Note: this patch partially drops `semantic-parser' support: it
4376 always does `rule_length - n', where semantic parsers ought to
4377 always use `-n'.
82b6cb3f
AD
4378 * data/bison.simple, data/bison.c++ (b4_lhs_value)
4379 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
4380
6cbfbcc5
AD
43812002-05-02 Akim Demaille <akim@epita.fr>
4382
4383 * configure.in (AC_INIT): Bump to 1.49b.
4384 (AM_INIT_AUTOMAKE): Short invocation.
4385
b8548114
AD
43862002-05-02 Akim Demaille <akim@epita.fr>
4387
4388 Version 1.49a.
4389
c20cd1fa
AD
43902002-05-01 Akim Demaille <akim@epita.fr>
4391
4392 * src/skeleton.h: Remove.
4393
8a9566d4
AD
43942002-05-01 Akim Demaille <akim@epita.fr>
4395
4396 * src/skeleton.h: Fix the #endif.
4397 Reported by Magnus Fromreide.
4398
8c6d399a
PE
43992002-04-26 Paul Eggert <eggert@twinsun.com>
4400
4401 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
4402 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 4403 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 4404
2b7ed18a
RA
44052002-04-25 Robert Anisko <robert@lrde.epita.fr>
4406
4407 * src/scan-skel.l: Postprocess quadrigraphs.
4408
4409 * src/reader.c (copy_character): New function, used to output
4410 single characters while replacing `[' and `]' with quadrigraphs, to
4411 avoid troubles with M4 quotes.
4412 (copy_comment): Output characters with copy_character.
4413 (read_additionnal_code): Likewise.
4414 (copy_string2): Likewise.
4415 (copy_definition): Likewise.
4416
4417 * tests/calc.at: Exercise M4 quoting.
4418
34a89c50
AD
44192002-04-25 Akim Demaille <akim@epita.fr>
4420
4421 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
4422 between `!' and the command.
4423 Reported by Paul Eggert.
4424
0dd1580a
RA
44252002-04-24 Robert Anisko <robert@lrde.epita.fr>
4426
4427 * tests/calc.at: Exercise prologue splitting.
4428
4429 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
4430 `b4_post_prologue' instead of `b4_prologue'.
4431
4432 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
4433 muscles.
4434 (output): Free pre_prologue_obstack and post_prologue_obstack.
4435 * src/files.h, src/files.c (attrs_obstack): Remove.
4436 (pre_prologue_obstack, post_prologue_obstack): New.
4437 * src/reader.c (copy_definition): Add a parameter to specify the
4438 obstack to fill, instead of using attrs_obstack unconditionally.
4439 (read_declarations): Pass pre_prologue_obstack to copy_definition if
4440 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
4441
83c1796f
PE
44422002-04-23 Paul Eggert <eggert@twinsun.com>
4443
4444 * data/bison.simple: Remove unnecessary commentary and white
4445 space differences from 1_29-branch.
4446 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
4447
4448 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
4449 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
4450 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
4451 constructors or destructors.
4452
4453 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
4454
1207eeac
AD
44552002-04-23 Akim Demaille <akim@epita.fr>
4456
4457 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
4458 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
4459 location with columns.
4460 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
4461 All reported by Paul Eggert.
4462
78ab8f67
AD
44632002-04-22 Akim Demaille <akim@epita.fr>
4464
4465 * src/reduce.c (dump_grammar): Move to...
4466 * src/gram.h, src/gram.c (grammar_dump): here.
4467 Be sure to separate long item numbers.
4468 Don't read the members of a rule's prec if its nil.
4469
133c20e2
AD
44702002-04-22 Akim Demaille <akim@epita.fr>
4471
4472 * src/output.c (table_size, table_grow): New.
4473 (MAXTABLE): Remove, replace uses with table_size.
4474 (pack_vector): Instead of dying when the table is too big, grow it.
4475
9515e8a7
AD
44762002-04-22 Akim Demaille <akim@epita.fr>
4477
4478 * data/bison.simple (yyr1): Its type is that of a token number.
4479 * data/bison.c++ (r1_): Likewise.
4480 * tests/regression.at (Web2c Actions): Adjust.
4481
23c5a174
AD
44822002-04-22 Akim Demaille <akim@epita.fr>
4483
4484 * src/reader.c (token_translations_init): 256 is now the default
4485 value for the error token, i.e., it will be assigned another
4486 number if the user assigned 256 to one of her tokens.
4487 (reader): Don't force 256 to error.
4488 * doc/bison.texinfo (Symbols): Adjust.
4489 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
4490 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
4491 etc. instead of 10, 20, 30 (which was used to `jump' over error
4492 (256) and undefined (2)).
4493
5fbb0954
AD
44942002-04-22 Akim Demaille <akim@epita.fr>
4495
4496 Propagate more token_number_t.
4497
4498 * src/gram.h (token_number_as_item_number)
4499 (item_number_as_token_number): New.
4500 * src/output.c (GENERATE_OUTPUT_TABLE): New.
4501 Use it to create output_item_number_table and
4502 output_token_number_table.
4503 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4504 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
4505 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
4506 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
4507
4f940944
AD
45082002-04-22 Akim Demaille <akim@epita.fr>
4509
4510 * src/output.h, src/output.c (get_lines_number): Remove.
4511
3ded9a63
AD
45122002-04-19 Akim Demaille <akim@epita.fr>
4513
4514 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
4515 as Lex/Flex'.
4516 (Debugging): More details about enabling the debugging features.
4517 (Table of Symbols): Describe $$, $n, @$, and @n.
4518 Suggested by Tim Josling.
4519
e0c471a9
AD
45202002-04-19 Akim Demaille <akim@epita.fr>
4521
4522 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
4523
fecc10cd
AD
45242002-04-10 Akim Demaille <akim@epita.fr>
4525
4526 * src/system.h: Rely on HAVE_LIMITS_H.
4527 Suggested by Paul Eggert.
4528
51dec47b
AD
45292002-04-09 Akim Demaille <akim@epita.fr>
4530
4531 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
4532 full stderr, and strip it according to the bison options, instead
4533 of composing the error message from different bits.
4534 This makes it easier to check for several error messages.
4535 Adjust all the invocations.
4536 Add an invocation exercising the error token.
4537 Add an invocation demonstrating a stupid error message.
4538 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
4539 Adjust the tests.
4540 Error message are for stderr, not stdout.
4541
007a50a4
AD
45422002-04-09 Akim Demaille <akim@epita.fr>
4543
4544 * src/gram.h, src/gram.c (error_token_number): Remove, use
4545 errtoken->number.
4546 * src/reader.c (reader): Don't specify the user token number (2)
4547 for $undefined, as it uselessly prevents using it.
4548 * src/gram.h (token_number_t): Move to...
4549 * src/symtab.h: here.
4550 (state_t.number): Is a token_number_t.
4551 * src/print.c, src/reader.c: Use undeftoken->number instead of
4552 hard coded 2.
4553 (Even though this 2 is not the same as above: the number of the
4554 undeftoken remains being 2, it is its user token number which
4555 might not be 2).
4556 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
4557 `user_token_number_max'.
4558 Output `undef_token_number'.
4559 * data/bison.simple, data/bison.c++: Use them.
4560 Be sure to map invalid yylex return values to
4561 `undef_token_number'. This saves us from gratuitous SEGV.
4562
4563 * tests/conflicts.at (Solved SR Conflicts)
4564 (Unresolved SR Conflicts): Adjust.
4565 * tests/regression.at (Web2c Actions): Adjust.
4566
06446ccf
AD
45672002-04-08 Akim Demaille <akim@epita.fr>
4568
4569 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
4570 Adding #line.
4571 Remove the duplicate `typedefs'.
4572 (RhsNumberType): Fix the declaration and various other typos.
4573 Use __ofile__.
4574 * data/bison.simple: Use __ofile__.
4575 * src/scan-skel.l: Handle __ofile__.
4576
62a3e4f0
AD
45772002-04-08 Akim Demaille <akim@epita.fr>
4578
4579 * src/gram.h (item_number_t): New, the type of item numbers in
4580 RITEM. Note that it must be able to code symbol numbers as
4581 positive number, and the negation of rule numbers as negative
4582 numbers.
4583 Adjust all dependencies (pretty many).
4584 * src/reduce.c (rule): Remove this `short *' pointer: use
4585 item_number_t.
4586 * src/system.h (MINSHORT, MAXSHORT): Remove.
4587 Include `limits.h'.
4588 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
4589 (shortcpy): Remove.
4590 (MAXTABLE): Move to...
4591 * src/output.c (MAXTABLE): here.
4592 (prepare_rules): Use output_int_table to output rhs.
4593 * data/bison.simple, data/bison.c++: Adjust.
4594 * tests/torture.at (Big triangle): Move the limit from 254 to
4595 500.
4596 * tests/regression.at (Web2c Actions): Ajust.
4597
4598 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
4599 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
4600 passes, but produces negative #line number, once fixed, GCC is
4601 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
4602 C), it passes.
4603 * src/state.h (state_h): Code input lines on ints, not shorts.
4604
bb88b0fc
AD
46052002-04-08 Akim Demaille <akim@epita.fr>
4606
4607 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
4608 and then the grammar.
4609
9a636f47
AD
46102002-04-08 Akim Demaille <akim@epita.fr>
4611
4612 * src/system.h: No longer using strndup.
4613
680e8701
AD
46142002-04-07 Akim Demaille <akim@epita.fr>
4615
4616 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
4617 * src/output.c (output_table_data): Return the longest number.
4618 (prepare_tokens): Output `token_number_max').
4619 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
4620 New.
4621 Use them to define yy_token_number_type/TokenNumberType.
4622 Use this type for yytranslate.
4623 * tests/torture.at (Big triangle): Push the limit from 124 to
4624 253.
4625 * tests/regression.at (Web2c Actions): Adjust.
4626
817e9f41
AD
46272002-04-07 Akim Demaille <akim@epita.fr>
4628
4629 * tests/torture.at (Big triangle): New.
4630 (GNU AWK Grammar, GNU Cim Grammar): Move to...
4631 * tests/existing.at: here.
4632
5123689b
AD
46332002-04-07 Akim Demaille <akim@epita.fr>
4634
4635 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
4636 nritems.
4637 Adjust dependencies.
4638
f3849179
AD
46392002-04-07 Akim Demaille <akim@epita.fr>
4640
4641 * src/reader.c: Normalize increments to prefix form.
4642
bd02036a
AD
46432002-04-07 Akim Demaille <akim@epita.fr>
4644
4645 * src/reader.c, symtab.c: Remove debugging code.
4646
db8837cb
AD
46472002-04-07 Akim Demaille <akim@epita.fr>
4648
4649 Rename all the `bucket's as `symbol_t'.
4650
4651 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
4652 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
4653 * src/symtab.c, src/symtab.h (bucket): Rename as...
4654 (symbol_t): this.
4655 (symbol_list_new, bucket_check_defined, bucket_make_alias)
4656 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
4657 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
4658 (buckets_new, buckets_free, buckets_do): Rename as...
4659 (symbol_list_new, symbol_check_defined, symbol_make_alias)
4660 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4661 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
4662 (symbols_new, symbols_free, symbols_do): these.
4663
72a23c97
AD
46642002-04-07 Akim Demaille <akim@epita.fr>
4665
4666 Use lib/hash for the symbol table.
4667
4668 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
4669 EOF.
4670 * src/lex.c (lex): Set the `number' member of new terminals.
4671 * src/reader.c (bucket_check_defined, bucket_make_alias)
4672 (bucket_check_alias_consistence, bucket_translation): New.
4673 (reader, grammar_free, readgram, token_translations_init)
4674 (packsymbols): Adjust.
4675 (reader): Number the predefined tokens.
4676 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
4677 for predefined tokens.
4678 * src/symtab.h (bucket): Remove all the hash table related
4679 members.
4680 * src/symtab.c (symtab): Replace by...
4681 (bucket_table): this.
4682 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
4683 (buckets_new, buckets_do): New.
4684
280a38c3
AD
46852002-04-07 Akim Demaille <akim@epita.fr>
4686
4687 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
4688 (start_symbol, max_user_token_number, semantic_parser)
4689 (error_token_number): Initialize.
4690 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
4691 Initialize.
4692 (reader): Don't.
4693 (errtoken, eoftoken, undeftoken, axiom): Extern.
4694
03b31c0c
AD
46952002-04-07 Akim Demaille <akim@epita.fr>
4696
4697 * src/gram.h (rule_s): prec and precsym are now pointers
4698 to the bucket giving the priority/associativity.
4699 Member `associativity' removed: useless.
4700 * src/reduce.c, src/conflicts.c: Adjust.
4701
8b3df748
AD
47022002-04-07 Akim Demaille <akim@epita.fr>
4703
4704 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
4705 Properly escape the symbols' TAG when outputting them.
4706
e601aa1d
AD
47072002-04-07 Akim Demaille <akim@epita.fr>
4708
4709 * src/lalr.h (LA): Is a bitsetv, not bitset*.
4710
b0299a2e
AD
47112002-04-07 Akim Demaille <akim@epita.fr>
4712
4713 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
4714 (LArule): this, which is an array to rule_t*.
4715 * src/print.c, src/conflicts.c: Adjust.
4716
d7e1f00c
AD
47172002-04-07 Akim Demaille <akim@epita.fr>
4718
4719 * src/gram.h (rule_t): Rename `number' as `user_number'.
4720 `number' is a new member.
4721 Adjust dependencies.
4722 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
4723
cc9305dd
AD
47242002-04-07 Akim Demaille <akim@epita.fr>
4725
4726 As a result of the previous patch, it is no longer needed
4727 to reorder ritem itself.
4728
4729 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
4730
b0940840
AD
47312002-04-07 Akim Demaille <akim@epita.fr>
4732
4733 Be sure never to walk through RITEMS, but use only data related to
4734 the rules themselves. RITEMS should be banished.
4735
4736 * src/output.c (output_token_translations): Rename as...
4737 (prepare_tokens): this.
4738 In addition to `translate', prepare the muscles `tname' and
4739 `toknum', which were handled by...
4740 (output_rule_data): this.
4741 Remove, and move the remainder of its outputs into...
4742 (prepare_rules): this new routines, which also merges content from
4743 (output_gram): this.
4744 (prepare_rules): Be sure never to walk through RITEMS.
4745 (output_stos): Rename as...
4746 (prepare_stos): this.
4747 (output): Always invoke prepare_states, after all, just don't use it
4748 in the output if you don't need it.
4749
643a5994
AD
47502002-04-07 Akim Demaille <akim@epita.fr>
4751
4752 * src/LR0.c (new_state): Display `nstates' as the name of the
4753 newly created state.
4754 Adjust to initialize first_state and last_state if needed.
4755 Be sure to distinguish the initial from the final state.
4756 (new_states): Create the itemset of the initial state, and use
4757 new_state.
4758 * src/closure.c (closure): Now that the initial state has its
4759 items properly set, there is no need for a special case when
4760 creating `ruleset'.
4761
4762 As a result, now the rule 0, reducing to $axiom, is visible in the
4763 outputs. Adjust the test suite.
4764
4765 * tests/conflicts.at (Solved SR Conflicts)
4766 (Unresolved SR Conflicts): Adjust.
4767 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
4768 * tests/conflicts.at (S/R in initial): New.
4769
b4c4ccc2
AD
47702002-04-07 Akim Demaille <akim@epita.fr>
4771
4772 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
4773 the RHS of the rules.
4774 * src/output.c (output_gram): Likewise.
4775
bba97eb2
AD
47762002-04-07 Akim Demaille <akim@epita.fr>
4777
4778 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
4779 bucket.
4780 Adjust all dependencies.
4781 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
4782 `number' of the buckets too.
4783 * src/gram.h: Include `symtab.h'.
4784 (associativity): Move to...
4785 * src/symtab.h: here.
4786 No longer include `gram.h'.
4787
c3b407f4
AD
47882002-04-07 Akim Demaille <akim@epita.fr>
4789
4790 * src/gram.h, src/gram.c (rules_rhs_length): New.
4791 (ritem_longest_rhs): Use it.
4792 * src/gram.h (rule_t): `number' is a new member.
4793 * src/reader.c (packgram): Set it.
4794 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
4795 the end of `rules', and count them out of `nrules'.
4796 (reduce_output, dump_grammar): Adjust.
4797 * src/print.c (print_grammar): It is no longer needed to check for
4798 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
4799 * tests/reduce.at (Reduced Automaton): New test.
4800
11652ab3
AD
48012002-04-07 Akim Demaille <akim@epita.fr>
4802
4803 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
4804 lacking `+ 1' to nrules, Bison reported as useless a token if it
4805 was used solely to set the precedence of the last rule...
4806
26b23c1a
AD
48072002-04-07 Akim Demaille <akim@epita.fr>
4808
4809 * data/bison.c++, data/bison.simple: Don't output the current file
4810 name in #line, to avoid useless diffs between two identical
4811 outputs under different names.
4812
18bcecb0
AD
48132002-04-07 Akim Demaille <akim@epita.fr>
4814
4815 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
4816 Normalize loops to using `< nrules + 1', not `<= nrules'.
4817
fa770c86
AD
48182002-04-07 Akim Demaille <akim@epita.fr>
4819
4820 * TODO: Update.
4821
d9b739c3
AD
48222002-04-07 Akim Demaille <akim@epita.fr>
4823
4824 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
4825 bucket.value as bucket.number.
4826
99013900
AD
48272002-04-07 Akim Demaille <akim@epita.fr>
4828
4829 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
4830 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
4831 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
4832 RHS, instead of being an index in RITEMS.
4833
e966383b
PE
48342002-04-04 Paul Eggert <eggert@twinsun.com>
4835
4836 * doc/bison.texinfo: Update copyright date.
4837 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
4838 (Symbols): Warn about running Bison in one character set,
4839 but compiling and/or running in an incompatible one.
4840 Warn about character code 256, too.
4841
48422002-04-03 Paul Eggert <eggert@twinsun.com>
4843
4844 * src/bison.data (YYSTACK_ALLOC): Depend on whether
4845 YYERROR_VERBOSE is nonzero, not whether it is defined.
4846
4847 Merge changes from bison-1_29-branch.
c307773e 4848
8d6c48b9
PE
48492002-03-20 Paul Eggert <eggert@twinsun.com>
4850
4851 Merge fixes from Debian bison_1.34-1.diff.
4852
4853 * configure.in (AC_PREREQ): 2.53.
4854
e53c6322
AD
48552002-03-20 Akim Demaille <akim@epita.fr>
4856
4857 * src/conflicts.c (log_resolution): Argument `resolution' is const.
4858
9ffbeca7
PE
48592002-03-19 Paul Eggert <eggert@twinsun.com>
4860
21db0b2a
PE
4861 * src/bison.simple (YYCOPY): New macro.
4862 (YYSTACK_RELOCATE): Use it.
4863 Remove Type arg; no longer needed. All callers changed.
4864 (yymemcpy): Remove; no longer needed.
4865
9ffbeca7
PE
4866 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
4867 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
4868
642cb8f8
AD
48692002-03-19 Akim Demaille <akim@epita.fr>
4870
4871 Test and fix the #line outputs.
4872
4873 * tests/atlocal.at (GCC): New.
4874 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
4875 (Prologue synch line, ,%union synch line, Postprologue synch line)
4876 (Action synch line, Epilogue synch line): New tests.
4877 * src/reader.c (parse_union_decl): Define the muscle stype_line.
4878 * data/bison.simple, data/bison.c++: Use it.
4879
3c31a486
AD
48802002-03-19 Akim Demaille <akim@epita.fr>
4881
4882 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
4883 (Solved SR Conflicts, %expect not enough, %expect right)
4884 (%expect too much): Move to...
4885 * tests/conflicts.at: this new file.
4886
0d8bed56
AD
48872002-03-19 Akim Demaille <akim@epita.fr>
4888
4889 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
4890 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
4891 that we can move to enums for instance.
4892 * src/output.c (token_definitions_output): Output a list of
4893 `token-name, token-number' instead of the #define.
4894 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
4895
9208d17f
AD
48962002-03-14 Akim Demaille <akim@epita.fr>
4897
4898 Use Gettext 0.11.1.
4899
af27eacb
RA
49002002-03-09 Robert Anisko <robert@lrde.epita.fr>
4901
4902 * data/bison.c++: Make the user able to add members to the generated
4903 parser by subclassing.
4904
9101a310
RA
49052002-03-05 Robert Anisko <robert@lrde.epita.fr>
4906
4907 * src/reader.c (read_additionnal_code): `c' should be an integer, not
4908 a character.
4909 Reported by Nicolas Tisserand and Nicolas Burrus.
4910
fff9bf0b
RA
49112002-03-04 Robert Anisko <robert@lrde.epita.fr>
4912
4913 * src/reader.c: Warn about lacking semi-colons, do not complain.
4914
64dba31e
RA
49152002-03-04 Robert Anisko <robert@lrde.epita.fr>
4916
4917 * data/bison.c++: Remove a debug line.
4918
374f5a14
RA
49192002-03-04 Robert Anisko <robert@lrde.epita.fr>
4920
4921 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
4922 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
4923 provide a default implementation.
4924
bfcf1f3a
AD
49252002-03-04 Akim Demaille <akim@epita.fr>
4926
4927 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
4928 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
4929 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
4930 * tests/semantic.at (Parsing Guards): Similarly.
4931 * src/reader.at (readgram): Complain if the last rule is not ended
4932 with a semi-colon.
4933
65ccf9fc
AD
49342002-03-04 Akim Demaille <akim@epita.fr>
4935
4936 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
4937 * src/closure.c: here.
4938 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
4939 RTC.
4940 * src/warshall.h, src/warshall.c: Remove.
4941 * tests/sets.at (Broken Closure): Adjust.
4942
d0039cbc
AD
49432002-03-04 Akim Demaille <akim@epita.fr>
4944
4945 * src/output.c (output_skeleton): tempdir is const.
4946 bytes_read is unused.
4947
345cea78
AD
49482002-03-04 Akim Demaille <akim@epita.fr>
4949
4950 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
4951 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
4952 Update.
4953 From Michael Hayes.
4954
564801f7
AD
49552002-03-04 Akim Demaille <akim@epita.fr>
4956
4957 * src/closure.c (closure): `r' is unused.
4958
e5352bc7
AD
49592002-03-04 Akim Demaille <akim@epita.fr>
4960
4961 * tests/sets.at (Broken Closure): Add the ending `;'.
4962 * src/reader.at (readgram): Complain if a rule is not ended with a
4963 semi-colon.
4964
914feea9
AD
49652002-03-04 Akim Demaille <akim@epita.fr>
4966
4967 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
4968 (count_sr_conflicts): Use bitset_count.
4969 * src/reduce.c (inaccessable_symbols): Ditto.
4970 (bits_size): Remove.
4971 * src/warshall.h, src/warshall.c: Convert to bitsetv.
4972
f0250de6
AD
49732002-03-04 Akim Demaille <akim@epita.fr>
4974
4975 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
4976 * src/reduce.c: Remove the `bitset_zero's following the
4977 `bitset_create's, as now it is performed by the latter.
4978
ef017502
AD
49792002-03-04 Akim Demaille <akim@epita.fr>
4980
4981 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
4982 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
4983 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
4984 latest sources from Michael.
4985
76514394
AD
49862002-03-04 Akim Demaille <akim@epita.fr>
4987
4988 * src/output.c (output): Don't free the grammar.
4989 * src/reader.c (grammar_free): New.
4990 * src/main.c (main): Call it and don't free symtab here.
4991
55024580
AD
49922002-03-04 Akim Demaille <akim@epita.fr>
4993
4994 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
4995 before returning.
4996 Reported by Benoit Perrot.
4997
f9abaa2c
AD
49982002-03-04 Akim Demaille <akim@epita.fr>
4999
5000 Use bitset operations when possible, not loops over bits.
5001
5002 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
5003 bitset_or.
5004 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
5005 * src/reduce.c (useless_nonterminals): Formatting changes.
5006 * src/warshall.c (TC): Use bitset_or.
5007
0e721e75
AD
50082002-03-04 Akim Demaille <akim@epita.fr>
5009
5010 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
5011 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
5012 Ditto.
5013
0fb1ffb1
AD
50142002-03-04 Akim Demaille <akim@epita.fr>
5015
5016 * src/lalr.c (F): Now a bitset*.
5017 Adjust all dependencies.
5018
b86796bf
AD
50192002-03-04 Akim Demaille <akim@epita.fr>
5020
5021 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
5022 Adjust all dependencies.
5023
602bbf31
AD
50242002-03-04 Akim Demaille <akim@epita.fr>
5025
5026 * src/L0.c, src/LR0.h (nstates): Be size_t.
5027 Adjust comparisons (signed vs unsigned).
5028 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
5029 bitset*.
5030 Adjust all dependencies.
5031
d8a0245c
AD
50322002-03-04 Akim Demaille <akim@epita.fr>
5033
5034 * src/closure.c (firsts): Now, also a bitset.
5035 Adjust all dependencies.
5036 (varsetsize): Remove, now unused.
5037 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
5038
34ba9743
AD
50392002-03-04 Akim Demaille <akim@epita.fr>
5040
5041 * src/print.c: Convert to use bitset.h, not hand coded iterations
5042 over ints.
5043
ed86e78c
AD
50442002-03-04 Akim Demaille <akim@epita.fr>
5045
5046 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
5047
dfdb1797
AD
50482002-03-04 Akim Demaille <akim@epita.fr>
5049
5050 * src/closure.c (ruleset): Be a bitset.
5051 (rulesetsize): Remove.
5052
7086e707
AD
50532002-03-04 Akim Demaille <akim@epita.fr>
5054
5055 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5056 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
5057 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
5058 * src/closure.c (fderives): Be an array of bitsets.
5059
98254360
RA
50602002-02-28 Robert Anisko <robert@lrde.epita.fr>
5061
5062 * data/bison.c++: Merge the two generated headers. Insert a copyright
5063 notice in each output file.
5064
a75c057f
AD
50652002-02-28 Akim Demaille <akim@epita.fr>
5066
5067 * data/bison.c++: Copy the prologue of bison.simple to fetch
5068 useful M4 definitions, such as b4_header_guard.
5069
06b00abc
AD
50702002-02-25 Akim Demaille <akim@epita.fr>
5071
5072 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
5073 translator friendly scheme for the bgr
5074 copyright notice.
06b00abc 5075
70e7d534
AD
50762002-02-25 Akim Demaille <akim@epita.fr>
5077
5078 * src/output.c (header_output): Remove, now handled completely via
5079 M4.
5080
abe017f6
AD
50812002-02-25 Akim Demaille <akim@epita.fr>
5082
5083 * m4/m4.m4: New, from CVS Autoconf.
5084 * configure.in: Invoke it.
5085 * src/output.c (output_skeleton): Use its result instead of the
5086 hard coded name.
5087
381fb12e
AD
50882002-02-25 Akim Demaille <akim@epita.fr>
5089
5090 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
5091 Fileutils 4.1.5.
5092 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
5093 * src/output.c (output_skeleton): Use mkstemp to create a real
5094 temporary file.
5095 Move the filling of `skeleton' and its muscle to...
5096 (prepare): here.
5097 (output): Move the definition of the prologue muscle to...
5098 (prepare): here.
5099 * src/system.h (DEFAULT_TMPDIR): New.
5100
6f38107f
PE
51012002-02-14 Paul Eggert <eggert@twinsun.com>
5102
5103 Remove the support for C++ namespace cleanliness; it was
5104 causing more problems than it was curing, since it didn't work
5105 properly on some nonstandard C++ compilers. This can wait
5106 for a proper C++ parser.
5107
5108 * NEWS: Document this.
5109 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
5110 of C++, as it's treated like C now.
5111 * src/bison.simple (YYSTD): Remove.
5112 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
5113 Treat C++ just like Standard C instead of trying to support
5114 namespace cleanliness.
5115
80cce3da
AD
51162002-02-14 Akim Demaille <akim@epita.fr>
5117
5118 * tests/regression.at (else): Adjust to Andreas' change.
5119
842e8679
AD
51202002-02-14 Akim Demaille <akim@epita.fr>
5121
5122 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
5123
4bda3f10
AD
51242002-02-13 Andreas Schwab <schwab@suse.de>
5125
5126 * src/output.c (output_rule_data): Don't output NULL, it might
5127 not be defined yet.
5128
4162fa07 51292002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 5130
4162fa07
RA
5131 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
5132 (Copyright notice): Update.
b418ecd8 5133
bd16a5dc
AD
51342002-02-11 Akim Demaille <akim@epita.fr>
5135
5136 * tests/regression.at (%nonassoc and eof): Don't include
5137 nonportable headers.
5138
8d69a1a3
RA
51392002-02-08 Robert Anisko <robert@lrde.epita.fr>
5140
5141 * data/bison.c++: Correct error recovery. Make the user able to
5142 initialize the starting location.
5143
9b2d0677
AD
51442002-02-07 Akim Demaille <akim@epita.fr>
5145
5146 * tests/input.at: New.
5147
69e2658b
RA
51482002-02-07 Robert Anisko <robert@lrde.epita.fr>
5149
5150 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 5151 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
5152 directives around tables only needed for debugging.
5153
4aacc3a7
RA
51542002-02-07 Robert Anisko <robert@lrde.epita.fr>
5155
5156 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
5157 C++ parsers.
5158 (yy::b4_name::parse): Use print_.
5159
762a801e
RA
51602002-02-07 Robert Anisko <robert@lrde.epita.fr>
5161
5162 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
5163
4bb2bc3f
RA
51642002-02-07 Robert Anisko <robert@lrde.epita.fr>
5165
5166 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
5167 C++ parsers.
5168 (yy::b4_name::parse): Build verbose error messages, and use error_.
5169
6b45a3ca
RA
51702002-02-06 Robert Anisko <robert@lrde.epita.fr>
5171
5172 * data/bison.c++: Fix m4 quoting in comments.
5173
50997c6e
RA
51742002-02-06 Robert Anisko <robert@lrde.epita.fr>
5175
5176 * data/bison.c++: Adjust the parser code. Fix some muscles that were
5177 not expanded by m4.
5178
3f3eed27
AD
51792002-02-05 Akim Demaille <akim@epita.fr>
5180
5181 * data/bison.c++: Adjust to the M4 back end.
5182 More is certainly needed.
5183
be2a1a68
AD
51842002-02-05 Akim Demaille <akim@epita.fr>
5185
5186 Give a try to M4 as a back end.
5187
5188 * lib/readpipe.c: New, from wdiff.
5189 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
5190 BISON_HAIRY.
5191 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
5192 specific values. Now it is m4 that performs the lookup.
5193 * src/parse-skel.y: Remove.
5194 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
5195 * src/output.c (actions_output, guards_output)
5196 (token_definitions_output): No longer keeps track of the output
5197 line number, hence remove the second argument.
5198 (guards_output): Check against the guard member of a rule, not the
5199 action member.
5200 Adjust callers.
5201 (output_skeleton): Don't look for the skeleton location, let m4 do
5202 that.
5203 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
5204 file will be used.
5205 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
5206 (prepare): Given that for the time being changesyntax is not
5207 usable in M4, rename the muscles using `-' to `_'.
5208 Define `defines_flag', `output_parser_name' and `output_header_name'.
5209 * src/output.h (actions_output, guards_output)
5210 (token_definitions_output): Adjust prototypes.
5211 * src/scan-skel.l: Instead of scanning the skeletons, it now
5212 processes the output of m4: `__oline__' and `#output'.
5213 * data/bison.simple: Adjust to be used by M4(sugar).
5214 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
5215 to date.
5216 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
5217 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
5218 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
5219 shamelessly stolen from CVS Autoconf.
5220
beda758b
AD
52212002-02-05 Akim Demaille <akim@epita.fr>
5222
5223 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
5224 * configure.in: Check for the declarations of free and malloc.
5225 * src/muscle_tab.c: Adjust.
5226
5ece6d43
AD
52272002-02-05 Akim Demaille <akim@epita.fr>
5228
5229 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
5230 which have no values.
5231
5bb18f9a
AD
52322002-02-05 Akim Demaille <akim@epita.fr>
5233
5234 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
5235 * data/: here.
5236
894dd62e
PE
52372002-01-29 Paul Eggert <eggert@twinsun.com>
5238
5239 * src/bison.simple (YYSIZE_T): Do not define merely because
5240 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
5241 On some platforms, <alloca.h> does not declare YYSTD (size_t).
5242
82841af7
AD
52432002-01-27 Akim Demaille <akim@epita.fr>
5244
5245 Fix `%nonassoc and eof'.
5246
5247 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
5248 which were not properly copied! Replace
5249 memcpy (res->errs, src->errs, src->nerrs);
5250 with
5251 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
5252 !!!
5253 * tests/regression.at (%nonassoc and eof): Adjust to newest
5254 Autotest: `.' is not in the PATH.
5255
318b76e9
AD
52562002-01-27 Akim Demaille <akim@epita.fr>
5257
5258 * tests/sets.at (AT_EXTRACT_SETS): New.
5259 (Nullable): Use it.
5260 (Firsts): New.
5261
30d2f3d5
AD
52622002-01-26 Akim Demaille <akim@epita.fr>
5263
5264 * tests/actions.at, tests/calc.at, tests/headers.at,
5265 * tests/torture.at: Adjust to the newest Autotest which no longer
5266 forces `.' in the PATH.
5267
30f8c395
AD
52682002-01-25 Akim Demaille <akim@epita.fr>
5269
5270 * tests/regression.at (%nonassoc and eof): New.
5271 Suggested by Robert Anisko.
5272
29ae55f1
AD
52732002-01-24 Akim Demaille <akim@epita.fr>
5274
5275 Bison dumps core when trying to complain about broken input files.
5276 Reported by Cris van Pelt.
5277
5278 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
5279 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
5280 into...
5281 (Invalid inputs): Strengthen: exercise parse_percent_token.
5282
2b548aa6
RA
52832002-01-24 Robert Anisko <robert.anisko@epita.fr>
5284
5285 * src/Makefile.am: Add bison.c++.
5286 * src/bison.c++: New skeleton.
5287
bb0146c2
AD
52882002-01-21 Paolo Bonzini <bonzini@gnu.org>
5289
5290 * po/it.po: New.
5291
bec30531
AD
52922002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
5293
5294 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
5295
fc6edc45
MA
52962002-01-20 Marc Autret <marc@gnu.org>
5297
5298 * src/files.c (compute_output_file_names): Fix
5299
5e5d5415
MA
53002002-01-20 Marc Autret <marc@gnu.org>
5301
5302 * tests/output.at: New test.
5303 * src/files.c (compute_base_names): Don't map extensions when
5304 the YACC flag is set, use defaults.
5305 Reported by Evgeny Stambulchik.
5306
44ea3fbd
MA
53072002-01-20 Marc Autret <marc@gnu.org>
5308
bb0146c2 5309 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
5310 compilers as well (i.e. the vendor C compiler).
5311 Suggested by Albert Chin-A-Young.
5312
338963d1
TVH
53132002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
5314
5315 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
5316 canonical definition.
5317 * src/system.h: Use the canonical definition for PARAMS (avoids
5318 a conflict with the macro from lib/hash.h).
5319
c57b2479
AD
53202002-01-11 Akim Demaille <akim@epita.fr>
5321
5322 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 5323 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 5324
b85810ae
AD
53252002-01-09 Akim Demaille <akim@epita.fr>
5326
5327 * src/files.c, src/files.h (output_infix): New.
5328 (tab_extension): Remove.
5329 (compute_base_names): Compute the former, drop the latter.
5330 * src/output.c (prepare): Insert the muscles `output-infix', and
5331 `output-suffix'.
5332 * src/parse-skel.y (string, string.1): New.
5333 (section.header): Use it.
5334 (section.yacc): Remove.
5335 (prefix): Remove too.
5336 * src/scan-skel.l: Adjust.
5337 * src/bison.simple, src/bison.hairy: Adjust.
5338
cae60122
AD
53392002-01-09 Akim Demaille <akim@epita.fr>
5340
5341 * configure.in (WERROR_CFLAGS): Compute it.
5342 * src/Makefile.am (CFLAGS): Pass it.
5343 * tests/atlocal.in (CFLAGS): Idem.
5344 * src/files.c: Fix a few warnings.
5345 (get_extension_index): Remove, unused.
5346
ae404801
AD
53472002-01-08 Akim Demaille <akim@epita.fr>
5348
5349 * src/getargs.c (AS_FILE_NAME): New.
5350 (getargs): Use it to convert DOSish file names.
5351 * src/files.c (base_name): Rename as full_base_name to avoid
5352 clashes with `base_name ()'.
5353 (filename_split): New.
5354 (compute_base_names): N-th rewrite, using filename_split.
5355
22312b71
AD
53562002-01-08 Akim Demaille <akim@epita.fr>
5357
5358 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
5359 New, stolen from the Fileutils 4.1.
5360 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
5361 * configure.in: Check for the presence of memrchr, and of its
5362 prototype.
5363
a67cef01
TVH
53642002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
5365
5366 * lib/hash.h (__P): Added definition for this macro.
5367 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
5368 BUILT_SOURCES, to ensure they are generated first.
5369 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
5370 %error-verbose to allow bootstrapping with bison 1.30x.
5371
2b25d624
AD
53722002-01-06 Akim Demaille <akim@epita.fr>
5373
5374 * src/reader.c (parse_braces): Don't fetch the next char, the
5375 convention is to fetch on entry.
5376 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
5377 'switch' without a following semicolon.
5378 * tests/regression.at (braces parsing): New.
5379
3460813b
AD
53802002-01-06 Akim Demaille <akim@epita.fr>
5381
5382 Bison is dead wrong in its RR conflict reports.
5383
5384 * tests/torture.at (GNU Cim Grammar): New.
5385 * src/conflicts.c (count_rr_conflicts): Fix.
5386
73784c64
AD
53872002-01-06 Akim Demaille <akim@epita.fr>
5388
5389 Creating package.m4 from configure.ac causes too many problems.
5390
5391 * tests/Makefile.am (package.m4): Create it by hand,
5392 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
5393
25d81090
AD
53942002-01-06 Akim Demaille <akim@epita.fr>
5395
5396 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
5397 skeleton.h.
5398
a9b8959e
PE
53992002-01-04 Paul Eggert <eggert@twinsun.com>
5400
5401 * doc/bison.texinfo (Debugging):
5402 Remove YYSTDERR; it's no longer defined or used.
5403 Also, s/cstdio.h/cstdio/.
5404
25d81090
AD
54052002-01-03 Akim Demaille <akim@epita.fr>
5406
5407 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
5408
1109455c
AD
54092002-01-03 Akim Demaille <akim@epita.fr>
5410
5411 * src/parse-skel.y (process_skeleton): Don't bind the parser's
5412 tracing code to --trace, wait for a better --trace option, with
5413 args.
5414
7ea5e977
AD
54152002-01-03 Akim Demaille <akim@epita.fr>
5416
5417 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
5418 The ISO C++ standard is extremely clear about it: stderr is
5419 considered a macro, not a regular symbol (see table 94 `Header
5420 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
5421 Therefore std:: does not apply to it. It still does with fprintf.
5422 Also, s/cstdio.h/cstdio/.
5423
fab5b110
AD
54242002-01-03 Akim Demaille <akim@epita.fr>
5425
5426 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
5427 for non system headers.
5428
aed7fd9b
AD
54292002-01-02 Akim Demaille <akim@epita.fr>
5430
5431 Equip the skeleton chain with location tracking, runtime trace,
5432 pure parser and scanner.
5433
5434 * src/parse-skel.y: Request a pure parser, locations, and prefix
5435 renaming.
5436 (%union): Having several members with the same type does not help
5437 type mismatches, simplify.
5438 (YYPRINT, yyprint): New.
5439 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
5440 (skel_error): this.
5441 Handle locations.
5442 * src/scan-skel.l: Adjust to these changes.
5443 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
5444 (LOCATION_PRINT, skel_control_t): New.
5445
24fad99e
AD
54462001-12-30 Akim Demaille <akim@epita.fr>
5447
5448 * src/parse-skel.y: Get rid of the shift/reduce conflict:
5449 replace `gb' with BLANKS.
5450 * src/scan-skel.l: Adjust.
5451
a4b36db4
AD
54522001-12-30 Akim Demaille <akim@epita.fr>
5453
5454 * src/system.h: We don't need nor want bcopy.
5455 Throw away MS-DOS crap: we don't need getpid.
5456 * configure.in: We don't need strndup. It was even causing
5457 problems: because Flex includes the headers *before* us,
5458 _GNU_SOURCE is not defined by config.h, and therefore strndup was
5459 not visible.
5460 * lib/xstrndup.c: New.
5461 * src/scan-skel.l: Use it.
5462 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
5463 * src/parse-skel.y: Use %directives instead of #defines.
5464
1239777d
AD
54652001-12-30 Akim Demaille <akim@epita.fr>
5466
5467 * src/skeleton.h: New.
5468 * src/output.c (output_parser, output_master_parser): Remove, dead
5469 code.
5470 * src/output.h (get_lines_number, actions_output, guards_output)
5471 (token_definitions_output): Prototype them.
5472 * src/parse-skel.y: Add the license notice.
5473 Include output.h and skeleton.h.
5474 (process_skeleton): Returns void, and takes a single parameter.
5475 * src/scan-skel.l: Add the license notice.
5476 Include skeleton.h.
5477 Don't use %option yylineno: it seems that then Flex imagines
5478 REJECT has been used, and therefore it won't reallocate its
5479 buffers (which makes no other sense to me than a bug). It results
5480 in warnings for `unused: yy_flex_realloc'.
5481
9b3add5b
RA
54822001-12-30 Robert Anisko <robert.anisko@epita.fr>
5483
5484 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
5485 (MUSCLE_INSERT_PREFIX): ...to there.
5486 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
5487 (MUSCLE_INSERT_PREFIX): Move from here...
5488
5489 * src/bison.hairy: Add a section directive. Put braces around muscle
5490 names. This parser skeleton is still broken, but Bison should not
5491 choke on a bad muscle 'syntax'.
5492 * src/bison.simple: Add a section directive. Put braces around muscle
5493 names.
5494
5495 * src/files.h (strsuffix, stringappend): Add declarations.
5496 (tab_extension): Add declaration.
5497 (short_base_name): Add declaration.
5498
5499 * src/files.c (strsuffix, stringappend): No longer static. These
5500 functions are used in the skeleton parser.
5501 (tab_extension): New.
5502 (compute_base_names): Use the computations done in this function
fab5b110 5503 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
5504 names.
5505 (short_base_name): No longer static.
5506
5507 * src/output.c (output_skeleton): New.
5508 (output): Disable call to output_master_parser, and give a try to
5509 a new skeleton handling system.
5510 (guards_output, actions_output): No longer static.
5511 (token_definitions_output, get_lines_number): No longer static.
5512
5513 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
5514
fab5b110 5515 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
5516 parse-skel.y.
5517
5518 * src/parse-skel.y: New file.
5519 * src/scan-skel.l: New file.
5520
b5b61c61
AD
55212001-12-29 Akim Demaille <akim@epita.fr>
5522
5523 %name-prefix is broken.
5524
5525 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
5526 Adjust all dependencies.
5527 * tests/headers.at (export YYLTYPE): Strengthen this test: use
5528 %name-prefix.
5529
5530 Renaming yylval but not yylloc is not consistent. Now we do.
5531
5532 * src/bison.simple: Prefix yylloc if used.
5533 * doc/bison.texinfo (Decl Summary): Document that.
5534
8c9a50be
AD
55352001-12-29 Akim Demaille <akim@epita.fr>
5536
5537 * doc/bison.texinfo: Promote `%long-directive' over
5538 `%long_directive'.
5539 Remove all references to fixed-output-files, yacc is enough.
5540
d99361e6
AD
55412001-12-29 Akim Demaille <akim@epita.fr>
5542
5543 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
5544 user prologue. These are defaults.
5545 * tests/actions.at (Mid-rule actions): Make sure the user can
5546 define YYDEBUG and YYERROR_VERBOSE.
5547
b9cecb91
AD
55482001-12-29 Akim Demaille <akim@epita.fr>
5549
5550 * src/output.c (header_output): Don't forget to export YYLTYPE and
5551 yylloc.
5552 * tests/headers.at (export YYLTYPE): New, make sure it does.
5553 * tests/regression.at (%union and --defines, Invalid CPP headers):
5554 Move to...
5555 * tests/headers.at: here.
5556
aea13e97
AD
55572001-12-29 Akim Demaille <akim@epita.fr>
5558
5559 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
5560
931394cb
AD
55612001-12-29 Akim Demaille <akim@epita.fr>
5562
5563 * tests/actions.at (Mid-rule actions): Output on a single line
5564 instead of several.
5565
704a47c4
AD
55662001-12-29 Akim Demaille <akim@epita.fr>
5567
5568 * doc/bison.texinfo: Formatting changes.
5569
091e20bb
AD
55702001-12-29 Akim Demaille <akim@epita.fr>
5571
5572 Don't store the token defs in a muscle, just be ready to output it
5573 on command. Now possible via `symbols'. Fixes a memory leak.
5574
5575 * src/output.c (token_definitions_output): New.
5576 (output_parser, header_output): Use it.
5577 * src/reader.c (symbols_save): Remove.
5578
cce71710
AD
55792001-12-29 Akim Demaille <akim@epita.fr>
5580
5581 * src/bison.simple: Do not provide a default for YYSTYPE and
5582 YYLTYPE before the user's prologue. Otherwise it's hardly... a
5583 default.
5584
82c035a8
AD
55852001-12-29 Akim Demaille <akim@epita.fr>
5586
5587 Mid-rule actions are simply... ignored!
5588
5589 * src/reader.c (readgram): Be sure to attach mid-rule actions to
5590 the empty-rule associated to the dummy symbol, not to the host
5591 rule.
5592 * tests/actions.at (Mid-rule actions): New.
5593
8419d367
AD
55942001-12-29 Akim Demaille <akim@epita.fr>
5595
5596 Memory leak.
5597
5598 * src/reader.c (reader): Free grammar.
5599
375d5806
AD
56002001-12-29 Akim Demaille <akim@epita.fr>
5601
5602 Memory leak.
5603
5604 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
5605 since it allocates it for each state, although only one is needed.
5606 (allocate_storage): Do it here.
5607
f51cb8ff
AD
56082001-12-29 Akim Demaille <akim@epita.fr>
5609
5610 * src/options.h, src/options.c (create_long_option_table): Rename
5611 as...
5612 (long_option_table_new): this, with a clearer prototype.
5613 (percent_table): Remove, unused,
5614 * src/getargs.c (getargs): Adjust.
5615
29e88316
AD
56162001-12-29 Akim Demaille <akim@epita.fr>
5617
5618 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
5619 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
5620 as states.
5621
b9f71f19
AD
56222001-12-29 Akim Demaille <akim@epita.fr>
5623
5624 * src/lalr.c (build_relations): Rename `states' as `states1'.
5625 Sorry, I don't understand exactly what it is, no better name...
5626
1a2b5d37
AD
56272001-12-29 Akim Demaille <akim@epita.fr>
5628
5629 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
5630 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
5631 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
5632 as rules.
5633
1cca533e
AD
56342001-12-29 Akim Demaille <akim@epita.fr>
5635
5636 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
5637 ago.
5638
c03ae966
AD
56392001-12-29 Akim Demaille <akim@epita.fr>
5640
5641 * src/reader.c, src/reader.h (user_toknums): Remove.
5642 Adjust all users to use symbols[i]->user_token_number.
5643
5a670b1e
AD
56442001-12-29 Akim Demaille <akim@epita.fr>
5645
5646 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
5647 Adjust all users to use symbols[i]->prec or ->assoc.
5648
ad949da9
AD
56492001-12-29 Akim Demaille <akim@epita.fr>
5650
5651 * src/reader.c, src/reader.h (tags): Remove.
5652 Adjust all users to use symbols[i]->tag.
5653
0e78e603
AD
56542001-12-29 Akim Demaille <akim@epita.fr>
5655
5656 * src/gram.h, src/gram.c (symbols): New, similar to state_table
5657 and rule_table.
5658 * src/reader.c (packsymbols): Fill this table.
5659 Drop sprec.
5660 * src/conflicts.c (resolve_sr_conflict): Adjust.
5661 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
5662 single table.
5663 Use symbols[i]->tag instead of tags[i].
5664
213e640e
AD
56652001-12-29 Akim Demaille <akim@epita.fr>
5666
5667 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
5668 In addition, put a comment in there, to replace...
5669 * tests/regression.at (%union and C comments): Remove.
5670
e7b8bef1
AD
56712001-12-29 Akim Demaille <akim@epita.fr>
5672
5673 * tests/regression.at (Web2c Actions): Blindly move the actual
5674 output as expected output. The contents *seem* right to me, but I
5675 can't pretend reading perfectly parser tables... Nonetheless, all
5676 the other tests pass correctly, the table look OK, even though the
5677 presence of `$axiom' is to be noted: AFAICS it is useless (but
5678 harmless).
5679
b68e7744
AD
56802001-12-29 Akim Demaille <akim@epita.fr>
5681
5682 * src/reader.c (readgram): Don't add the rule 0 if there were no
5683 rules read. In other words, add it _after_ having performed
5684 grammar sanity checks.
5685 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
5686
78d5bae9
AD
56872001-12-29 Akim Demaille <akim@epita.fr>
5688
5689 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
5690 visible, and some states have now a different number.
5691
ff442794
AD
56922001-12-29 Akim Demaille <akim@epita.fr>
5693
5694 * src/reader.c (readgram): Bind the initial rule's lineno to that
5695 of the first rule.
5696 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
5697 (Solved SR Conflicts): Adjust rule 0's line number.
5698
610ab194
AD
56992001-12-29 Akim Demaille <akim@epita.fr>
5700
5701 Fix the `GAWK Grammar' failure.
5702
5703 * src/LR0.c (final_state): Initialize to -1 so that we do compute
5704 the reductions of the first state which was mistakenly confused
5705 with the final state because precisely final_state was initialized
5706 to 0.
5707 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
5708 now noticed by Bison.
5709 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
5710 have a reduction on $default.
5711
29d29c8f
AD
57122001-12-29 Akim Demaille <akim@epita.fr>
5713
5714 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
5715 rule line numbers.
5716 * src/closure.c (print_closure): Likewise.
5717 * src/derives.c (print_derives): Likewise.
5718 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
5719 now.
5720
7c6b64d0
AD
57212001-12-29 Akim Demaille <akim@epita.fr>
5722
5723 * src/lalr.c (lookaheads_print): New.
5724 (lalr): Call it when --trace-flag.
5725 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
5726 are dumped.
5727
3d4daee3
AD
57282001-12-29 Akim Demaille <akim@epita.fr>
5729
5730 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
5731 when walking through ritem, even via rule->rhs.
5732 * src/reduce.c (dump_grammar, useful_production, reduce_output)
5733 (useful_production, useless_nonterminals): Likewise.
5734 (reduce_grammar_tables): Likewise, plus update nritems.
5735 * src/nullable.c (set_nullable): Likewise.
5736 * src/lalr.c (build_relations): Likewise.
5737 * tests/sets.at (Nullable): Adjust.
5738 Fortunately, now, the $axiom is no longer nullable.
5739
9e7f6bbd
AD
57402001-12-29 Akim Demaille <akim@epita.fr>
5741
5742 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
5743 the 0-sentinel.
5744 * src/gram.c (ritem_longest_rhs): Likewise.
5745 * src/reduce.c (nonterminals_reduce): Likewise.
5746 * src/print_graph.c (print_graph): Likewise.
5747 * src/output.c (output_rule_data): Likewise.
5748 * src/nullable.c (set_nullable): Likewise.
5749
255ef638
AD
57502001-12-29 Akim Demaille <akim@epita.fr>
5751
5752 * src/output.c: Comment changes.
5753
0d8a7363
AD
57542001-12-27 Paul Eggert <eggert@twinsun.com>
5755
5756 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
5757 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
5758 Sparc, as they were causing more porting problems than the
5759 (minor) performance improvement was worth.
5760
5761 Also, catch up with 1.31's YYSTD.
5762
3db472b9
AD
57632001-12-27 Akim Demaille <akim@epita.fr>
5764
5765 * src/output.c (output_gram): Rely on nritems, not the
5766 0-sentinel. See below.
5767 Use -1 as separator, not 0.
5768 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
5769 Rely on -1 as separator in yyrhs, instead of 0.
5770 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
5771 twice `Now at end of input', therefore there are two lines less to
5772 expect.
5773
b365aa05
AD
57742001-12-27 Akim Demaille <akim@epita.fr>
5775
5776 * tests/regression.at (Unresolved SR Conflicts):
5777 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
5778 below.
5779
30171f79
AD
57802001-12-27 Akim Demaille <akim@epita.fr>
5781
5782 * src/LR0.c (new_state): Recognize the final state by the fact it
5783 is reached by eoftoken.
5784 (insert_start_shifting_state, insert_eof_shifting_state)
5785 (insert_accepting_state, augment_automaton): Remove, since now
5786 these states are automatically computed from the initial state.
5787 (generate_states): Adjust.
5788 * src/print.c: When reporting a rule number to the user, substract
5789 1, so that the axiom rule is rule 0, and the first user rule is 1.
5790 * src/reduce.c: Likewise.
5791 * src/print_graph.c (print_core): For the time being, just as for
5792 the report, depend upon --trace-flags to dump the full set of
5793 items.
5794 * src/reader.c (readgram): Once the grammar read, insert the rule
5795 0: `$axiom: START-SYMBOL $'.
5796 * tests/set.at: Adjust: rule 0 is now displayed, and since the
5797 number of the states has changed (the final state is no longer
5798 necessarily the last), catch up.
5799
75142d45
AD
58002001-12-27 Akim Demaille <akim@epita.fr>
5801
5802 Try to make the use of the eoftoken valid. Given that its value
5803 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
5804 is used instead of > 0 where appropriate, (ii), depend upon nritems
5805 instead of the 0-sentinel.
5806
5807 * src/gram.h, src/gram.c (nritems): New.
5808 Expected to be duplication of nitems, but for the time being...
5809 * src/reader.c (packgram): Assert nritems and nitems are equal.
5810 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
5811 * src/closure.c (print_closure, print_fderives): Likewise.
5812 * src/gram.c (ritem_print): Likewise.
5813 * src/print.c (print_core, print_grammar): Likewise.
5814 * src/print_graph.c: Likewise.
5815
b7c49edf
AD
58162001-12-27 Akim Demaille <akim@epita.fr>
5817
5818 * src/main.c (main): If there are complains after grammar
5819 reductions, then output the report anyway if requested, then die.
5820 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
5821 * src/reader.c (eoftoken): New.
5822 (parse_token_decl): If the token being defined has value `0', it
5823 is the eoftoken.
5824 (packsymbols): No longer hack `tags' to insert `$' by hand.
5825 Be sure to preserve the value of the eoftoken.
5826 (reader): Make sure eoftoken is defined.
5827 Initialize nsyms to 0: now eoftoken is created just like the others.
5828 * src/print.c (print_grammar): Don't special case the eof token.
5829 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
5830 lie anyway, albeit pleasant.
5831 * tests/calc.at: Exercise error messages with eoftoken.
5832 Change the grammar so that empty input is invalid.
5833 Adjust expectations.
5834 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
5835
ec2da99f
AD
58362001-12-27 Akim Demaille <akim@epita.fr>
5837
5838 * configure.in: Check the protos of strchr ans strspn.
5839 Replace strchr if needed.
5840 * src/system.h: Provide the protos of strchr, strspn and memchr if
5841 missing.
5842 * lib/strchr.c: New.
5843 * src/reader.c (symbols_save): Use strchr.
5844
8adfa272
AD
58452001-12-27 Akim Demaille <akim@epita.fr>
5846
5847 * src/print.c, src/print_graph.c (escape): New.
5848 Use it to quote the TAGS outputs.
5849 * src/print_graph.c (print_state): Now errors are in red, and
5850 reductions in green.
5851 Prefer high to wide: output the state number on a line of its own.
5852
80dac38c
AD
58532001-12-27 Akim Demaille <akim@epita.fr>
5854
5855 * src/state.h, src/state.c (reductions_new): New.
5856 * src/LR0.c (set_state_table): Let all the states have a
5857 `reductions', even if reduced to 0.
5858 (save_reductions): Adjust.
5859 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
5860 * src/print.c (print_reductions, print_actions): Adjust.
5861 * src/output.c (action_row): Adjust.
5862
2cec70b9
AD
58632001-12-27 Akim Demaille <akim@epita.fr>
5864
5865 * src/state.h, src/state.c (errs_new, errs_dup): New.
5866 * src/LR0.c (set_state_table): Let all the states have an errs,
5867 even if reduced to 0.
5868 * src/print.c (print_errs, print_reductions): Adjust.
5869 * src/output.c (output_actions, action_row): Adjust.
5870 * src/conflicts.c (resolve_sr_conflict): Adjust.
5871
13ca549a
AD
58722001-12-27 Akim Demaille <akim@epita.fr>
5873
5874 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
5875
5092aba5
AD
58762001-12-27 Akim Demaille <akim@epita.fr>
5877
5878 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
5879 * src/print.c: here.
5880 (lookaheadset, shiftset): New, used as additional storage by
5881 print_reductions.
5882 (print_results): Adjust.
5883 (print_shifts, print_gotos, print_errs): New, extracted from...
5884 (print_actions): here.
5885 * src/print_graph.c (print_actions): Remove dead code.
5886
11e2beca
AD
58872001-12-27 Akim Demaille <akim@epita.fr>
5888
5889 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
5890 `$n' and `@n'.
5891
dac3c910
AD
58922001-12-27 Akim Demaille <akim@epita.fr>
5893
5894 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
5895 (build_relations): Adjust.
5896
d0b0fefa
AD
58972001-12-27 Akim Demaille <akim@epita.fr>
5898
5899 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
5900 duplication.
5901
adc8c848
AD
59022001-12-27 Akim Demaille <akim@epita.fr>
5903
5904 * src/reader.c (packgram): Catch nitems overflows.
5905
14d293ac
AD
59062001-12-27 Akim Demaille <akim@epita.fr>
5907
5908 * src/files.c, src/files.h (guard_obstack): Remove.
5909 * src/output.c (output): Adjust.
5910 * src/reader.c (parse_braces): New, factoring...
5911 (copy_action, copy_guard): these two which are renamed as...
5912 (parse_action, parse_guard): these.
5913 As a voluntary consequence, using braces around guards is now
5914 mandatory.
5915
f499b062
AD
59162001-12-27 Akim Demaille <akim@epita.fr>
5917
5918 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
5919 * src/reader.c (symbol_list): `guard' and `guard_line' are new
5920 members.
5921 (symbol_list_new): Adjust.
5922 (copy_action): action_line is the first line, not the last.
5923 (copy_guard): Just as for actions, store the `action' only, not
5924 the switch/case/break flesh.
5925 Don't parse the user action that might follow the guard, let...
5926 (readgram): do it, i.e., now, there can be an action after a
5927 guard.
5928 In other words the guard is just explicitly optional.
5929 (packgram): Adjust.
5930 * src/output.c (guards_output): New.
5931 (output_parser): Call it when needed.
5932 (output): Also free the guard and attrs obstacks.
5933 * src/files.c, src/files.h (obstack_save): Remove.
5934 (output_files): Remove.
5935 As a result, if one needs the former `.act' file, using an
5936 appropriate skeleton which requires actions and guards is now
5937 required.
5938 * src/main.c (main): Adjust.
5939 * tests/semantic.at: New.
5940 * tests/regression.at: Use `input.y' as input file name.
5941 Avoid 8+3 problems by requiring input.c when the test needs the
5942 parser.
5943
d945f5cd
AD
59442001-12-27 Akim Demaille <akim@epita.fr>
5945
5946 * src/reader.c (symbol_list_new): Be sure to initialize all the
5947 fields.
5948
d200e455
AD
59492001-12-27 Akim Demaille <akim@epita.fr>
5950
5951 All the hacks using a final pseudo state are now useless.
5952
5953 * src/LR0.c (set_state_table): state_table holds exactly nstates.
5954 * src/lalr.c (nLA): New.
5955 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
5956 instead of lookaheadsp from the pseudo state (nstate + 1).
5957
f9507c28
AD
59582001-12-27 Akim Demaille <akim@epita.fr>
5959
5960 * src/output.c (action_row, token_actions): Use a state_t instead
5961 of a integer, and nlookaheads instead of the following state's
5962 lookaheadsp.
5963
065fbd27
AD
59642001-12-27 Akim Demaille <akim@epita.fr>
5965
5966 * src/conflicts.c (log_resolution, flush_shift)
5967 (resolve_sr_conflict, set_conflicts, solve_conflicts)
5968 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
5969 (conflicts_print, print_reductions): Use a state_t instead of an
5970 integer when referring to a state.
5971 As much as possible, depend upon nlookaheads, instead of the
5972 `lookaheadsp' member of the following state (since lookaheads of
5973 successive states are successive, the difference between state n + 1
5974 and n served as the number of lookaheads for state n).
5975 * src/lalr.c (add_lookback_edge): Likewise.
5976 * src/print.c (print_core, print_actions, print_state)
5977 (print_results): Likewise.
5978 * src/print_graph.c (print_core, print_actions, print_state)
5979 (print_graph): Likewise.
5980 * src/conflicts.h: Adjust.
5981
1b177bd7
AD
59822001-12-27 Akim Demaille <akim@epita.fr>
5983
5984 * src/bison.hairy: Formatting/comment changes.
5985 ANSIfy.
5986 Remove `register' indications.
5987 Add plenty of `static'.
5988
7742ddeb
AD
59892001-12-27 Akim Demaille <akim@epita.fr>
5990
5991 * src/output.c (prepare): Drop the muscle `ntbase' which
5992 duplicates ntokens.
5993 * src/bison.simple: Formatting/comment changes.
5994 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
5995 is an undocumented synonym.
5996
1fa14068
AD
59972001-12-22 Akim Demaille <akim@epita.fr>
5998
5999 * src/output.c (output_table_data): Change the prototype to use
6000 `int' for array ranges: some invocations do pass an int, not a
6001 short.
6002 Reported by Wayne Green.
6003
b9752825
AD
60042001-12-22 Akim Demaille <akim@epita.fr>
6005
6006 Some actions of web2c.y are improperly triggered.
6007 Reported by Mike Castle.
6008
6009 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
6010 * tests/regression.at (Web2c): Rename as...
6011 (Web2c Report): this.
6012 (Web2c Actions): New.
6013
776209d6
AD
60142001-12-22 Akim Demaille <akim@epita.fr>
6015
6016 Reductions in web2c.y are improperly reported.
6017 Reported by Mike Castle.
6018
6019 * src/conflicts.c (print_reductions): Fix.
6020 * tests/regression.at (Web2c): New.
6021
275fc3ad
AD
60222001-12-18 Akim Demaille <akim@epita.fr>
6023
6024 Some host fail on `assert (!"foo")', which expands to
6025 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
6026 Reported by Nelson Beebee.
6027
6028 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
6029 `#define it_succeeded 0' and `assert (it_succeeded)'.
6030
897668ee
MA
60312001-12-17 Marc Autret <autret_m@epita.fr>
6032
6033 * src/bison.simple: Don't hard code the skeleton line and filename.
6034 * src/output.c (output_parser): Rename 'line' as 'output_line'.
6035 New line counter 'skeleton_line' (skeleton-line muscle).
6036
ab3399e0
PE
60372001-12-17 Paul Eggert <eggert@twinsun.com>
6038
6039 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
6040 YYDEBUG must be defined to a nonzero value.
6041
6042 * src/bison.simple (yytname): Do not assume that the user defines
6043 YYDEBUG to a properly parenthesized expression.
6044
3877f72b
AD
60452001-12-17 Akim Demaille <akim@epita.fr>
6046
6047 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
6048 nlookaheads is a new member.
6049 Adjust all users.
6050 * src/lalr.h (nlookaheads): Remove this orphan declaration.
6051 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
6052 state.
776209d6 6053
331dbc1b
AD
60542001-12-17 Akim Demaille <akim@epita.fr>
6055
6056 * src/files.h, src/files.c (open_files, close_files): Remove.
6057 * src/main.c (main): Don't open/close files, nor invoke lex_free,
6058 let...
6059 * src/reader.c (reader): Do it.
776209d6 6060
be750e4c
AD
60612001-12-17 Akim Demaille <akim@epita.fr>
6062
6063 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 6064
709ae8c6
AD
60652001-12-17 Akim Demaille <akim@epita.fr>
6066
6067 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
6068 (flush_reduce): New.
6069 (resolve_sr_conflict): Adjust.
776209d6 6070
f87685c3
AD
60712001-12-17 Akim Demaille <akim@epita.fr>
6072
6073 * src/output.c (output_obstack): Be static and rename as...
6074 (format_obstack): this, to avoid any confusion with files.c's
6075 output_obstack.
6076 * src/reader.h (muscle_obstack): Move to...
6077 * src/output.h: here, since it's defined in output.c.
6078
837491d8
AD
60792001-12-17 Akim Demaille <akim@epita.fr>
6080
6081 * src/output.c (action_row, save_column, default_goto)
6082 (sort_actions, matching_state, pack_vector): Better variable
6083 locality.
6084
796d61fb
AD
60852001-12-17 Akim Demaille <akim@epita.fr>
6086
6087 * src/output.c: Various formatting changes.
776209d6 6088
64d15509
AD
60892001-12-17 Akim Demaille <akim@epita.fr>
6090
6091 * src/files.c (output_files): Free the output_obstack.
6092 * src/main.c (main): Call print and print_graph conditionally.
6093 * src/print.c (print): Work unconditionally.
6094 * src/print_graph.c (print_graph): Work unconditionally.
6095 * src/conflicts.c (log_resolution): Output only if verbose_flag.
6096
fbc8ecb7
MA
60972001-12-16 Marc Autret <autret_m@epita.fr>
6098
6099 * src/output.c (actions_output): Fix. When we use %no-lines,
6100 there is one less line per action.
6101
f0440388
MA
61022001-12-16 Marc Autret <autret_m@epita.fr>
6103
6104 * src/bison.simple: Remove a useless #line directive.
6105 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
6106 * src/output.c (get_lines_number): New.
776209d6 6107 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
6108 output muscles.
6109 Fix line numbering.
6110 (actions_output): Computes the number of lines taken by actions.
6111 (output_master_parser): Insert new skeleton which is the name of
6112 the output parser file name.
6113
a79986b8
MA
61142001-12-15 Marc Autret <autret_m@epita.fr>
6115
6116 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
6117
4ec8e00f
MA
61182001-12-15 Marc Autret <autret_m@epita.fr>
6119
6120 * src/output.c (output_gram): Keep track of the hairy one.
6121
1a4648ff
AD
61222001-12-15 Akim Demaille <akim@epita.fr>
6123
6124 Make `make distcheck' work.
6125
6126 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
6127 system.h which uses libgettext.h.
6128
9c2c67e6
AD
61292001-12-15 Akim Demaille <akim@epita.fr>
6130
6131 * src/nullable.c (set_nullable): Useless rules must be skipped,
6132 otherwise, since we range over their symbols, we might look at a
6133 nonterminal which no longer ``exists'', i.e., it is not counted in
6134 `nvars', hence we overflow our arrays.
6135
93ede233
AD
61362001-12-15 Akim Demaille <akim@epita.fr>
6137
6138 The header can also be produced directly, without any obstack!
6139 Yahoo!
6140
6141 * src/files.c, src/files.h (defines_obstack): Remove.
6142 (compute_header_macro): Global.
6143 (defines_obstack_save): Remove.
6144 * src/reader.c (parse_union_decl): No longer output to
6145 defines_obstack: its content can be found in the `stype' muscle
6146 anyway.
6147 (output_token_translations): Merge into...
6148 (symbols_output): this.
6149 Rename as...
6150 (symbols_save): this.
6151 (reader): Adjust.
6152 * src/output.c (header_output): New.
6153 (output): Call it.
6154
2666f928
AD
61552001-12-15 Akim Demaille <akim@epita.fr>
6156
6157 * src/reader.c (parse_union_decl): Instead of handling two obstack
6158 simultaneously, use one to define the `stype' muscle, and use the
6159 value of the latter to fill defines_obstack.
6160 (copy_comment): Remove.
6161 (copy_comment2): Work for a single obstack.
6162 Rename as...
6163 (copy_comment): this.
6164
428046f8
AD
61652001-12-15 Akim Demaille <akim@epita.fr>
6166
6167 * src/lex.c, src/lex.h (xgetc): No longer static.
6168 * src/reader.c (parse_union_decl): Revamp.
6169
ea52d706
AD
61702001-12-15 Akim Demaille <akim@epita.fr>
6171
6172 Still making progress in separating Bison into (i) input, (ii)
6173 process, (iii) output: now we can directly output the parser file
6174 without using table_obstack at all.
6175
6176 * src/files.c, src/files.h (table_obstack): Bye bye.
6177 (parser_file_name): New.
6178 * src/files.c (compute_output_file_names): Compute it.
6179 * src/output.c (actions_output, output_parser)
6180 (output_master_parser): To a file instead of an obstack.
6181
3f96f4dc
AD
61822001-12-15 Akim Demaille <akim@epita.fr>
6183
6184 Attach actions to rules, instead of pre-outputting them to
6185 actions_obstack.
6186
6187 * src/gram.h (rule_t): action and action_line are new members.
6188 * src/reader.c (symbol_list): Likewise.
6189 (copy_action): Save the actions within the rule.
6190 (packgram): Save them in rule_table.
6191 * src/output.c (actions_output): New.
6192 (output_parser): Use it on `%%actions'.
6193 (output_rule_data): Don't free rule_table.
6194 (output): Do it.
6195 (prepare): Don't save the `action' muscle.
6196 * src/bison.simple: s/%%action/%%actions/.
6197
51576fb3
AD
61982001-12-15 Akim Demaille <akim@epita.fr>
6199
6200 * src/reader.c (copy_action): When --yacc, don't append a `;'
6201 to the user action: let it fail if lacking.
dee049eb 6202 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 6203
2648a72d
AD
62042001-12-14 Akim Demaille <akim@epita.fr>
6205
6206 * src/lex.c (literalchar): Simply return the char you decoded, non
6207 longer mess around with obstacks and int pointers.
6208 Adjust all callers.
6209
92790e5b
AD
62102001-12-14 Akim Demaille <akim@epita.fr>
6211
6212 * src/lex.c (literalchar): Don't escape the special characters,
6213 just decode them, and keep them as char (before, eol was output as
6214 the 2 char string `\n' etc.).
6215 * src/output.c (output_rule_data): Use quotearg to output the
6216 token strings.
6217
927c1557
PE
62182001-12-13 Paul Eggert <eggert@twinsun.com>
6219
6220 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
6221 Do not infringe on the global user namespace when using C++.
6222 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
6223 All uses of `fprintf' and `stderr' changed.
6224
6225 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
6226
ed8e1f68
AD
62272001-12-13 Akim Demaille <akim@epita.fr>
6228
6229 The computation of nullable is broken: it doesn't handle empty
6230 RHS's properly.
6231
6232 * tests/torture.at (GNU AWK Grammar): New.
6233 * tests/sets.at (Nullable): New.
6234 * src/nullable.c (set_nullable): Instead of blindly looping over
6235 `ritems', loop over the rules, and then over their rhs's.
6236
6237 Work around Autotest bugs.
6238
6239 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
6240 frame, because Autotest understand lines starting with a `+' as
6241 traces from the shell. Then, they are not processed properly.
6242 Admittedly an Autotest bug, but we don't have time to wait for
6243 Autotest to catch up.
6244 * tests/regression.at (Broken Closure): Adjust to the new table
6245 frames.
6246 Move to...
6247 * tests/sets.at: here.
6248
cb581495
AD
62492001-12-13 Akim Demaille <akim@epita.fr>
6250
6251 * src/closure.c (closure): Use nrules instead of playing tricks
6252 with BITS_PER_WORD.
6253
2e729273
AD
62542001-12-13 Akim Demaille <akim@epita.fr>
6255
6256 * src/print.c (print_actions): Output the handling of `$' as the
6257 traces do: shifting the token EOF. Before EOF was treated as a
6258 nonterminal.
6259 * tests/regression.at: Adjust some tests.
6260 * src/print_graph.c (print_core): Complete the set of items via
6261 closure. The next-to-final and final states are still unsatisfying,
6262 but that's to be addressed elsewhere.
6263 No longer output the rule numbers, but do output the state number.
6264 A single loop for the shifts + gotos is enough, but picked a
6265 distinct color for each.
6266 (print_graph): Initialize and finalize closure.
6267
107f7dfb
AD
62682001-12-13 Akim Demaille <akim@epita.fr>
6269
6270 * src/reader.c (readgram): Remove dead code, an strip useless
6271 braces.
6272 (get_type): Remove, unused.
6273
9b53a24f
AD
62742001-12-12 Akim Demaille <akim@epita.fr>
6275
6276 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
6277 on that of lib/error.c.
6278
dbfb6dcd
AD
62792001-12-12 Akim Demaille <akim@epita.fr>
6280
6281 Some hosts don't like `/' in includes.
6282
6283 * src/system.h: Include libgettext.h without qualifying the path.
6284 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
6285 $(top_srcdir).
6286
c25fb648
MA
62872001-12-11 Marc Autret <autret_m@epita.fr>
6288
6289 * src/output.c (output_parser): Remove useless muscle.
6290
710ddc4f
MA
62912001-12-11 Marc Autret <autret_m@epita.fr>
6292
6293 * src/bison.simple: Remove #line just before %%epilogue. It
6294 is now handled in ...
6295 * src/reader.c (read_additionnal_code): Add the output of a
6296 #line for the epilogue.
6297
e83d80b8
MA
62982001-12-10 Marc Autret <autret_m@epita.fr>
6299
927c1557 6300 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
6301 replace precedent remove.
6302 * src/bison.simple: Remove #line before %%prologue because
6303 %%input-line is wrong at this time.
6304
971d5158
MA
63052001-12-10 Marc Autret <autret_m@epita.fr>
6306
6307 * src/reader.c (symbols_output): Clean up.
927c1557 6308 * src/output.c (output_gram, output): Clean up.
971d5158 6309
5edafffd
AD
63102001-12-10 Akim Demaille <akim@epita.fr>
6311
6312 * src/lalr.c (initialize_lookaheads): New. Extracted from...
6313 * src/LR0.c (set_state_table): here.
6314 * src/lalr.c (lalr): Call it.
6315
0279f8e9
AD
63162001-12-10 Akim Demaille <akim@epita.fr>
6317
6318 * src/state.h (shifts): Remove the `number' member: shifts are
6319 attached to state, hence no longer need to be labelled with a
6320 state number.
6321
190c4f5f
AD
63222001-12-10 Akim Demaille <akim@epita.fr>
6323
6324 Now that states have a complete set of members, the linked list of
6325 shifts is useless: just fill directly the state's shifts member.
6326
6327 * src/state.h (shifts): Remove the `next' member.
6328 * src/LR0.c (first_state, last_state): Remove.
6329 Adjust the callers.
6330 (augment_automaton): Don't look for the shifts that must be added
6331 a shift on EOF: it is those of the state we looked for! But now,
6332 since shifts are attached, it is no longer needed to looking
6333 merely by its id: its number.
6334
2a73b93d
AD
63352001-12-10 Akim Demaille <akim@epita.fr>
6336
6337 * src/LR0.c (augment_automaton): Better variable locality.
6338 Remove an impossible branch: if there is a state corresponding to
6339 the start symbol being shifted, then there is shift for the start
6340 symbol from the initial state.
6341
74392f6a
AD
63422001-12-10 Akim Demaille <akim@epita.fr>
6343
6344 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
6345 only when appropriate: when insert_start_shifting_state' is not
6346 invoked.
6347 * tests/regression.at (Rule Line Numbers): Adjust.
6348
37c82725
AD
63492001-12-10 Akim Demaille <akim@epita.fr>
6350
6351 * src/LR0.c (augment_automaton): Now that all states have shifts,
6352 merge the two cases addition shifts to the initial state.
6353
6a164e0c
AD
63542001-12-10 Akim Demaille <akim@epita.fr>
6355
6356 * src/lalr.c (set_state_table): Move to...
6357 * src/LR0.c: here.
6358 * src/lalr.c (lalr): Don't call it...
6359 * src/LR0.c (generate_states): do it.
6360 * src/LR0.h (first_state): Remove, only the table is used.
6361
7215de24
AD
63622001-12-10 Akim Demaille <akim@epita.fr>
6363
6364 * src/LR0.h (first_shift, first_reduction): Remove.
6365 * src/lalr.c: Don't use first_shift: find shifts through the
6366 states.
6367
80e25d4d
AD
63682001-12-10 Akim Demaille <akim@epita.fr>
6369
6370 * src/LR0.c: Attach shifts to states as soon as they are
6371 computed.
6372 * src/lalr.c (set_state_table): Instead of assigning shifts to
6373 state, just assert that the mapping was properly done.
6374
0ab3728b
AD
63752001-12-10 Akim Demaille <akim@epita.fr>
6376
6377 * src/LR0.c (insert_start_shift): Rename as...
6378 (insert_start_shifting_state): this.
6379 (insert_eof_shifting_state, insert_accepting_state): New.
6380 (augment_automaton): Adjust.
6381 Better locality of the variables.
6382 When looking if the start_symbol is shifted from the initial
6383 state, using `while (... symbol != start_symbol ...)' sounds
6384 better than `while (... symbol < start_symbol ...)': If fail
6385 to see how the order between symbols could be relevant!
6386
78af9bbc
AD
63872001-12-10 Akim Demaille <akim@epita.fr>
6388
6389 * src/getargs.h: Don't declare `spec_name_prefix' and
6390 `spec_file_prefix', declared by src/files.h.
6391 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
6392 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
6393 * src/output.c (prepare): Adjust.
6394 * src/reader.c (symbols_output): Likewise.
6395 * src/vmsgetargs.c: Vaguely adjust, but who cares?
6396
bdef2a41
AD
63972001-12-10 Akim Demaille <akim@epita.fr>
6398
6399 * src/muscle_tab.c (muscle_init): NULL is a better default than
6400 `"0"'.
6401
3735969c
AD
64022001-12-10 Akim Demaille <akim@epita.fr>
6403
6404 * src/reader.c (reader): Calling symbols_output once is enough.
6405
49701457
AD
64062001-12-10 Akim Demaille <akim@epita.fr>
6407
6408 Now that states have a complete set of members, the linked list of
6409 reductions is useless: just fill directly the state's reductions
6410 member.
6411
6412 * src/state.h (struct reductions): Remove member `number' and
6413 `next'.
6414 * src/LR0.c (first_reduction, last_reduction): Remove.
6415 (save_reductions): Don't link the new reductions, store them in
6416 this_state.
6417 * src/lalr.c (set_state_table): No need to attach reductions to
6418 states, it's already done.
6419 * src/output.c (output_actions): No longer free the shifts, then
6420 the reductions, then the states: free all the states and their
6421 members.
6422
0edad749
AD
64232001-12-10 Akim Demaille <akim@epita.fr>
6424
6425 * src/options.c (OPTN, DRTV, BOTH): New.
6426 (option_table): Use them.
6427
0edad749
AD
6428 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
6429 the job of system.h.
6430 * src/options.c: Don't include stdio.h and xalloc.h for the same
6431 reasons.
6432
5449dd0f
AD
64332001-12-10 Akim Demaille <akim@epita.fr>
6434
6435 * src/output.c (output, prepare): Make sure the values of the
6436 muscles `action' and `prologue' are 0-terminated.
6437
a870c567
AD
64382001-12-10 Akim Demaille <akim@epita.fr>
6439
6440 Clean up GCC warnings.
6441
6442 * src/reader.c (copy_action): `buf' is not used.
6443 (parse_skel_decl): Be static.
6444 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
6445 * src/options.h (create_long_option_table): Have a real prototype.
6446 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
6447 (hash_delete_at): Return const void *.
6448 Adjust casts to preserve the const.
6449
80df8768
AD
64502001-12-10 Akim Demaille <akim@epita.fr>
6451
6452 * configure.in: Require 2.52g.
6453 M4 is not needed, but AUTOM4TE is.
6454 * m4/m4.m4: Remove.
6455 * tests/Makefile.am: Adjust.
6456
f693ad14
AD
64572001-12-10 Akim Demaille <akim@epita.fr>
6458
6459 One structure for states is enough, even though theoretically
6460 there are LR(0) states and LALR(1) states.
6461
6462 * src/lalr.h (state_t): Remove.
6463 (state_table): Be state_t **, not state_t *.
6464 * src/state.h (core, CORE_ALLOC): Rename as...
6465 (state_t, STATE_ALLOC): this.
6466 Add the LALR(1) members: shifts, reductions, errs.
6467 * src/LR0.c (state_table): Rename as...
6468 (state_hash): this, to avoid name clashes with the global
6469 `state_table'.
6470 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
6471 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
6472
74ffbcb6
AD
64732001-12-10 Akim Demaille <akim@epita.fr>
6474
6475 Bison dumps core on bash.y.
6476 Reported by Pascal Bart.
6477
6478 * src/warshall.c (bitmatrix_print): New.
6479 (TC): Use it.
6480 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
6481 j must be the outer loop.
6482 * tests/regression.at (Broken Closure): New.
6483
07708e19
AD
64842001-12-05 Akim Demaille <akim@epita.fr>
6485
6486 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
6487 its argument.
6488