]> git.saurik.com Git - bison.git/blob - ChangeLog
d389e5a0d2b40cdbead90485a75a2dab779f9fd3
[bison.git] / ChangeLog
1 2003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2
3 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
4 of $1.
5
6 Changes in response to error report by S. Eken: GLR mode does not
7 handle negative $ indices or $ indices in embedded rules correctly.
8 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
9
10 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
11 (b4_rhs_location): Ditto.
12 (yyfill): New function to copy from stack tree into array
13 incrementally.
14 (yyuserAction): Modify to allow incremental move of semantic values
15 to rhs array when in GLR mode.
16 Define YYFILL to use in user-defined actions to fill semantic array
17 as needed.
18 Remove dummy use of yystack, as there is now a guaranteed use.
19 (yydoAction): Modify to allow incremental move of semantic values
20 to rhs array when in GLR mode.
21 (yyresolveAction): Ditto.
22 (yyglrShiftDefer): Update comment.
23 (yyresolveStates): Use X == NULL for pointers, not !X.
24 (yyglrReduce): Ditto.
25 (yydoAction): Ditto
26
27 * tests/glr-regr1.at: Rename to ...
28 * tests/glr-regression.at: Add new regression test for the problems
29 described above (adapted from S. Eken).
30 Update copyright notice.
31 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
32 * tests/Makefile.am: Ditto.
33
34 2003-01-28 Paul Eggert <eggert@twinsun.com>
35
36 * data/lalr1.cc: Do not use @output_header_name@ unless
37 b4_defines_flag is set. This fixes two bugs reported by
38 Tim Van Holder in
39 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
40 and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
41
42 2003-01-21 Paul Eggert <eggert@twinsun.com>
43
44 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
45 we don't need to worry about yyerrlab1 being reported as an
46 "unused label" by non-GCC C compilers. The downside is that if
47 locations are used then a couple of statements are duplicated each
48 time YYERROR is invoked, but the upside is that the warnings
49 should vanish.
50 (yyerrlab1): Move code to YERROR.
51 (yyerrlab2): Remove. Change uses back to yyerrlab1.
52 This reverts some of the 2002-12-27 change.
53
54 2003-01-17 Paul Eggert <eggert@twinsun.com>
55
56 * src/output.c (symbol_printers_output): Fix typo that led
57 to core dump. Problem reported by Antonio Rus in
58 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
59
60 2003-01-13 Akim Demaille <akim@epita.fr>,
61 Quoc Peyrot <chojin@lrde.epita.fr>,
62 Robert Anisko <anisko_r@lrde.epita.fr>
63
64 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
65 when the stacks contain one element, as the loop would otherwise
66 free the last state, and then use the top state (the one we just
67 popped). This means that the initial elements will not be freed
68 explicitly, as is the case in yacc.c; it is not a problem, as
69 these elements have fake values.
70
71 2003-01-11 Paul Eggert <eggert@twinsun.com>
72
73 * NEWS: %expect-violations are now just warnings, reverting
74 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
75 bootstrapping problem reported by Matthias Klose; see
76 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
77 * src/conflicts.c (conflicts_print): Likewise.
78 * tests/conflicts.at (%expect not enough, %expect too much,
79 %expect with reduce conflicts): Likewise.
80 * doc/bison.texinfo (Expect Decl): Document this. Also mention
81 that the warning is enabled if the number of conflicts changes
82 (not necessarily increases).
83
84 * src/getargs.c (version): Update copyright year.
85
86 2003-01-09 Akim Demaille <akim@epita.fr>
87
88 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
89
90 2003-01-08 Paul Eggert <eggert@twinsun.com>
91
92 * Makefile.maint (WGETFLAGS):
93 New macro, containing "-C off" to disable proxy caches.
94 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
95 (rel-check): Use $(WGET) instead of wget.
96
97 2003-01-06 Paul Eggert <eggert@twinsun.com>
98
99 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
100 the GLR paper of Scott, Johnstone and Hussain.
101
102 2003-01-04 Paul Eggert <eggert@twinsun.com>
103
104 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
105 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
106 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
107 (EXTRA_LIBRARIES): New var, for liby.a.
108 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
109 (EXTRA_SCRIPTS): New var, for yacc.
110
111 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
112 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
113 Problem reported by Nelson H. F. Beebe.
114
115 2003-01-03 Paul Eggert <eggert@twinsun.com>
116
117 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
118 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
119 when compiling Bison 1.875's `bitset bset = obstack_alloc
120 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
121
122 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
123 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
124 grow to a huge size with typical invocation.
125
126 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
127 Use the pattern recommended by Autoconf 2.57, except also protect
128 against double-definition.
129 * src/system.h: Likewise.
130 Portability issues reported by Nelson H. F. Beebe.
131
132 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
133 All uses changed. Provide a definition in both C and C++.
134 (yytrue, yyfalse): Define even if defined (__cplusplus).
135
136 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
137 Reported by Nelson H. F. Beebe.
138
139 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
140
141 2003-01-02 Paul Eggert <eggert@twinsun.com>
142
143 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
144 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
145 Bug reported by Nelson H. F. Beebe.
146
147 2003-01-01 Paul Eggert <eggert@twinsun.com>
148
149 * Version 1.875.
150
151 2002-12-30 Paul Eggert <eggert@twinsun.com>
152
153 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
154 Moved here from...
155 (<INITIAL>","): Here. This causes stray "," to be treated
156 more uniformly.
157
158 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
159 last brace in braced code when not in Yacc mode, for compatibility
160 with Bison 1.35. This resurrects the 2001-12-15 patch to
161 src/reader.c.
162
163 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
164 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
165
166 2002-12-28 Paul Eggert <eggert@twinsun.com>
167
168 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
169 that of SYM's type. This fixes Debian bug 168069, reported by
170 Thomas Olsson.
171
172 2002-12-28 Paul Eggert <eggert@twinsun.com>
173
174 Version 1.75f.
175
176 Switch back to the Yacc style of conflict reports, undoing some
177 of the 2002-07-30 change.
178 * doc/bison.texinfo (Understanding): Use Yacc style for
179 conflict reports. Also, use new way of locating rules.
180 * src/conflicts.c (conflict_report):
181 Renamed from conflict_report_yacc, removing the old
182 'conflict_report'. Translate the entire conflict report at once,
183 so that we don't assume that "," has the same interpretation in
184 all languages.
185 (conflicts_output): Use Yacc-style conflict report for each state,
186 instead of our more-complicated style.
187 (conflicts_print): Use Yacc-style conflict report, except print
188 the input file name when not emulating Yacc.
189 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
190 Conflicted Reduction, %expect not enough, %expect too much,
191 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
192 * tests/existing.at (GNU Cim Grammar): Likewise.
193 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
194
195 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
196 fatal): Don't invoke fflush; it's not needed and it might even be
197 harmful for stdout, as stdout might not be open.
198 * src/reduce.c (reduce_print): Likewise.
199
200 2002-12-27 Paul Eggert <eggert@twinsun.com>
201
202 Fix a bug where error locations were not being recorded correctly.
203 This problem was originally reported by Paul Hilfinger in
204 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
205
206 * data/yacc.c (yyparse): New local var yylerrsp, to record the
207 top of the location stack's error locations.
208 (yyerrlab): Set it. When discarding a token, push its location
209 onto yylerrsp so that we don't lose track of the error's end.
210 (yyerrlab1): Now is only the target of YYERROR, so that we can
211 properly record the location of the action that failed. For GCC
212 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
213 GCC warning about yyerrlab1 being unused if YYERROR is unused.
214 (yyerrlab2): New label, which yyerrlab now falls through to.
215 Compute the error's location by applying YYLLOC_DEFAULT to
216 the locations of all the symbols that went into the error.
217 * doc/bison.texinfo (Location Default Action): Mention that
218 YYLLOC_DEFAULT is also invoked for syntax errors.
219 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
220 Error locations include the locations of all the tokens that were
221 discarded, not just the last token.
222
223 2002-12-26 Paul Eggert <eggert@twinsun.com>
224
225 * src/files.c: Include quote.h.
226 (compute_output_file_names): Warn if we detect conflicting
227 outputs to the same file. This should catch the misunderstanding
228 exemplified by Debian Bug 165349, reported by Bruce Stephens..
229
230 * src/conflicts.c (conflicts_print): If the user specifies
231 "%expect N", report an error if there are any reduce/reduce
232 conflicts. This is what the manual says should happen.
233 This fixes Debian bug 130890, reported by Anthony DeRobertis.
234 * tests/conflicts.at (%expect with reduce conflicts): New test.
235
236 Don't use m4_include on relative file names, as it doesn't work as
237 desired if there happens to be a file with that name under ".".
238
239 * m4sugar/version.m4: Remove; it was included but it wasn't used.
240 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
241 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
242 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
243 * src/output.c (output_skeleton): Use full path names when
244 specifying a file to include; don't rely on include path, as
245 it's unreliable when the working file contains a file with
246 that name.
247
248 2002-12-25 Paul Eggert <eggert@twinsun.com>
249
250 Remove obsolete references to bison.simple and bison.hairy.
251 Problem mentioned by Aubin Mahe in
252 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
253 * data/glr.c: Comment fix.
254 * doc/bison.1: Remove references. Also, mention "yacc".
255
256 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
257 with -g option.
258
259 * src/parse-gram.y (declaration): Use enum "report_states" rather
260 than its numeric value 1.
261
262 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
263 opening a new one. This fixes Debian bug 165349, reported by
264 Bruce Stephens.
265
266 2002-12-24 Paul Eggert <eggert@twinsun.com>
267
268 Version 1.75e.
269
270 * Makefile.maint (cvs-update): Don't assume that the shell
271 supports $(...), as Solaris sh doesn't.
272
273 * src/parse-gram.y (lloc_default): Remove test for empty
274 nonterminals at the end, since it didn't change the result.
275
276 2002-12-24 Paul Eggert <eggert@twinsun.com>
277
278 If the user does not define YYSTYPE as a macro, Bison now declares it
279 using typedef instead of defining it as a macro. POSIX requires this.
280 For consistency, YYLTYPE is also declared instead of defined.
281
282 %union directives can now have a tag before the `{', e.g., the
283 directive `%union foo {...}' now generates the C code
284 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
285 The default union tag is `YYSTYPE', for compatibility with Solaris 9
286 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
287 instead of `yyltype'.
288
289 `yystype' and `yyltype' are now obsolescent macros instead of being
290 typedefs or tags; they are no longer documented and will be
291 withdrawn in a future release.
292
293 * data/glr.c (b4_location_type): Remove.
294 (YYSTYPE): Renamed from yystype.
295 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
296 (struct YYLTYPE): Renamed from struct yyltype.
297 (YYLTYPE): Renamed from yyltype.
298 (yyltype, yystype): New (and obsolescent) macros,
299 for backward compatibility.
300 * data/yacc.c: Likewise.
301
302 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
303 does not specify a union tag. This is for compatibility with
304 Solaris 9 yacc.
305
306 * src/parse-gram.y (add_param): 2nd arg is now char * not char
307 const *, since it is now modified by stripping surrounding { }.
308 (current_braced_code): Remove.
309 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
310 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
311 trailing " {...}". Now of type <chars>.
312 (grammar_declaration): Adjust to bundled tokens.
313 (code_content): Remove; stripping is now done by add_param.
314 (print_token_value): Print contents of bundled tokens.
315 (token_name): New function.
316
317 * src/reader.h (braced_code, current_braced_code): Remove.
318 (token_name): New decl.
319
320 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
321 token_type, not braced_code code_kind. All uses changed.
322 (SC_PRE_CODE): New state, for scanning after a keyword that
323 has (or usually has) an immediately-following braced code.
324 (token_type): New local var, to keep track of which token type
325 to return when scanning braced code.
326 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
327 <INITIAL>"%parse-param", <INITIAL>"%printer",
328 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
329 instead of returning a token type immediately.
330 (<INITIAL>"{"): Set token type.
331 (<SC_BRACED_CODE>"}"): Use it.
332 (handle_action_dollar, handle_action_at): Now returns bool
333 indicating success. Fail if ! current_rule; this prevents a core dump.
334 (handle_symbol_code_dollar, handle_symbol_code_at):
335 Remove; merge body into caller.
336 (handle_dollar, handle_at): Complain in invalid contexts.
337
338 * NEWS, doc/bison.texinfo: Document the above.
339 * NEWS: Fix years and program names in copyright notice.
340
341 2002-12-17 Paul Eggert <eggert@twinsun.com>
342
343 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
344 Reporting, Table of Symbols): Omit mentions of %lex-param and
345 %parse-param from the documentation for now.
346
347 2002-12-15 Paul Eggert <eggert@twinsun.com>
348
349 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
350 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
351 lookahead symbol, and which sets yychar in parser actions) and it
352 disagreed with the Bison documentation. Bug
353 reported by Andrew Walrond.
354
355 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
356 as the caller now does that.
357 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
358 (YYEMPTY): Parenthesize right hand side, since others use it.
359 (yyparse): Don't assume that our generated code is the only code
360 that sets yychar.
361
362 2002-12-13 Paul Eggert <eggert@twinsun.com>
363
364 Version 1.75d.
365
366 POSIX requires a "yacc" command.
367 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
368 (MOSTLYCLEANFILES): Add yacc.
369 (yacc): New rule.
370 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
371 as an alias for bison y.
372
373 * po/LINGUAS: Add da.
374
375 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
376 problem with latest <getopt.h>.
377 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
378
379 * doc/fdl.texi: Upgrade to 1.2.
380 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
381 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
382 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
383 gnulib.
384 * config/install-sh: Sync with autotools.
385
386 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
387 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
388 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
389 locations are requested.
390 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
391 locations are requested.
392
393 2002-12-12 Paul Eggert <eggert@twinsun.com>
394
395 Remove unportable casts and storage allocation tricks.
396 While we're at it, remove almost all casts, since they
397 usually aren't needed and are a sign of trouble.
398
399 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
400
401 * src/derives.c (derives_compute): Do not subtract NTOKENS from
402 the pointer DSET returned by malloc; this isn't portable.
403 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
404 Similarly for DERIVES.
405 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
406 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
407 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
408
409 * src/derives.c (derives_compute): Do not bother invoking
410 int_of_rule_number, since rule numbers are integers.
411
412 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
413 rather than XMALLOC (char, N).
414
415 * src/files.c (filename_split): Rewrite to avoid cast.
416
417 * src/gram.h (symbol_number_as_item_number,
418 item_number_as_symbol_number, rule_number_as_item_number,
419 item_number_as_rule_number):
420 Now inline functions rather than macros, to avoid casts.
421 * src/state.h (state_number_as_int): Likewise.
422 * src/tables.c (state_number_to_vector_number,
423 symbol_number_to_vector_number): Likewise.
424
425 * src/gram.h (int_of_rule_number): Remove; no longer used.
426
427 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
428 since the resulting storage is always stored into.
429
430 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
431 where it's needed.
432
433 * src/muscle_tab.c (muscle_m4_output):
434 Now inline. Return bool, not int.
435 * src/state.c (state_compare): Likewise.
436 * src/symtab.c (symbol_check_defined,
437 symbol_check_alias_consistency, symbol_pack, symbol_translation,
438 hash_compare_symbol, hash_symbol):
439 Likewise.
440 * src/uniqstr.c (uniqstr_print): Likewise.
441 * src/muscle_tab.c (muscle_m4_output_processor):
442 New function, to avoid casts.
443 * src/state.c (state_comparator, stage_hasher): Likewise.
444 * src/symtab.c (symbol_check_defined_processor,
445 symbol_check_alias_consistency_processor, symbol_pack_processor,
446 symbol_translation_processor, hash_symbol_comparator,
447 hash_symbol_hasher): Likewise.
448 * src/uniqstr.c (uniqstr_print_processor): Likewise.
449 * src/muscle_tab.c (muscles_m4_output):
450 Use new functions instead of casting old functions unportably.
451 * src/state.c (state_hash_new): Likewise.
452 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
453 symbols_token_translations_init):
454 Likewise.
455 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
456
457 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
458 var instead of casting to long, to avoid casts.
459 (prepare_states): Use MALLOC rather than alloca, so that we don't
460 have to worry about alloca.
461 * src/state.c (state_hash_lookup): Likewise.
462
463 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
464 local var instead of casting to unsigned char, to avoid casts.
465
466 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
467 STATE_ALLOC): Remove.
468 (transitions_new, errs_new, reductions_new, state_new): Use malloc
469 rather than calloc, and use offsetof to avoid allocating slightly
470 too much storage.
471 (state_new): Initialize all members.
472
473 * src/state.c (state_hash): Use unsigned accumulator, not signed.
474
475 * src/symtab.c (symbol_free): Remove; unused.
476 (symbol_get): Remove cast in lhs of assignment.
477 (symbols_do): Now static. Accept generic arguments, not
478 hashing-related ones.
479
480 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
481 (symbol_processor): Remove.
482 (symbols_do): Remove decl; now static.
483
484 * src/system.h (alloca): Remove; decl no longer needed.
485 (<stddef.h>): Include, for offsetof.
486 (<inttypes.>, <stdint.h>): Include if available.
487 (uintptr_t): New type, if system lacks it.
488 (CALLOC, MALLOC, REALLOC): New macros.
489 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
490 new macros.
491
492 * src/tables.c (table_size): Now int, to pacify GCC.
493 (table_grow, table_ninf_remap): Use signed table size.
494 (save_row): Don't bother initializing locals when not needed.
495 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
496 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
497
498 * src/vcg.h: Correct misspellings.
499
500 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
501
502
503 * src/getargs.c (getargs): Don't assume EOF == -1.
504
505 2002-12-09 Paul Eggert <eggert@twinsun.com>
506
507 Change identifier spellings to avoid collisions with names
508 that are reserved by POSIX.
509
510 Don't use names ending in _t, since POSIX reserves them.
511 For consistency, remove _e and _s endings -- they're weren't
512 needed to remove ambiguity. All uses changed.
513 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
514 turn was just renamed from struniq_t.
515 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
516 which in turn was just renamed from struniq_processor_t.
517 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
518 in turn was renamed from hash_compare_struniq_t.
519 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
520 (state_list): Renamed from state_list_t.
521 * src/assoc.h (assoc): Renamed from assoc_t.
522 * src/conflicts.c (enum conflict_resolution): Renamed from
523 enum conflict_resolution_e.
524 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
525 (rule_list): Renamed from rule_list_t.
526 * src/getargs.h (enum trace): Renamed from enum trace_e.
527 (enum report): Renamed from enum report_e.
528 * src/gram.h (item_number): Renamed from item_number_t.
529 (rule_number): Renamed from rule_number_t.
530 (struct rule_s): Remove the "rule_s" part; not used.
531 (rule): Renamed from rule_t.
532 (rule_filter): Renamed from rule_filter_t.
533 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
534 (goto_list): Renamed from goto_list_t.
535 * src/lalr.h (goto_number): Renamed from goto_number_t.
536 * src/location.h (location): Renamed from location_t.
537 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
538 and moved here from:
539 * src/muscle_tab.h (muscle_entry_t): here.
540 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
541 (rule_list): Renamed from rule_list_t.
542 * src/print_graph.c (static_graph): Renamed from graph.
543 * src/reader.h (braced_code): Renamed from braced_code_t.
544 Remove brace_code_e tag.
545 * src/relation.h (relation_node): Renamed from relation_node_t.
546 (relation_nodes): Renamed from relation_nodes_t.
547 (relation): Renamed from relation_t.
548 * src/state.h (state_number): Renamed from state_number_t.
549 (struct state): Renamed from struct state_s.
550 (state): Renamed from state_t.
551 (transitions): Renamed from transitions_t. Unused (and
552 misspelled) transtion_s tag removed.
553 (errs): Renamed from errs_t. Unused errs_s tag removed.
554 (reductions): Renamed from reductions_t. Unused tag
555 reductions_s removed.
556 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
557 (struct symbol_list): Renamed from struct symbol_list_s.
558 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
559 (struct symbol): Renamed from struct symbol_s.
560 (symbol): Renamed from symbol_t.
561 * src/tables.c (vector_number): Renamed from vector_number_t.
562 (action_number): Renamed from action_t.
563 * src/tables.h (base_number): Renamed from base_t.
564 * src/vcg.h (enum color): Renamed from enum color_e.
565 (enum textmode): Renamed from enum textmode_e.
566 (enum shape): Renamed from enum shape_e.
567 (struct colorentry): Renamed from struct colorentry_s.
568 (struct classname): Renamed from struct classname_s.
569 (struct infoname): Renamed from struct infoname_s.
570 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
571 (enum decision): Renamed from enum decision_e.
572 (enum orientation): Renamed from enum orientation_e.
573 (enum alignment): Renamed from enum alignment_e.
574 (enum arrow_mode): Renamed from enum arrow_mode_e.
575 (enum crossing_type): Renamed from enum crossing_type_e.
576 (enum view): Renamed from enum view_e.
577 (struct node): Renamed from struct node_s.
578 (node): Renamed from node_t.
579 (enum linestyle): Renamed from enum linestyle_e.
580 (enum arrowstyle): Renamed from enum arrowstyle_e.
581 (struct edge): Renamed from struct edge.
582 (edge): Renamed from edge_t.
583 (struct graph): Renamed from struct graph_s.
584 (graph): Renamed from graph_t.
585 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
586 Rename value_t -> value.
587 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
588 value_t_as_yystype -> value_as_yystype.
589
590 Don't include <errno.h> in the mainstream code, since it
591 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
592 * lib/get-errno.c, lib/get-errno.h: New files.
593 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
594 get-errno.c.
595 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
596 * src/output.c (output_skeleton): Likewise.
597 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
598 instead of errno.
599 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
600 Likewise.
601 (handle_action_dollar, handle_action_at): Likewise.
602 * src/system.h: Do not include <errno.h>.
603 (TAB_EXT): Renamed from EXT_TAB.
604 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
605
606 Avoid str[a-z]*, since <string.h> reserves that name space.
607 Change all instances of "struniq" in names to "uniqstr", and
608 likewise for "STRUNIQ" and "UNIQSTR".
609 * src/uniqstr.c: Renamed from src/struniq.c.
610 * src/uniqstr.h: Renamed from src/struniq.h.
611 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
612 * src/files.c (strsuffix): Remove; unused.
613 (concat2): Renamed from stringappend. Now static.
614 * src/files.h (strsuffix, stringappend): Remove; unused.
615 * src/parse-gram.y (<chars>): Renamed from <string>.
616 (<uniqstr>): Renamed from <struniq>.
617 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
618 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
619 (struct graph_s.expand): Renamed from struct graph_s.stretch.
620 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
621 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
622 (N_EXPAND): Renamed from N_STRETCH.
623
624 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
625 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
626 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
627 Remove; unused.
628 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
629 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
630 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
631 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
632 (BASE_MAXIMUM): Renamed from BASE_MAX.
633 (BASE_MINIMUM): Renamed from BASE_MIN.
634 (ACTION_MAX): Remove; unused.
635 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
636 Unnecessary casts removed from above defines.
637
638
639 Fix misspelling in names.
640 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
641 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
642 G_NODE_ALIGNEMENT.
643
644
645 * lib/timevar.c (timevar_report): Renamed from time_report,
646 for consistency with other names.
647 * lib/timevar.h (timevar_report): New decl.
648 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
649
650
651 Sort include-file uses.
652
653 Reorder all include files under src to be in the order "system.h".
654 then the ../lib include files in angle brackets (alphabetized),
655 then the . include files in double-quotes (alphabetized). Fix
656 dependency breakages encountered in this process, as follows:
657 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
658 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
659 * src/state.h: Include "symtab.h".
660
661 2002-12-08 Paul Eggert <eggert@twinsun.com>
662
663 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
664 since this causes problems when __file__ contains character
665 sequences like "@" that are treated specially by src/scan-skel.l.
666 Instead, just use the file's basename. This fixes the bug
667 reported by Martin Mokrejs in
668 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
669
670 2002-12-06 Paul Eggert <eggert@twinsun.com>
671
672 Add support for rules that do not have trailing semicolons, as
673 POSIX requires. Improve the quality of locations in Bison
674 diagnostics.
675
676 * src/location.c: Include <quotearg.h>.
677 (empty_location): Now const.
678 (location_print): New function. Follow the recommendation of the
679 GNU Coding Standards for locations that span file boundaries.
680 * src/location.h: Do not include <quotearg.h>; no longer needed.
681 (boundary): New type.
682 (location_t): Use it. This allows locations to span file boundaries.
683 All member uses changed: file -> start.file or end.file (as needed),
684 first_line -> start.line, first_column -> start.column,
685 last_line -> end.line, last_column -> end.column.
686 (equal_boundaries): New function.
687 (LOCATION_RESET, LOCATION_STEP): Remove.
688 (LOCATION_PRINT): Remove. All callers changed to use location_print.
689 (empty_location): Now const.
690 (location_print): New decl.
691 * src/parse-gram.y (lloc_default): New function, which handles
692 empty locations more accurately.
693 (YYLLOC_DEFAULT): Use it.
694 (%token COLON): Remove.
695 (%token ID_COLON): New token.
696 (rules): Use it.
697 (declarations, rules): Remove trailing semicolon.
698 (declaration, rules_or_grammar_declaration):
699 Allow empty (";") declaration.
700 (symbol_def): Remove empty actions; no longer needed.
701 (rules_or_grammar_declaration): Remove trailing semicolon.
702 (semi_colon.opt): Remove.
703 * src/reader.h: Include location.h.
704 (scanner_cursor): New decl.
705 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
706 rolling our own.
707 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
708 of *loc.
709 (STEP): Remove. No longer needed, now that adjust_location does
710 the work. All uses removed.
711 (scanner_cursor): New var.
712 (adjust_location): Renamed from extend_location. It now sets
713 *loc and adjusts the scanner cursor. All uses changed.
714 Don't bother testing for CR.
715 (handle_syncline): Remove location arg; now updates scanner cursor.
716 All callers changed.
717 (unexpected_end_of_file): Now accepts start boundary of token or
718 comment, not location. All callers changed. Update scanner cursor,
719 not the location.
720 (SC_AFTER_IDENTIFIER): New state.
721 (context_state): Renamed from c_context. All uses changed.
722 (id_loc, code_start, token_start): New local vars.
723 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
724 processing of Yacc white space and equivalents here.
725 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
726 instead of returning ID immediately, since we need to search for
727 a subsequent colon.
728 (<INITIAL>"'", "\""): Save token_start.
729 (<INITIAL>"%{", "{", "%%"): Save code_start.
730 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
731 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
732 BEGIN context_state at end, not INITIAL.
733 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
734 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
735 Return correct token start.
736 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
737 the start of a character, string or multiline comment is found.
738 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
739 Reduction): Adjust reported locations to match the more-precise
740 results now expected.
741 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
742 * tests/reduce.at (Useless Rules, Reduced Automaton,
743 Underivable Rules): Likewise.
744 * tests/regression.at (Invalid inputs): No longer `expecting ";"
745 or "|"' now that so many other tokens are allowed by the new grammar.
746
747 * src/complain.h (current_file): Remove duplicate decl;
748 current_file is now owned by files.h.
749 * src/complain.c, src/scan-gram.l: Include files.h.
750
751 2002-12-06 Paul Eggert <eggert@twinsun.com>
752
753 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
754 promotes to int; it might be unsigned int.
755 * data/yacc.c (yy_reduce_print): Likewise.
756
757 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
758 be #defined in the prologue, not in the Bison declarations.
759 This fixes Debian Bug 102878, reported by Shaul Karl.
760
761 2002-12-02 Paul Eggert <eggert@twinsun.com>
762
763 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
764 * lib/strtoul.c: New file, from gnulib.
765 This fixes a porting bug reported by Peter Klein in
766 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
767
768 2002-11-30 Paul Eggert <eggert@twinsun.com>
769
770 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
771 and put only a forward declaration in the prologue. This is for
772 consistency with the other scanner helper functions.
773
774 Type clashes now generate warnings, not errors, since it
775 appears that POSIX may allow some grammars with type clashes.
776 * src/reader.c (grammar_current_rule_check): Warn about
777 type clashes instead of complaining.
778 * tests/input.at (Type Clashes): Expect warnings, not complaints.
779
780 Add Yacc library, since POSIX requires it.
781 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
782 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
783 * lib/main.c, lib/yyerror.c: New files.
784
785 gram_error can be static; it need not be extern.
786 * src/reader.h (gram_error): Remove decl.
787 * src/parse-gram.y (gram_error): Now static. Add static decl.
788 (print_token_value): Omit parameter names from forward decl,
789 for consistency.
790
791 2002-11-29 Paul Eggert <eggert@twinsun.com>
792
793 * doc/bison.texinfo: Emphasize that yylex and yyerror must
794 be declared before being used. E.g., one should typically
795 declare them in the prologue. Use GNU coding style in examples.
796 Put "const" consistently after the type it modifies. Mention
797 that C99 supports "inline". Mention that yyerror traditionally
798 returns "int".
799
800 %parse-param and %lex-param now take just one argument, the
801 declaration; the argument name is deduced from the declaration.
802
803 * doc/bison.texinfo (Parser Function, Pure Calling, Error
804 Reporting, Table of Symbols): Document this.
805 * src/parse-gram.y (add_param): New function.
806 (COMMA): Remove.
807 (declaration): Implement new rule for %parse-param and %lex-param.
808 * src/scan-gram.l: "," now elicits a warning, rather than being
809 a token; this is more compatible with byacc.
810 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
811
812 2002-11-27 Paul Eggert <eggert@twinsun.com>
813
814 Rename identifiers to avoid real and potential collisions.
815
816 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
817 to avoid collision with lex macro described by Bruce Lilly in
818 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
819 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
820 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
821 * src/parse-gram.y (print_token_value): Renamed from yyprint.
822 All uses changed.
823 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
824 The name "yycontrol" violates the name space rules, and this stuff
825 wasn't being used anyway.
826 (input): Remove action; this stuff wasn't being used.
827 (gram_error): Rename local variable yylloc -> loc.
828 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
829 (YY_DECL): Don't use "yy" at start of local variables.
830 All uses changed, e.g., yylloc -> loc.
831 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
832 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
833 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
834 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
835
836 * src/parse-gram.y (gram_error): loc is now const *.
837 * src/reader.h (gram_error): Likewise.
838
839 2002-11-24 Paul Eggert <eggert@twinsun.com>
840
841 Version 1.75c.
842
843 * tests/actions.at (Actions after errors): Use an output format
844 more similar to that of the Printers and Destructors test.
845 Test the position of the ';' token too.
846 (Printers and Destructors): Likewise.
847 (Printers and Destructors: %glr-parser): Remove for now, to avoid
848 unnecessarily alarming people when the test fails.
849
850 * data/yacc.c (yyerrlab1): Move this label down, so that the
851 parser does not discard the lookahead token if the user code
852 invokes YYERROR. This change is required for POSIX conformance.
853
854 * lib/error.c: Sync with gnulib.
855
856 2002-11-22 Paul Eggert <eggert@twinsun.com>
857
858 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
859 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
860 * lib/xmalloc.c: Likewise.
861
862 2002-11-20 Paul Eggert <eggert@twinsun.com>
863
864 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
865
866 2002-11-20 Paul Eggert <eggert@twinsun.com>
867
868 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
869 should use `if (! x) abort ();' rather than `assert (x);', and
870 anyway it's one less thing to worry about configuring.
871
872 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
873 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
874 and replace all instances of assert with abort.
875 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
876 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
877
878 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
879 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
880 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
881 hash_find_entry, hash_rehash, hash_insert): Likewise.
882 * src/conflicts.c (resolve_sr_conflict): Likewise.
883 * src/lalr.c (set_goto_map, map_goto): Likewise.
884 * src/nullable.c (nullable_compute): Likewise.
885 * src/output.c (prepare_rules, token_definitions_output): Likewise.
886 * src/reader.c (packgram, reader): Likewise.
887 * src/state.c (state_new, state_free, state_transitions_set,
888 state_reduction_find): Likewise.
889 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
890 symbol_pack): Likewise.
891 * src/tables.c (conflict_row, pack_vector): Likewise.
892 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
893 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
894 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
895 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
896
897 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
898 (ARGMATCH_CONSTRAINT): New macro.
899 (ARGMATCH_ASSERT): Use it.
900
901 * src/system.h (verify): New macro.
902 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
903 rather than assert.
904 * src/tables.c (tables_generate): Likewise.
905
906 * src/struniq.c (struniq_assert): Now returns void, and aborts
907 if the assertion is false.
908 (struniq_assert_p): Remove.
909 * src/struniq.h: Likewise.
910
911 2002-11-18 Paul Eggert <eggert@twinsun.com>
912
913 * data/glr.c (yygetLRActions): Replace `yyindex' with
914 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
915 This fixes the regression with Sun ONE Studio 7 cc that I reported in
916 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
917
918 2002-11-18 Akim Demaille <akim@epita.fr>
919
920 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
921 space.
922 From Tim Van Holder.
923
924 2002-11-17 Paul Eggert <eggert@twinsun.com>
925
926 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
927 to "SyntaxError" for consistency with my 2002-11-15 change.
928
929 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
930 not define to {}, since this breaks the common use of `YYDPRINTF
931 ((...));' if a single statement is desired (e.g. before `else').
932 Work around GCC warnings by surrounding corresponding calls with
933 {} if needed.
934 (yyhasResolvedValue): Remove unused function.
935 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
936 loop body.
937 (yyreportSyntaxError): Renamed from yyreportParseError.
938 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
939 All uses changed.
940 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
941 extern when possible. Remove unused initializations.
942
943 2002-11-16 Akim Demaille <akim@epita.fr>
944
945 Augment the similarity between GLR and LALR traces.
946
947 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
948 (YY_REDUCE_PRINT): New.
949 (yyparse): Use them.
950 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
951 YYDPRINT here.
952 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
953 state reached after the reduction/recovery, since...
954 (yyparse, yyprocessOneStack): Report the state we are entering in.
955
956 2002-11-16 Akim Demaille <akim@epita.fr>
957
958 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
959 Add support for --trace=skeleton.
960 * src/scan-skel.l: %option debug.
961 Scan strings of non-@ or \n instead of character by character.
962 (scan_skel): Handle trace_skeleton.
963 (QPUTS): New.
964 (@output_parser_name@, @output_header_name@): ``Restore'' their
965 support (used to be M4 macros).
966 * data/yacc.c: Quote larger chunks, a la glr.c.
967 * data/lalr1.cc: Likewise.
968 The header guards are no longer available, so use some other
969 string than `YYLSP_NEEDED'.
970
971 2002-11-16 Akim Demaille <akim@epita.fr>
972
973 Make the ``Printers and Destructors'' test more verbose, taking
974 `yacc.c''s behavior as (possibly wrong) reference.
975
976 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
977 instead of fprint on stdout.
978 Set and report the last_line of the symbols.
979 Consistently display values and locations.
980
981 2002-11-16 Paul Eggert <eggert@twinsun.com>
982
983 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
984
985 2002-11-15 Paul Eggert <eggert@twinsun.com>
986
987 * tests/actions.at (Actions after errors): New test case.
988
989 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
990 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
991 tests/action.at, tests/calc.at, tests/conflicts.at,
992 tests/cxx-type.at, tests/regression.at:
993 "parse error" -> "syntax error" for POSIX compatibility.
994 "parsing stack overflow..." -> "parser stack overflow" so
995 that code matches Bison documentation.
996
997 2002-11-15 Akim Demaille <akim@epita.fr>
998
999 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
1000 take two BRACED_CODE, not two string_content.
1001 Free the scanner's obstack when we are done.
1002 (code_content): New.
1003 * tests/calc.at: Adjust.
1004 * doc/bison.texinfo: Adjust.
1005 Also, make sure to include the `,' for these declarations.
1006
1007 2002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
1008
1009 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
1010 definition; avoids potential autoreconf problems.
1011
1012 2002-11-15 Akim Demaille <akim@epita.fr>
1013
1014 Always check the value returned by yyparse.
1015
1016 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
1017 returned by yyparse.
1018 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
1019 Adjust calls.
1020 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
1021 returned by yyparse.
1022
1023 2002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1024
1025 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
1026 on input.at test.
1027
1028 2002-11-14 Paul Eggert <eggert@twinsun.com>
1029
1030 * src/output.c (output_skeleton): Call xfopen instead of
1031 duplicating xfopen's body.
1032
1033 Fix bugs reported by Nelson H. F. Beebe in
1034 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
1035
1036 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
1037 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
1038 Group compiler. Instead, use "$CC -E bar.c". Include the .h
1039 file twice in the grammar, as an extra check.
1040
1041 * tests/input.at (Torturing the Scanner): Surround the
1042 backslash-newline tests with "#if 0", to make it less likely that
1043 we'll run into compiler bugs. Bring back solitary \ inside
1044 comment, but add a closing comment to work around HP C bug. Don't
1045 test backslash-newline in C character constant.
1046
1047 2002-11-14 Akim Demaille <akim@epita.fr>
1048
1049 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
1050 status of the compiler.
1051 Calling `exit 1' is no longer needed.
1052 Reported by Nelson H. F. Beebe.
1053
1054 2002-11-14 Akim Demaille <akim@epita.fr>
1055
1056 * tests/atlocal.in (CPPFLAGS): We have config.h.
1057 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
1058 New.
1059 * tests/actions.at, tests/calc.at, tests/conflicts.at,
1060 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
1061 * tests/regression.at, tests/torture.at: Use them for all the
1062 grammars that are to be compiled.
1063 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
1064 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
1065 * doc/bison.texinfo (GLR Parsers): Document `inline'.
1066
1067 2002-11-14 Akim Demaille <akim@epita.fr>
1068
1069 * doc/bison.texinfo: Various formatting changes (alignments in
1070 samples, additional @group/@end group, GCS in samples.
1071 Use @deffn instead of simple @table to define the directives,
1072 macros, variables etc.
1073
1074 2002-11-13 Paul Eggert <eggert@twinsun.com>
1075
1076 Fix some bugs reported by Albert Chin-A-Young in
1077 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
1078
1079 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
1080 -o c"; the HP C compiler chatters during compilation.
1081 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
1082 * tests/headers.at (export YYLTYPE): Likewise.
1083
1084 * tests/input.at (Torturing the Scanner): Remove lines containing
1085 solitary backslashes, as they tickle a bug in the HP C compiler.
1086
1087 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
1088 comments, since they're not portable. Use GNU coding style.
1089
1090 2002-11-13 Akim Demaille <akim@epita.fr>
1091
1092 * data/yacc.c: Leave bigger chunks of quoted text.
1093 (YYDSYMPRINTF): New.
1094 Use it to report symbol activities.
1095 * data/glr.c (YYDSYMPRINTF): New.
1096 Use it.
1097
1098 2002-11-12 Paul Eggert <eggert@twinsun.com>
1099
1100 Version 1.75b.
1101
1102 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
1103 (yyglrReduce): Return yyok, not 0.
1104 This should avoid the enumerated-type warnings reported
1105 by Nelson H. F. Beebe in
1106 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
1107
1108 * lib/bbitset.h (BITSET_INLINE): Remove.
1109 * lib/bitset.h [! BITSET_INLINE]: Remove.
1110 (bitset_set, bitset_reset, bitset_test): Rename local vars
1111 to avoid shadowing warnings by GCC.
1112
1113 * data/glr.c (inline): Remove #define. It's the user's
1114 responsibility to #define it away, just like 'const'.
1115 This fixes one of the bugs reported by Nelson H. F. Beebe in
1116 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
1117
1118 * Makefile.maint (po-check): Scan .l and .y files instead of the
1119 .c and the .h files that they generate. This fixes the bug
1120 reported by Tim Van Holder in:
1121 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
1122 Look for N_ as well as for _. Try to avoid matching #define for
1123 N_ and _.
1124 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
1125 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
1126 * src/scan-gram.l: Revamp regular expressions so that " and '
1127 do not confuse xgettext.
1128
1129 * src/struniq.h (struniq_new): Do not declare the return type
1130 to be 'const'; this violates the C standard.
1131 * src/struniq.c (struniq_new): Likewise.
1132
1133 2002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
1134
1135 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
1136 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
1137 linker.
1138
1139 2002-11-12 Akim Demaille <akim@epita.fr>
1140
1141 * Makefile.maint: Sync with Autoconf:
1142 (local_updates): New.
1143
1144 2002-11-12 Akim Demaille <akim@epita.fr>
1145
1146 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
1147
1148 2002-11-12 Akim Demaille <akim@epita.fr>
1149
1150 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
1151 locations.
1152
1153 2002-11-12 Akim Demaille <akim@epita.fr>
1154
1155 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
1156 not yyvalue.
1157
1158 2002-11-12 Akim Demaille <akim@epita.fr>
1159
1160 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
1161 Use it to test the GLR parser.
1162
1163 2002-11-12 Akim Demaille <akim@epita.fr>
1164
1165 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
1166 defines it.
1167 * data/glr.c (yystos): New.
1168 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
1169 (YYDSYMPRINT): New.
1170 (yyval): Don't define it, it is handled via M4.
1171 (yyrecoverParseError): Free verbosely the discarded symbols.
1172 * data/yacc.c (yysymprint): Remove, rather...
1173 (b4_yysymprint_generate): invoke.
1174 * data/c.m4 (b4_yysymprint_generate): New.
1175 Accept pointers as arguments, as opposed to the version from
1176 yacc.c.
1177 (b4_yydestruct_generate): Likewise.
1178 * tests/cations.at (Printers and Destructors): Use Bison directives
1179 instead of CPP macros.
1180 Don't rely on internal details.
1181
1182 2002-11-12 Akim Demaille <akim@epita.fr>
1183
1184 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
1185 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
1186 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
1187 it against YYEMPTY and so forth), work on yytoken (i.e., set
1188 it to YYEMPTY etc.).
1189 (yydestruct): Replace with a b4_yydestruct_generate invocation.
1190 (b4_symbol_actions): Remove.
1191 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
1192 for 0, end-of-input.
1193
1194 2002-11-12 Akim Demaille <akim@epita.fr>
1195
1196 * doc/bison.texinfo (Destructor Decl): New.
1197
1198 2002-11-12 Akim Demaille <akim@epita.fr>
1199
1200 * src/tables.c (tables_generate): Use free for pointers that
1201 cannot be NULL, not XFREE.
1202 (pack_vector): Use assert, not fatal, for bound violations.
1203 * src/state.c (state_new): Likewise.
1204 * src/reader.c (reader): Likewise.
1205 * src/lalr.c (set_goto_map): Likewise.
1206 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
1207 the file name.
1208
1209 2002-11-12 Akim Demaille <akim@epita.fr>
1210
1211 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
1212 Restore.
1213 * src/scan-gram.l (last_string): Is global to the file, not to
1214 yylex.
1215 * src/parse-gram.y (input): Don't append the epilogue here,
1216 (epilogue.opt): do it here, and free the scanner's obstack.
1217 * src/reader.c (epilogue_set): Rename as...
1218 (epilogue_augment): this.
1219 * data/c.m4 (b4_epilogue): Defaults to empty.
1220
1221 2002-11-12 Akim Demaille <akim@epita.fr>
1222
1223 * src/getargs.c (long_options): Remove duplicates.
1224 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
1225 Remove.
1226 * doc/bison.rnh: Remove.
1227 * doc/bison.texinfo (VMS Invocation): Remove.
1228
1229 2002-11-12 Akim Demaille <akim@epita.fr>
1230
1231 * src/struniq.h, src/struniq.c (struniq_t): Is const.
1232 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
1233
1234 Use struniq for symbols.
1235
1236 * src/symtab.h (symbol_t): The tag member is a struniq.
1237 (symbol_type_set): Adjust.
1238 * src/symtab.c (symbol_new): Takes a struniq.
1239 (symbol_free): Don't free the tag member.
1240 (hash_compare_symbol_t, hash_symbol_t): Rename as...
1241 (hash_compare_symbol, hash_symbol): these.
1242 Use the fact that tags as struniqs.
1243 (symbol_get): Use struniq_new.
1244 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
1245 Returns a strniq.
1246 * src/reader.h (merger_list, grammar_currentmerge_set): The name
1247 and type members are struniqs.
1248 * src/reader.c (get_merge_function)
1249 (grammar_current_rule_merge_set): Adjust.
1250 (TYPE, current_type): Are struniq.
1251
1252 Use struniq for file names.
1253
1254 * src/files.h, src/files.c (infile): Split into...
1255 (grammar_file, current_file): these.
1256 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
1257 * src/reduce.c (reduce_print): Likewise.
1258 * src/getargs.c (getargs): Likewise.
1259 * src/complain.h, src/complain.c: Likewise.
1260 * src/main.c (main): Call struniqs_new early enough to use it for
1261 file names.
1262 Don't free the input file name.
1263
1264 2002-11-12 Akim Demaille <akim@epita.fr>
1265
1266 * src/symtab.c (symbol_free): Remove dead deactivated code:
1267 type_name are properly removed.
1268 Don't use XFREE to free items that cannot be NULL.
1269 * src/struniq.h, src/struniq.c: New.
1270 * src/main.c (main): Initialize/free struniqs.
1271 * src/parse-gram.y (%union): Add astruniq member.
1272 (yyprint): Adjust.
1273 * src/scan-gram.l (<{tag}>): Return a struniq.
1274 Free the obstack bit that used to store it.
1275 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
1276
1277 2002-11-11 Paul Eggert <eggert@twinsun.com>
1278
1279 Revamp to fix many (but not all) of the C- and M4-related quoting
1280 problems. Among other things, this fixes the Bison bug reported
1281 by Jan Hubicka when processing the Bash grammar; see:
1282 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
1283
1284 Use new @ escapes consistently. Represent brackets with @{ and @}
1285 rather than @<:@ and @:>@, since this works a bit better with dumb
1286 editors like vi. Represent @ with @@, since @ is now consistently
1287 an escape. Use @oline@ and @ofile@ rather than __oline__ and
1288 __ofile__, to avoid unexpected expansions. Similarly, use @output
1289 rather than #output.
1290
1291 * data/c.m4 (b4_copyright): Omit file name from comment, since
1292 the file name could contain "*/".
1293 (b4_synclines_flag): Don't quote the 2nd argument; it should already
1294 be quoted. All uses changed.
1295
1296 * data/glr.c: Use new @ escapes consistently.
1297 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
1298 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
1299 Remove, since they couldn't handle arbitrary characters in file
1300 names.
1301 * data/lalr1.cc: Likewise.
1302 * data/yacc.c: Likewise.
1303
1304 * src/files.c (output_infix): Remove; all uses removed.
1305 * src/files.h: Likewise.
1306
1307 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
1308 mishandled funny characters in file names, and anyway it isn't
1309 needed any more.
1310 * data/yacc.c: Likewise.
1311 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
1312
1313 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
1314 * data/yacc.c: Likewise.
1315
1316 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
1317 strings now.
1318 (muscle_init): Quote filename as a C string.
1319 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
1320 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
1321 * src/output.c (escaped_file_name_output): New function.
1322 (prepare_symbols): Quote tokens for M4.
1323 (prepare): Don't insert output_infix, output_prefix,
1324 output_parser_name, output_header_name; this is now down by scan-skel.
1325 Insert skeleton as a C string.
1326
1327 * src/output.c (user_actions_output, symbol_destructors_output,
1328 symbol_printers_output): Quote filenames for C and M4.
1329 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1330
1331 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
1332 escapes other than \\ and \'; this simplifies the code.
1333 (<SC_STRING>): Likewise, for \\ and \".
1334 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
1335 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
1336 Use new escapes @{ and @} for [ and ].
1337
1338 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
1339 them with auto vars.
1340 Switch to new escape scheme, where @ is the escape character uniformly.
1341 Abort if a stray escape character is found. Avoid unbounded input
1342 buffer when parsing non-escaped text.
1343
1344 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
1345 __oline__, #output, $@, and @{ do not have unintended meanings.
1346
1347 2002-11-09 Paul Eggert <eggert@twinsun.com>
1348
1349 Fix the test failure due to GCC warnings described in
1350 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
1351 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
1352 evaluate to 0 if it's impossible for NINF to be in the respective
1353 table.
1354 (yygetLRActions, yyrecoverParseError): Use them.
1355
1356 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
1357 counted in the token inserted at end of file. Now takes
1358 location_t *, not location_t, so that the location can be
1359 adjusted. All uses changed.
1360
1361 * tests/regression.at (Invalid inputs): Adjust wording in
1362 diagnostic to match the new behavior.
1363
1364 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
1365 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
1366 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
1367 abort ();'. This reduces the runtime of the "Many lookaheads"
1368 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
1369 GCC 3.2.
1370
1371 2002-11-07 Paul Eggert <eggert@twinsun.com>
1372
1373 * src/parse-gram.y (CHARACTER): Remove unused token.
1374 All uses removed.
1375
1376 * src/scan-gram.l: Remove stack option. We no longer use the
1377 stack, since the stack was never deeper than 1; instead, use the
1378 new auto var c_context to record the stacked value.
1379
1380 Remove nounput option. At an unexpected end of file, we now unput
1381 the minimal input necessary to end cleanly; this simplifies the
1382 code.
1383
1384 Avoid unbounded token sizes where this is easy.
1385
1386 (unexpected_end_of_file): New function.
1387 Use it to systematize the error message on unexpected EOF.
1388 (last-string): Now auto, not static.
1389 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
1390 (scanner_last_string_free): Remove; not used.
1391 (percent_percent_count): Move decl to just before use.
1392 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
1393 not the (never otherwised-used) CHARACTER.
1394
1395 2002-11-07 Akim Demaille <akim@epita.fr>
1396
1397 Let yyerror always receive the msg as last argument, so that
1398 yyerror can be variadic.
1399
1400 * data/yacc.c (b4_yyerror_args): New.
1401 Use it when calling yyerror.
1402 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
1403 Use it when calling yyerror.
1404 * doc/bison.texinfo (Error Reporting): Adjust.
1405 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
1406 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
1407
1408 2002-11-06 Akim Demaille <akim@epita.fr>
1409
1410 #line should have quoted strings.
1411 Ideally, this should be done by m4_quotearg.
1412
1413 * src/scan-skel.l: Include quotearg.h.
1414 Quote __ofile__.
1415 * src/output.c (symbol_printers_output)
1416 (symbol_destructors_output): Quote the file name.
1417
1418 2002-11-06 Akim Demaille <akim@epita.fr>
1419
1420 * tests/regression.at (Invalid inputs): Adjust to the recent
1421 messages.
1422
1423 2002-11-06 Akim Demaille <akim@epita.fr>
1424
1425 Restore --no-lines.
1426 Reported by Jim Kent.
1427
1428 * data/c.m4 (b4_syncline): New.
1429 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
1430 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
1431 * src/output.c (user_actions_output): Likewise.
1432 (prepare): Define 'b4_synclines_flag'.
1433 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
1434
1435 2002-11-06 Akim Demaille <akim@epita.fr>
1436
1437 * src/main.c (main): Free `infile'.
1438 * src/scan-gram.l (handle_syncline): New.
1439 Recognize `#line'.
1440 * src/output.c (user_actions_output, symbol_destructors_output)
1441 (symbol_printers_output): Use the location's file name, not
1442 infile.
1443 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1444
1445 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1446
1447 * src/tables.c (matching_state): Don't allow states to match if
1448 either has GLR conflict entries.
1449
1450 2002-11-05 Paul Eggert <eggert@twinsun.com>
1451
1452 * src/scan-gram.l: Use more accurate diagnostics, e.g.
1453 "integer out of range" rather than "invalid value".
1454 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
1455 accordingly.
1456
1457 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
1458 Also, remove one static variable in the scanner.
1459
1460 * src/scan-gram.l (braces_level): Now auto, not static.
1461 Initialize to zero if the compiler is being picky.
1462 (INITIAL): Clear braces_level instead of incrementing it.
1463 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
1464 as POSIX 1003.1-2001 requires.
1465 * src/system.h (IF_LINT): New macro, taken from coreutils.
1466 * configure.ac: Define "lint" if --enable-gcc-warnings.
1467
1468 2002-11-05 Akim Demaille <akim@epita.fr>
1469
1470 * src/scan-gram.l: When it starts with `%', complain about the
1471 whole directive, not just that `invalid character: %'.
1472
1473 2002-11-04 Akim Demaille <akim@epita.fr>
1474
1475 * Makefile.maint: Update from Autoconf.
1476 (update, cvs-update, po-update, do-po-update): New.
1477
1478 2002-11-04 Akim Demaille <akim@epita.fr>
1479
1480 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
1481 and yyerror.
1482 Have yyerror `use' its arguments.
1483 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
1484 returns true when location & yacc & pure & parse-param.
1485 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
1486
1487 2002-11-04 Akim Demaille <akim@epita.fr>
1488
1489 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
1490 clashes.
1491 * src/scan-gram.l: Use [\'] instead of ['] to pacify
1492 font-lock-mode.
1493 Use complain_at.
1494 Use quote, not quote_n since LOCATION_PRINT no longer uses the
1495 slot 0.
1496
1497 2002-11-03 Paul Eggert <eggert@twinsun.com>
1498
1499 * src/reader.c (get_merge_function, grammar_current_rule_check):
1500 Use consistent diagnostics for reporting type name clashes.
1501 Quote the types with <>, for consistency with Yacc.
1502 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
1503
1504 2002-11-03 Akim Demaille <akim@epita.fr>
1505
1506 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
1507 New.
1508 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
1509 (b4_parse_param): Remove.
1510 Use b4_identification.
1511 Propagate b4_pure_args where needed to pass them to yyerror.
1512 * data/glr.m4 (b4_parse_param): Remove.
1513 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
1514 (b4_lpure_formals): New.
1515 Use b4_identification.
1516 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
1517 b4_user_formals and b4_user_args.
1518 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
1519 (yyreportAmbiguity): When using a pure parser, also need
1520 the location, and the parse-params.
1521 Adjust callers.
1522 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
1523 When using a pure parser, also need the parse-params.
1524 Adjust callers.
1525 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
1526 (%pure-parser + %parse-param) LALR and GLR parsers.
1527 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
1528 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
1529 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
1530 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
1531 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
1532 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
1533 * doc/bison.texinfo: Untabify the whole file.
1534 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
1535 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
1536 (Error Reporting): Adjust to these new directives.
1537 Document %error-verbose, deprecate YYERROR_VERBOSE.
1538
1539 2002-11-03 Akim Demaille <akim@epita.fr>
1540
1541 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
1542 AT_CHECK_CALC_GLR invocations to use % directives, instead of
1543 command line options.
1544 * tests/cxx-type.at: Formatting changes.
1545
1546 2002-11-03 Paul Eggert <eggert@twinsun.com>
1547
1548 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
1549 to count columns correctly, and to check for invalid inputs.
1550
1551 Use mbsnwidth to count columns correctly. Account for tabs, too.
1552 Include mbswidth.h.
1553 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
1554 (extend_location): New function.
1555 (YY_LINES): Remove.
1556
1557 Handle CRLF in C code rather than in Lex code.
1558 (YY_INPUT): New macro.
1559 (no_cr_read): New function.
1560
1561 Scan UCNs, even though we don't fully handle them yet.
1562 (convert_ucn_to_byte): New function.
1563
1564 Handle backslash-newline correctly in C code.
1565 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
1566 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
1567 all uses changed.
1568 (tag, splice): New EREs. Do not allow NUL or newline in tags.
1569 Use {splice} wherever C allows backslash-newline.
1570 YY_STEP after space, newline, vertical-tab.
1571 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
1572
1573 (letter, id): Don't assume ASCII; e.g., spell out a-z.
1574
1575 ({int}, handle_action_dollar, handle_action_at): Check for integer
1576 overflow.
1577
1578 (YY_STEP): Omit trailing semicolon, so that it's more like C.
1579
1580 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
1581 as well as \000. Check for UCHAR_MAX, not 255.
1582 Allow \x with an arbitrary positive number of digits, as in C.
1583 Check for overflow here.
1584 Allow \? and UCNs, for compatibility with C.
1585
1586 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
1587 with quote slot used by complain_at.
1588
1589 * tests/input.at: Add tests for backslash-newline, m4 quotes
1590 in symbols, long literals, and funny escapes in strings.
1591
1592 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
1593 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
1594 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
1595 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
1596 * m4/mbswidth.m4: New file, from GNU coreutils.
1597
1598 * doc/bison.texinfo (Grammar Outline): Document // comments.
1599 (Symbols): Document that trigraphs have no special meaning in Bison,
1600 nor is backslash-newline allowed.
1601 (Actions): Document that trigraphs have no special meaning.
1602
1603 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
1604 no longer used.
1605
1606 2002-11-02 Paul Eggert <eggert@twinsun.com>
1607
1608 * src/reader.c: Don't include quote.h; not needed.
1609 (get_merge_function): Reword warning to be consistent with
1610 type clash diagnostic in grammar_current_rule_check.
1611
1612 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
1613 bug in trigraph handling.
1614
1615 * src/output.c (prepare_symbols): When printing token names,
1616 escape "[" as "@<:@" and likewise for "]".
1617
1618 * src/system.h (errno): Remove declaration, as we are now
1619 assuming C89 or better, and C89 guarantees errno.
1620
1621 2002-10-30 Paul Eggert <eggert@twinsun.com>
1622
1623 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
1624 Check for close failures.
1625 * src/files.h (xfclose): Return void, not int, since it always
1626 returned zero.
1627 * src/files.c (xfclose): Likewise. Report I/O error if ferror
1628 indicates one.
1629 * src/output.c (output_skeleton): Use xfclose rather than fclose
1630 and ferror. xfclose now checks ferror.
1631
1632 * data/glr.c (YYLEFTMOST_STATE): Remove.
1633 (yyreportTree): Use a stack-based leftmost state. This avoids
1634 our continuing battles with bogus warnings about initializers.
1635
1636 2002-10-30 Akim Demaille <akim@epita.fr>
1637
1638 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
1639 #if.
1640
1641 2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1642
1643 * tests/glr-regr1.at: New test for reported regressions.
1644 * tests/testsuite.at: Add glr-regr1.at test.
1645 * tests/Makefile.am: Add glr-regr1.at test.
1646
1647 2002-10-24 Paul Eggert <eggert@twinsun.com>
1648
1649 Version 1.75a.
1650
1651 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
1652 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
1653 we use malloc. Don't assume 'A' through 'Z' are contiguous.
1654 Don't assume strdup exists; POSIX says its an XSI extension.
1655 Check for buffer overflow on input.
1656
1657 2002-10-24 Akim Demaille <akim@epita.fr>
1658
1659 * src/output.c (output_skeleton): Don't disable M4sugar comments
1660 too soon: it results in comments being expanded.
1661 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
1662 first output.
1663
1664 2002-10-24 Akim Demaille <akim@epita.fr>
1665
1666 * data/yacc.c (m4_int_type): New.
1667 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
1668 char' as only yacc.c wants K&R portability.
1669 * data/glr.c (yysigned_char): Remove.
1670 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
1671 Reported by Quoc Peyrot.
1672
1673 2002-10-23 Paul Eggert <eggert@twinsun.com>
1674
1675 * src/main.c (main): With --trace=time, report times even if a
1676 non-fatal error occurs. Formerly, the times were reported in some
1677 such cases but not in others.
1678 * src/reader.c (reader): Just return if a complaint has been issued,
1679 instead of exiting, so that 'main' can report times.
1680
1681 2002-10-22 Akim Demaille <akim@epita.fr>
1682
1683 * src/system.h: Include sys/types.
1684 Reported by Bert Deknuydt.
1685
1686 2002-10-23 Paul Eggert <eggert@twinsun.com>
1687
1688 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
1689 Suggested by Art Haas.
1690
1691 2002-10-22 Paul Eggert <eggert@twinsun.com>
1692
1693 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
1694 decl; not needed any more.
1695 * src/main.c (main): Use return to exit, undoing yesterday's change.
1696 The last OS that we could find where this wouldn't work is
1697 SunOS 3.5, and that's too old to worry about now.
1698
1699 * data/glr.c (struct yyltype): Define members even when not
1700 doing locations. This is more consistent with yacc.c, and it
1701 works around the following bug reports:
1702 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
1703 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
1704
1705 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
1706 @acronym consistently. Standardize on "Yacc" instead of "YACC",
1707 "Algol" instead of "ALGOL". Give a bit more history about BNF.
1708
1709 2002-10-22 Akim Demaille <akim@epita.fr>
1710
1711 * data/README: New.
1712
1713 2002-10-21 Paul Eggert <eggert@twinsun.com>
1714
1715 Be consistent about 'bool'; the old code used an enum in one
1716 module and an int in another, and this violates the C standard.
1717 * m4/stdbool.m4: New file, from coreutils 4.5.3.
1718 * configure.ac (AC_HEADER_STDBOOL): Add.
1719 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
1720 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
1721 * src/symtab.c (hash_compare_symbol_t): Likewise.
1722 * src/system.h (bool, false, true): Use a definition consistent
1723 with ../lib/hash.c. All uses changed.
1724
1725 * src/complain.c (warning_issued): Renamed from warn_message_count,
1726 so that we needn't worry about integer overflow (!).
1727 Now of type bool. All uses changed.
1728 (complaint_issued): Renamed from complain_message_count; likewise.
1729
1730 * src/main.c (main): Use exit to exit with failure.
1731
1732 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
1733 rather than 1 and 0.
1734 * src/main.c (main): Likewise.
1735 * src/getargs.c (getargs): Likewise.
1736 * src/reader.c (reader): Likewise.
1737
1738 * src/getarg.c (getargs): Remove duplicate code for
1739 "Try `bison --help'".
1740
1741 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
1742 What was that "2" for?
1743
1744 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
1745 * src/getargs.c (usage): Likewise.
1746
1747 * src/getargs.c (getargs): When there are too few operands, report
1748 the last one. When there are too many, report the first extra
1749 one. This is how diffutils does it.
1750
1751 2002-10-20 Paul Eggert <eggert@twinsun.com>
1752
1753 Remove K&R vestiges.
1754 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
1755 * src/complain.c (VA_START): Remove. Assume prototypes.
1756 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
1757 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
1758 fatal): Assume prototypes.
1759 * src/complain.h: Assume prototypes.
1760 * src/system.h (PARAMS): Remove.
1761 Include <limits.h> unconditionally, since it's guaranteeed even
1762 for a freestanding C89 compiler.
1763 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
1764 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
1765
1766 2002-10-20 Akim Demaille <akim@epita.fr>
1767
1768 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
1769 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
1770 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
1771 (yyresolveStates, yyresolveAction, yyresolveStack)
1772 (yyprocessOneStack): Use them.
1773 (yy_reduce_print): New.
1774 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
1775
1776 2002-10-20 Akim Demaille <akim@epita.fr>
1777
1778 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
1779 arguments and output `void'.
1780 (b4_c_function): Rename as...
1781 (b4_c_function_def): this.
1782 (b4_c_function_decl, b4_c_ansi_function_def)
1783 (b4_c_ansi_function_decl): New.
1784 Change the interpretation of the arguments: before `int, foo', now
1785 `int foo, foo'.
1786 * data/yacc.c (yyparse): Prototype and define thanks to these.
1787 Adjust b4_c_function_def uses.
1788 * data/glr.c (yyparse): Likewise, but ANSI only.
1789
1790 2002-10-20 Akim Demaille <akim@epita.fr>
1791
1792 * src/output.c (prepare): Move the definition of `tokens_number',
1793 `nterms_number', `undef_token_number', `user_token_number_max'
1794 to...
1795 (prepare_tokens): Here.
1796 (prepare_tokens): Rename as...
1797 (prepare_symbols): this.
1798 (prepare): Move the definition of `rules_number' to...
1799 (prepare_rules): here.
1800 (prepare): Move the definition of `last', `final_state_number',
1801 `states_number' to...
1802 (prepare_states): here.
1803 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
1804
1805 2002-10-20 Akim Demaille <akim@epita.fr>
1806
1807 * src/tables.h, src/tables.c, src/output.c: Comment changes.
1808
1809 2002-10-20 Akim Demaille <akim@epita.fr>
1810
1811 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
1812 * data/c.m4: here.
1813
1814 2002-10-20 Akim Demaille <akim@epita.fr>
1815
1816 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
1817 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
1818 `pair'.
1819 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
1820 `name' to...
1821 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
1822 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
1823 These.
1824
1825 2002-10-19 Paul Eggert <eggert@twinsun.com>
1826
1827 Do not create a temporary file, as that involves security and
1828 cleanup headaches. Instead, use a pair of pipes.
1829 Derived from a suggestion by Florian Krohm.
1830 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
1831 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
1832 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
1833 (BISON_PREREQ_SUBPIPE): Add.
1834 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
1835 Add subpipe.h, subpipe.c.
1836 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
1837 * po/POTFILES.in: Add lib/subpipe.c.
1838 * src/output.c: Include "subpipe.h".
1839 (m4_invoke): Remove decl.
1840 (scan_skel): New decl.
1841 (output_skeleton): Use pipe rather than temporary file for m4 input.
1842 Check that m4sugar.m4 is readable, to avoid deadlock.
1843 Check for pipe I/O error.
1844 * src/scan-skel.l (readpipe): Remove decl.
1845 (scan_skel): New function, to be used in place of m4_invoke.
1846 Read from stream rather than file.
1847
1848 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
1849 float, as this generates a warning on Solaris 8 + GCC 3.2 with
1850 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
1851 this generates a more-accurate value anyway.
1852
1853 * lib/timevar.c (timervar_accumulate): Rename locals to
1854 avoid confusion with similarly-named more-global.
1855 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
1856
1857 * src/output.c (prepare): Use xstrdup to convert char const *
1858 to char *, to avoid GCC warning.
1859
1860 2002-10-19 Akim Demaille <akim@epita.fr>
1861
1862 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
1863 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
1864 Use them to have `calc.y' ready for %pure-parser.
1865 * data/yacc.c (YYLEX): Pass a yylex return type to
1866 b4_c_function_call.
1867
1868 2002-10-19 Akim Demaille <akim@epita.fr>
1869
1870 Prototype support of %lex-param and %parse-param.
1871
1872 * src/parse-gram.y: Add the definition of the %lex-param and
1873 %parse-param tokens, plus their rules.
1874 Drop the `_' version of %glr-parser.
1875 Add the "," token.
1876 * src/scan-gram.l (INITIAL): Scan them.
1877 * src/muscle_tab.c: Comment changes.
1878 (muscle_insert, muscle_find): Rename `pair' as `probe'.
1879 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
1880 (muscle_entry_s): The `value' member is no longer const.
1881 Adjust all dependencies.
1882 * src/muscle_tab.c (muscle_init): Adjust: use
1883 MUSCLE_INSERT_STRING.
1884 Initialize the obstack earlier.
1885 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
1886 (muscle_pair_list_grow): New.
1887 * data/c.m4 (b4_c_function_call, b4_c_args): New.
1888 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
1889 * tests/calc.at: Use %locations, not --locations.
1890 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
1891
1892 2002-10-19 Akim Demaille <akim@epita.fr>
1893
1894 * src/getargs.c (usage): Take status as argument and exit
1895 accordingly.
1896 Report the traditional `Try ... --help' message when status != 0.
1897 (usage, version): Don't take a FILE * as arg, it is pointless.
1898 (getargs): When there is an incorrect number of arguments, make it
1899 an error, and report it GNUlically thanks to `usage ()'.
1900
1901 2002-10-18 Paul Eggert <eggert@twinsun.com>
1902
1903 * data/glr.c (yyreportParseError): Don't assume that sprintf
1904 yields the length of the printed string, as this is not true
1905 on SunOS 4.1.4. Reported by Peter Klein.
1906
1907 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
1908 * tests/conflicts.at (%nonassoc and eof): Likewise.
1909 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
1910
1911 2002-10-17 Akim Demaille <akim@epita.fr>
1912
1913 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
1914 * src/getargs.c (trace_types, trace_args): Adjust.
1915 * src/reader.c (grammar_current_rule_prec_set)
1916 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
1917 Standardize error messages.
1918 And s/@prec/%prec/!
1919 (reader): Use trace_flag to enable scanner/parser debugging,
1920 instead of an adhoc scheme.
1921 * src/scan-gram.l: Remove trailing debugging code.
1922
1923 2002-10-16 Paul Eggert <eggert@twinsun.com>
1924
1925 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
1926 MUSCLE_TAB_H.
1927
1928 * NEWS: Officially drop support for building Bison with K&R C,
1929 since it didn't work anyway and it's not worth worrying about.
1930 * Makefile.maint (wget_files): Remove ansi2knr.c.
1931 (ansi2knr.c-url_prefix): Remove.
1932 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
1933 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
1934 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
1935
1936 2002-10-15 Paul Eggert <eggert@twinsun.com>
1937
1938 Stop using the "enum_" trick for K&R-style function definitions;
1939 it confused me, and I was the author! Instead, assume that people
1940 who want to use K&R C compilers (when using these modules in GCC,
1941 perhaps?) will run ansi2knr.
1942
1943 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
1944 All uses of "enum_" changed to "enum ".
1945 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
1946 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
1947
1948 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
1949 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
1950 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
1951 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
1952 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
1953 abitset_not, abitset_ones, abitset_or, abitset_or_and,
1954 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
1955 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
1956 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
1957 Use function prototypes; this removes the need for declaring
1958 static functions simply to provide their prototypes.
1959 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
1960 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
1961 bitset_count_, bitset_create, bitset_dump, bitset_first,
1962 bitset_free, bitset_init, bitset_last, bitset_next,
1963 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
1964 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
1965 bitset_print, bitset_release_memory, bitset_toggle_,
1966 bitset_type_choose, bitset_type_get, bitset_type_name_get,
1967 debug_bitset): Likewise.
1968 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
1969 * lib/bitset_stats.c (bitset_log_histogram_print,
1970 bitset_percent_histogram_print, bitset_stats_and,
1971 bitset_stats_and_cmp, bitset_stats_and_or,
1972 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
1973 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
1974 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
1975 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
1976 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
1977 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
1978 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
1979 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
1980 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
1981 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
1982 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
1983 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
1984 bitset_stats_zero): Likewise.
1985 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
1986 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
1987 bitsetv_dump, debug_bitsetv): Likewise.
1988 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
1989 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
1990 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
1991 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
1992 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
1993 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
1994 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
1995 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
1996 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
1997 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
1998 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
1999 Likewise.
2000 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
2001 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
2002 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
2003 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
2004 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
2005 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
2006 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
2007 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
2008 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
2009 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
2010 lbitset_xor_cmp, lbitset_zero): Likewise.
2011
2012 2002-10-14 Akim Demaille <akim@epita.fr>
2013
2014 Version 1.75.
2015
2016 2002-10-14 Akim Demaille <akim@epita.fr>
2017
2018 * tests/Makefile.am (maintainer-check-posix): New.
2019
2020 2002-10-14 Akim Demaille <akim@epita.fr>
2021
2022 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
2023 member.
2024
2025 2002-10-14 Akim Demaille <akim@epita.fr>
2026
2027 * src/tables.c (table_ninf_remap): base -> tab.
2028 Reported by Matt Rosing.
2029
2030 2002-10-14 Paul Eggert <eggert@twinsun.com>
2031
2032 * tests/action.at, tests/calc.at, tests/conflicts.at,
2033 tests/cxx-type.at, tests/headers.at, tests/input.at,
2034 tests/regression.at, tests/synclines.at, tests/torture.at:
2035 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
2036 so that the tests still work even if POSIXLY_CORRECT is set.
2037 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
2038
2039 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
2040 for portability to K&R hosts. Fix typo: signed char is guaranteed
2041 only to 127, not to 128.
2042 * data/glr.c (yysigned_char): New type.
2043 * data/yacc.c (yysigned_char): Likewise.
2044 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
2045
2046 2002-10-13 Paul Eggert <eggert@twinsun.com>
2047
2048 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
2049 true due to limited range of data type" warning from GCC.
2050
2051 * data/c.m4 (b4_token_defines): Protect against double-inclusion
2052 by wrapping enum yytokentype's definition inside #ifndef
2053 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
2054
2055 2002-10-13 Akim Demaille <akim@epita.fr>
2056
2057 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
2058 Un yy- yyrhs to avoid the name clash with the global YYRHS.
2059
2060 2002-10-13 Akim Demaille <akim@epita.fr>
2061
2062 * Makefile.maint: Update from Autoconf 2.54.
2063 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
2064
2065 2002-10-13 Akim Demaille <akim@epita.fr>
2066
2067 * src/print.c (print_state): Separate the list of solved conflicts
2068 from the other items.
2069 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
2070
2071 2002-10-13 Akim Demaille <akim@epita.fr>
2072
2073 Let nondeterministic skeletons be usable with deterministic
2074 tables.
2075
2076 With the patch, GAWK compiled by GCC without -O2 passes its test
2077 suite using a GLR parser driven by LALR tables. It fails with -O2
2078 because `struct stat' gives two different answers on my machine:
2079 88 (definition of an auto var) and later 96 (memset on this var).
2080 Hence the stack is badly corrumpted. The headers inclusion is to
2081 blame: if I move the awk.h inclusion before GLR's system header
2082 inclusion, the two struct stat have the same size.
2083
2084 * src/tables.c (pack_table): Always create conflict_table.
2085 (token_actions): Always create conflict_list.
2086 * data/glr.c (YYFLAG): Remove, unused.
2087
2088 2002-10-13 Akim Demaille <akim@epita.fr>
2089
2090 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
2091 (O0FLAGS): New.
2092 (VALGRIND, GXX): New.
2093 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
2094 * tests/bison.in: Run $PREBISON a pre-command.
2095 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
2096 (maintainer-check-g++): New.
2097 * Makefile.am (maintainer-check): New.
2098
2099 2002-10-13 Akim Demaille <akim@epita.fr>
2100
2101 * data/glr.c: Formatting changes.
2102 Tweak some trace messages to match yacc.c's.
2103
2104 2002-10-13 Akim Demaille <akim@epita.fr>
2105
2106 GLR parsers sometimes raise parse errors instead of performing the
2107 default reduction.
2108 Reported by Charles-Henry de Boysson.
2109
2110 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
2111 check the length of the traces when %glr.
2112 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
2113 GLR's traces.
2114 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
2115 Test GLR parsers.
2116 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
2117 (yyltype): Remove the yy prefix from the member names.
2118 (yytable): Complete its comment.
2119 (yygetLRActions): Map error action number from YYTABLE from
2120 YYTABLE_NINF to 0.
2121 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
2122 (which was a bug: it should have been YYTABEL_NINF, and yet it was
2123 not satisfying as we could compare an YYACTION computed from
2124 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
2125 only value for error actions.
2126 (yyreportParseError): In verbose parse error messages, don't issue
2127 `error' in the list of expected tokens.
2128 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
2129 next action to perform to match glr.c's decoding.
2130 (yytable): Complete its comment.
2131
2132 2002-10-13 Paul Eggert <eggert@twinsun.com>
2133
2134 Fix problem reported by Henrik Grubbstroem in
2135 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
2136 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
2137 because the Bison parser reads the second action before reducing
2138 the first one.
2139 * src/scan-gram.l (rule_length): New static var.
2140 Use it to keep track of the rule length in the scanner, since
2141 we can't expect the parser to be in lock-step sync with the scanner.
2142 (handle_action_dollar, handle_action_at): Use this var.
2143 * tests/actions.at (Exotic Dollars): Test for the problem.
2144
2145 2002-10-12 Paul Eggert <eggert@twinsun.com>
2146
2147 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
2148 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
2149 Include <sys/time.h> when checking for clock_t and struct tms.
2150 Use same include order as source.
2151 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
2152 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
2153
2154 * lib/timevar.c: Update copyright date and clarify comments.
2155 (get_time) [IN_GCC]: Keep the GCC version for reference.
2156
2157 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
2158 GCC version as of today, then merge Bison's changes.
2159 Change "GCC" to "Bison" in copyright notice. timevar.def's
2160 author is Akim, so change that too.
2161
2162 * src/reader.c (grammar_current_rule_check):
2163 Don't worry about the default action if $$ is untyped.
2164 Prevents bogus warnings reported by Jim Gifford in
2165 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
2166
2167 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
2168 * data/glr.c, data/lalr1.cc, data/yacc.c:
2169 Output token definitions before the first part of user declarations.
2170 Fixes compatibility problem reported by Jim Gifford for kbd in
2171 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
2172
2173 2002-10-11 Paul Eggert <eggert@twinsun.com>
2174
2175 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
2176 (yyparse): here. This undoes some of the 2002-07-25 change.
2177 Compatibility problem reported by Ralf S. Engelschall with
2178 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
2179
2180 2002-10-11 Akim Demaille <akim@epita.fr>
2181
2182 * tests/regression.at Characters Escapes): New.
2183 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
2184 characters.
2185 Reported by Jan Nieuwenhuizen.
2186
2187 2002-10-11 Akim Demaille <akim@epita.fr>
2188
2189 * po/id.po: New.
2190
2191 2002-10-10 Paul Eggert <eggert@twinsun.com>
2192
2193 Portability fixes for bitsets; this also avoids several GCC
2194 warnings.
2195
2196 * lib/abitset.c: Include <stddef.h>, for offsetof.
2197 * lib/lbitset.c: Likewise.
2198
2199 * lib/abitset.c (abitset_bytes): Return a size that is aligned
2200 properly for vectors of objects. Do not assume that adding a
2201 header size to a multiple of a word size yields a value that is
2202 properly aligned for the whole union.
2203 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2204
2205 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
2206 unique names for structures.
2207 * lib/ebitset.c (ebitset_bytes): Likewise.
2208 * lib/lbitset.c (lbitset_bytes): Likewise.
2209
2210 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
2211 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
2212 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
2213 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
2214 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
2215 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
2216 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
2217 to improve the type-checking that GCC can do.
2218 * lib/bitset.c (bitset_op4_cmp): Likewise.
2219 * lib/bitset_stats.c (bitset_stats_count,
2220 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
2221 bitset_stats_copy, bitset_stats_disjoint_p,
2222 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
2223 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
2224 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
2225 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
2226 bitset_stats_and_or_cmp, bitset_stats_andn_or,
2227 bitset_stats_andn_or_cmp, bitset_stats_or_and,
2228 bitset_stats_or_and_cmp): Likewise.
2229 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
2230 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
2231 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
2232 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
2233
2234 * lib/abitset.h: Include bitset.h, not bbitset.h.
2235 * lib/ebitset.h: Likewise.
2236 * lib/lbitset.h: Likewise.
2237
2238 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
2239 All instances of parameters of type enum bitset_opts are now of
2240 type enum_bitset_opts, to conform to the C Standard, and similarly
2241 for enum_bitset_type.
2242 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2243 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
2244
2245 Do not use "struct bitset_struct" to mean different things in
2246 different modules. Not only is this confusing, it violates
2247 the C Standard, which requires that structure types in different
2248 modules must be compatible if one is to be passed to the other.
2249 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
2250 All instances of "struct bitset_struct *" replaced with "bitset".
2251 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
2252 (union bitset_union, struct abitset_struct, struct ebitset_struct,
2253 struct lbitset_struct, struct bitset_stats_struct): New types.
2254 All uses of struct bitset_struct changed to union bitset_union,
2255 etc.
2256 * lib/abitset.c (struct abitset_struct, abitset,
2257 struct bitset_struct): Remove.
2258 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
2259 struct bitset_struct): Remove.
2260 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
2261 bitset_struct): Remove.
2262 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
2263 Likewise.
2264
2265 Do not call a function of type T using a call that assumes the
2266 function is of a different type U. Standard C requires that a
2267 function must be called with a type that is compatible with its
2268 definition.
2269 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2270 New decls.
2271 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2272 New functions.
2273 * lib/ebitset.c (PFV): Remove.
2274 * lib/lbitset.c (PFV): Likewise.
2275 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
2276 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
2277 decls.
2278 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
2279 (ebitset_vtable): Use them.
2280 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
2281 lbitset_xor): New functions.
2282 (lbitset_vtable): Use them.
2283
2284 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
2285 Declare.
2286
2287 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
2288 GCC warning.
2289 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
2290 Use offsetof, for simplicity.
2291
2292 2002-10-06 Paul Eggert <eggert@twinsun.com>
2293
2294 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
2295 the same width as int. This reapplies a hunk of the 2002-08-12 patch
2296 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
2297 which was inadvertently undone by the 2002-09-30 patch.
2298 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
2299 the same width as int.
2300
2301 2002-10-04 Paul Eggert <eggert@twinsun.com>
2302
2303 Version 1.50.
2304
2305 * configure.ac (AC_INIT), NEWS: Increment version number.
2306
2307 * doc/bison.texinfo: Minor spelling, grammar, and white space
2308 fixes.
2309 (Symbols): Mention that any negative value returned from yylex
2310 signifies end-of-input. Warn about negative chars. Mention
2311 the portable Standard C character set.
2312
2313 The GNU coding standard says CFLAGS and YFLAGS are reserved
2314 for the installer to set.
2315 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
2316 * src/Makefile.am (AM_CFLAGS): Likewise.
2317 (AM_YFLAGS): Renamed from YFLAGS.
2318
2319 Fix some MAX and MIN problems.
2320 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
2321 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
2322 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
2323 * src/reader.c (reader): Use it.
2324
2325 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
2326 POSIX 1003.1-2001 has removed fgrep.
2327
2328 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2329
2330 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
2331 interpreted as signed.
2332 * lib/ebitset.c (ebitset_list): Fix bug.
2333
2334 2002-10-01 Paul Eggert <eggert@twinsun.com>
2335
2336 More fixes for 64-bit hosts and large bitsets.
2337
2338 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
2339 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
2340 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
2341 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
2342 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
2343 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
2344 bitset_count_): Likewise.
2345 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
2346 bitset_first, bitset_last): Likewise.
2347 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
2348 bitset_stats_list_reverse, bitset_stats_size,
2349 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
2350 Likewise.
2351 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2352 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2353 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2354 bitsetv_reflexive_transitive_closure): Likewise.
2355 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
2356 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
2357 Likewise.
2358 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
2359 Likewise.
2360
2361 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
2362 Use size_t, not unsigned int, to count bytes.
2363 * lib/abitset.h (abitset_bytes): Likewise.
2364 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
2365 Likewise.
2366 * lib/bitset.h (bitset_bytes): Likewise.
2367 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
2368 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
2369 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2370 * lib/ebitset.c (ebitset_bytes): Likewise.
2371 * lib/ebitset.h (ebitset_bytes): Likewise.
2372 * lib/lbitset.c (lbitset_bytes): Likewise.
2373 * lib/lbitset.h (lbitset_bytes): Likewise.
2374
2375 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
2376 abitset_subset_p, abitset_disjoint_p, abitset_and,
2377 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
2378 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
2379 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
2380 abitset_or_and, abitset_or_and_cmp):
2381 Use bitset_windex instead of unsigned int.
2382 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2383 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
2384 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
2385 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
2386 Likewise.
2387 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
2388
2389 * lib/bitset.c (bitset_print):
2390 Use proper printf formats for widths of integer types.
2391 * lib/bitset_stats.c (bitset_percent_histogram_print,
2392 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
2393 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2394 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2395 * lib/lbitset.c (lbitset_bytes): Likewise.
2396
2397 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
2398 BITSET_SIZE_MAX): New macros.
2399 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
2400 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
2401 to BITSET_WINDEX_MAX.
2402
2403 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
2404 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
2405 since we now return the bitset_bindex type (not int).
2406
2407 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
2408 when computing sizes.
2409 * lib/ebitset.c (ebitset_elts_grow): Likewise.
2410
2411 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
2412 and avoid cast to unsigned.
2413
2414 2002-09-30 Akim Demaille <akim@epita.fr>
2415
2416 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
2417 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
2418 Updates from Michael Hayes.
2419
2420 2002-09-30 Art Haas <ahaas@neosoft.com>
2421
2422 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
2423 invocations.
2424 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
2425 defined.
2426
2427 2002-09-27 Akim Demaille <akim@epita.fr>
2428
2429 Version 1.49c.
2430
2431 2002-09-27 Akim Demaille <akim@epita.fr>
2432
2433 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
2434 (Because of AC_LIBSOURCE).
2435
2436 2002-09-27 Akim Demaille <akim@epita.fr>
2437
2438 Playing with Autoscan.
2439
2440 * configure.ac: Remove the old LIBOBJ tweaks.
2441 (AC_REPLACE_FUNCS): Add strrchr and strtol.
2442 * lib/strrchr.c: New.
2443 * lib/strtol.c: New, from the Coreutils 4.5.1.
2444
2445 2002-09-27 Akim Demaille <akim@epita.fr>
2446
2447 Playing with Autoscan.
2448
2449 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
2450 * lib/Makefile.am (libbison_a_SOURCES): No longer include
2451 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
2452 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
2453 Coreutils 4.5.1.
2454
2455 2002-09-24 Akim Demaille <akim@epita.fr>
2456
2457 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
2458 (Frequently Asked Questions, Parser Stack Overflow): New.
2459
2460 2002-09-13 Akim Demaille <akim@epita.fr>
2461
2462 Playing with autoscan.
2463
2464 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
2465 * src/files.c (skeleton_find): Remove, unused.
2466 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
2467 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
2468
2469 2002-09-13 Akim Demaille <akim@epita.fr>
2470
2471 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
2472 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
2473
2474 2002-09-13 Akim Demaille <akim@epita.fr>
2475
2476 * configure.ac: Require 2.54.
2477 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
2478 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
2479 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
2480 Remove, provided by Autoconf macros.
2481
2482 2002-09-12 Akim Demaille <akim@epita.fr>
2483
2484 * m4/prereq.m4: Update, from Coreutils 4.5.1.
2485
2486 2002-09-12 Akim Demaille <akim@epita.fr>
2487
2488 * m4/prereq.m4: Update, from Fileutils 4.1.5.
2489 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
2490 Reported by Martin Mokrejs.
2491
2492 2002-09-10 Akim Demaille <akim@epita.fr>
2493
2494 * src/parse-gram.y: Associate a human readable string to each
2495 token type.
2496 * tests/regression.at (Invalid inputs): Adjust.
2497
2498 2002-09-10 Gary V. Vaughan <gary@gnu.org>
2499
2500 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
2501 with an Autoconf-2.5x style configure.ac.
2502
2503 2002-09-06 Paul Eggert <eggert@twinsun.com>
2504
2505 * doc/bison.texinfo (Conditions): Make explicit that the GPL
2506 exception applies only to yacc.c. This is a modification of a
2507 patch originally suggested by Akim Demaille.
2508
2509 2002-09-06 Akim Demaille <akim@epita.fr>
2510
2511 * data/c.m4 (b4_copyright): Move the GPL exception comment from
2512 here to...
2513 * data/yacc.c: here.
2514
2515 * data/lalr1.cc (struct yyltype): Don't define it, since we use
2516 LocationType.
2517 (b4_ltype): Default to yy::Location from location.hh.
2518
2519 2002-09-04 Jim Meyering <jim@meyering.net>
2520
2521 * data/yacc.c: Guard the declaration of yytoknum also with
2522 `#ifdef YYPRINT', so it is declared only when used.
2523
2524 2002-09-04 Akim Demaille <akim@epita.fr>
2525
2526 * configure.in: Rename as...
2527 * configure.ac: this.
2528 Bump to 1.49c.
2529
2530 2002-09-04 Akim Demaille <akim@epita.fr>
2531
2532 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
2533 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
2534 translate maintainer only messages.
2535
2536 2002-08-12 Paul Eggert <eggert@twinsun.com>
2537
2538 Version 1.49b.
2539
2540 * Makefile.am (SUBDIRS): Remove intl.
2541 (DISTCLEANFILES): Remove.
2542 * NEWS: Mention that GNU M4 is now required. Clarify what is
2543 meant by "larger grammars". Mention the pt_BR translation.
2544 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
2545 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
2546 Bump version from 0.11.2 to 0.11.5.
2547 (BISON_PREREQ_STAGE): Remove.
2548 (AM_GNU_GETTEXT): Use external gettext.
2549 (AC_OUTPUT): Remove intl/Makefile.
2550
2551 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
2552
2553 * data/glr.c: Include string.h, for strlen.
2554 (yyreportParseError): Use size_t for yysize.
2555 (yy_yypstack): No longer nested inside yypstates, as nested
2556 functions are not portable. Do not assume size_t is the
2557 same width as int.
2558 (yypstates): Do not assume that ptrdiff_t is the same width
2559 as int, and similarly for yyposn and YYINDEX.
2560
2561 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
2562
2563 * lib/Makefile.am (INCLUDES): Do not include from the intl
2564 directory, which has been removed.
2565 * src/Makefile.am (INCLUDES): Likewise.
2566
2567 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
2568 (bitsets_sources, additional_bitsets_sources, timevars_sources):
2569 New vars.
2570
2571 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
2572 * tests/Makefile.am (EXTRA_DIST): Likewise.
2573
2574 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
2575 Do not assume that bitset_windex is the same width as unsigned.
2576
2577 * lib/abitset.c (abitset_unused_clear): Do not assume that
2578 bitset_word is the same width as int.
2579 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
2580 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
2581 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
2582 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
2583 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
2584
2585 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
2586 portability to one's complement hosts!).
2587 * lib/ebitset.c (ebitset_op1): Likewise.
2588 * lib/lbitset.c (lbitset_op1): Likewise.
2589
2590 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
2591 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
2592 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
2593 Sync with fileutils.
2594 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
2595 lib/gettext.h: Sync with diffutils.
2596
2597 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
2598 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
2599
2600 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
2601 PROTOTYPES to check for prototypes, and "defined __STDC__" to
2602 check for void *.
2603
2604 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
2605 size_t; the old version tried to do this but casted improperly.
2606 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
2607 (bitset_test): Now returns int, not unsigned long.
2608
2609 * lib/bitset_stats.c: Include "gettext.h".
2610 (_): New macro.
2611 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
2612 name locals "index", as it generates unnecessary warnings on some
2613 hosts that have an "index" function.
2614
2615 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
2616 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
2617 they need translation.
2618 * src/LR0.c (state_list_append, new_itemsets, get_state,
2619 append_states, generate_states): Likewise.
2620 * src/assoc.c (assoc_to_string): Likewise.
2621 * src/closure.c (print_closure, set_firsts, closure): Likewise.
2622 * src/gram.c (grammar_dump): Likewise.
2623 * src/injections.c (injections_compute): Likewise.
2624 * src/lalr.c (lookaheads_print): Likewise.
2625 * src/relation.c (relation_transpose): Likewise.
2626 * src/scan-gram.l: Likewise.
2627 * src/tables.c (table_grow, pack_vector): Likewise.
2628
2629 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
2630 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
2631 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
2632 * m4/mbstate_t.m4: Sync with fileutils.
2633 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
2634
2635 * po/LINGUAS: Add pt_BR.
2636 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
2637 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
2638 lib/timevar.c.
2639 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
2640 manual recommends.
2641 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
2642
2643 * src/complain.c (strerror_r): Remove decl; not needed.
2644 (strerror): Use same pattern as ../lib/error.c.
2645
2646 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
2647
2648 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
2649
2650 * src/main.c (main): Cast result of bindtextdomain and textdomain
2651 to void, to avoid a GCC warning when --disable-nls is in effect.
2652
2653 * src/scan-gram.l: Use strings rather than escapes when possible,
2654 to minimize the number of warnings from xgettext.
2655 (handle_action_dollar, handle_action_at): Don't use isdigit,
2656 as it mishandles negative chars and it may not work as expected
2657 outside the C locale.
2658
2659 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
2660 this is a GCC extension and is not portable to other compilers.
2661
2662 * src/system.h (alloca): Use same pattern as ../lib/error.c.
2663 Do not include <ctype.h>; no longer needed.
2664 Do not include <malloc.h>; no longer needed (and generates
2665 warnings on OpenBSD 3.0).
2666
2667 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
2668 it's not portable.
2669
2670 * tests/regression.at: Do not use 'cc -c input.c -o input';
2671 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
2672
2673 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
2674 exit status as failure, not just exit status 1. Sun C exits
2675 with status 2 sometimes.
2676
2677 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
2678 Use it for the two large tests.
2679
2680 2002-08-02 Akim Demaille <akim@epita.fr>
2681
2682 * src/conflicts.c (conflicts_output): Don't output rules never
2683 reduced here, since anyway that computation doesn't work.
2684 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
2685 (rule_useless_p, rule_never_reduced_p): New.
2686 (grammar_rules_partial_print): Use a filter instead of a range.
2687 Display the title only if needed.
2688 (grammar_rules_print): Adjust.
2689 (grammar_rules_never_reduced_report): New.
2690 * src/tables.c (action_row): Move the computation of rules never
2691 reduced to...
2692 (token_actions): here.
2693 * src/main.c (main): Make the parser before making the report, so
2694 that rules never reduced are computed.
2695 Call grammar_rules_never_reduced_report.
2696 * src/print.c (print_results): Report rules never reduced.
2697 * tests/conflicts.at, tests/reduce.at: Adjust.
2698
2699 2002-08-01 Akim Demaille <akim@epita.fr>
2700
2701 Instead of attaching lookaheads and duplicating the rules being
2702 reduced by a state, attach the lookaheads to the reductions.
2703
2704 * src/state.h (state_t): Remove the `lookaheads',
2705 `lookaheads_rule' member.
2706 (reductions_t): Add a `lookaheads' member.
2707 Use a regular array for the `rules'.
2708 * src/state.c (reductions_new): Initialize the lookaheads member
2709 to 0.
2710 (state_rule_lookaheads_print): Adjust.
2711 * src/state.h, src/state.c (state_reductions_find): New.
2712 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
2713 (count_rr_conflicts): Adjust.
2714 * src/lalr.c (LArule): Remove.
2715 (add_lookback_edge): Adjust.
2716 (state_lookaheads_count): New.
2717 (states_lookaheads_initialize): Merge into...
2718 (initialize_LA): this.
2719 (lalr_free): Adjust.
2720 * src/main.c (main): Don't free nullable and derives too early: it
2721 is used by --verbose.
2722 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
2723
2724 2002-08-01 Akim Demaille <akim@epita.fr>
2725
2726 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
2727 `rule_number_t**'.
2728 (set_derives, free_derives): Rename as...
2729 (derives_compute, derives_free): this.
2730 Adjust all dependencies.
2731 * src/nullable.c (set_nullable, free_nullable): Rename as...
2732 (nullable_compute, nullable_free): these.
2733 (rule_list_t): Store rule_t *, not rule_number_t.
2734 * src/state.c (state_rule_lookaheads_print): Directly compare rule
2735 pointers, instead of their numbers.
2736 * src/main.c (main): Call nullable_free, and derives_free earlier,
2737 as they were lo longer used.
2738
2739 2002-08-01 Akim Demaille <akim@epita.fr>
2740
2741 * lib/timevar.c (get_time): Include children time.
2742 * src/lalr.h (LA, LArule): Don't export them: used with the
2743 state_t.
2744 * src/lalr.c (LA, LArule): Static.
2745 * src/lalr.h, src/lalr.c (lalr_free): New.
2746 * src/main.c (main): Call it.
2747 * src/tables.c (pack_vector): Check whether loc is >= to the
2748 table_size, not >.
2749 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
2750 (tables_generate): do it, since that's also it which allocates
2751 them.
2752 Don't free LA and LArule, main does.
2753
2754 2002-07-31 Akim Demaille <akim@epita.fr>
2755
2756 Separate parser tables computation and output.
2757
2758 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
2759 (conflict_list, conflict_list_cnt, table, check, table_ninf)
2760 (yydefgoto, yydefact, high): Move to...
2761 * src/tables.h, src/tables.c: here.
2762 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
2763 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
2764 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
2765 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
2766 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
2767 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
2768 (action_row, save_row, token_actions, save_column, default_goto)
2769 (goto_actions, sort_actions, matching_state, pack_vector)
2770 (table_ninf_remap, pack_table, prepare_actions): Move to...
2771 * src/tables.c: here.
2772 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
2773 * src/output.c (token_actions, output_base, output_conflicts)
2774 (output_check): Merge into...
2775 (prepare_actions): this.
2776 (actions_output): Rename as...
2777 (user_actions_output): this.
2778 * src/main.c (main): Call tables_generate and tables_free.
2779
2780 2002-07-31 Akim Demaille <akim@epita.fr>
2781
2782 Steal GCC's --time-report support.
2783
2784 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
2785 stolen/adjusted from GCC.
2786 * m4/stage.m4: Remove time related checks.
2787 * m4/timevar.m4: New.
2788 * configure.in: Adjust.
2789 * src/system.h: Adjust to using timevar.h.
2790 * src/getargs.h, src/getargs.c: Support trace_time for
2791 --trace=time.
2792 * src/main.c (stage): Remove.
2793 (main): Replace `stage' invocations with timevar calls.
2794 * src/output.c: Insert pertinent timevar calls.
2795
2796 2002-07-31 Akim Demaille <akim@epita.fr>
2797
2798 Let --trace have arguments.
2799
2800 * src/getargs.h (enum trace_e): New.
2801 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
2802 (long_options, short_options): --trace/-T takes an optional
2803 argument.
2804 Change all the uses of trace_flag to reflect the new flags.
2805 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
2806
2807 Strengthen `stage' portability.
2808
2809 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
2810 * configure.in: Use it.
2811 Don't check for malloc.h and sys/times.h.
2812 * src/system.h: Include them when appropriate.
2813 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
2814 times and struct tms are available.
2815
2816 2002-07-30 Akim Demaille <akim@epita.fr>
2817
2818 In verbose parse error message, don't report `error' as an
2819 expected token.
2820 * tests/actions.at (Printers and Destructors): Adjust.
2821 * tests/calc.at (Calculator $1): Adjust.
2822 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
2823 error message, do not report the parser accepts the error token in
2824 that state.
2825
2826 2002-07-30 Akim Demaille <akim@epita.fr>
2827
2828 Normalize conflict related messages.
2829
2830 * src/complain.h, src/complain.c (warn, complain): New.
2831 * src/conflicts.c (conflicts_print): Use them.
2832 (conflict_report_yacc): New, extracted from...
2833 (conflicts_print): here.
2834 * tests/conflicts.at, tests/existing.at: Adjust.
2835
2836 2002-07-30 Akim Demaille <akim@epita.fr>
2837
2838 Report rules which are never reduced by the parser: those hidden
2839 by conflicts.
2840
2841 * src/LR0.c (save_reductions): Don't make the final state too
2842 different: save its reduction (accept) instead of having a state
2843 without any action (no shift or goto, no reduce).
2844 Note: the final state is now a ``regular'' state, i.e., the
2845 parsers now contain `reduce 0' as default reduction.
2846 Nevertheless, since they decide to `accept' when yystate =
2847 final_state, they still will not reduce rule 0.
2848 * src/print.c (print_actions, print_reduction): Adjust.
2849 * src/output.c (action_row): Track reduced rules.
2850 (token_actions): Report rules never reduced.
2851 * tests/conflicts.at, tests/regression.at: Adjust.
2852
2853 2002-07-30 Akim Demaille <akim@epita.fr>
2854
2855 `stage' was accidently included in a previous patch.
2856 Initiate its autoconfiscation.
2857
2858 * configure.in: Look for malloc.h and sys/times.h.
2859 * src/main.c (stage): Adjust.
2860 Report only when trace_flag.
2861
2862 2002-07-29 Akim Demaille <akim@epita.fr>
2863
2864 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
2865 state_number_t.
2866 (errs_t): symbol_t*, not symbol_number_t.
2867 (reductions_t): rule_t*, not rule_number_t.
2868 (FOR_EACH_SHIFT): New.
2869 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
2870 * src/print.c, src/print_graph.c: Adjust.
2871
2872 2002-07-29 Akim Demaille <akim@epita.fr>
2873
2874 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
2875
2876 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
2877 (endtoken, accept): these.
2878 * src/reader.c (reader): Set endtoken's default tag to "$end".
2879 Set undeftoken's tag to "$undefined" instead of "$undefined.".
2880 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
2881 Adjust.
2882
2883 2002-07-29 Akim Demaille <akim@epita.fr>
2884
2885 * src/reduce.c (reduce_grammar): When the language is empty,
2886 complain about the start symbol, not the axiom.
2887 Use its location.
2888 * tests/reduce.at (Empty Language): New.
2889
2890 2002-07-26 Akim Demaille <akim@epita.fr>
2891
2892 * src/reader.h, src/reader.c (gram_error): ... can't get
2893 yycontrol without making too strong assumptions on the parser
2894 itself.
2895 * src/output.c (prepare_tokens): Use the real 0th value of
2896 token_translations instead of `0'.
2897 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
2898 visible here.
2899 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
2900 for the time being: %locations ought to provide it to yyerror.
2901
2902 2002-07-25 Akim Demaille <akim@epita.fr>
2903
2904 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
2905 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
2906 * tests/regression.at (Web2c Actions): Adjust.
2907
2908 2002-07-25 Akim Demaille <akim@epita.fr>
2909
2910 Stop storing rules from 1 to nrules + 1.
2911
2912 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
2913 * src/nullable.c, src/output.c, src/print.c, src/reader.c
2914 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
2915 Iterate from 0 to nrules.
2916 Use rule_number_as_item_number and item_number_as_rule_number.
2917 Adjust to `derive' now containing possibly 0.
2918 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
2919 Handle the `- 1' part in rule numbers from/to item numbers.
2920 * src/conflicts.c (log_resolution): Fix the message which reversed
2921 shift and reduce.
2922 * src/output.c (action_row): Initialize default_rule to -1.
2923 (token_actions): Adjust.
2924 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
2925 expected output.
2926 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
2927
2928 2002-07-25 Akim Demaille <akim@epita.fr>
2929
2930 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
2931 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
2932 (b4_c_knr_arg_decl): New.
2933 * data/yacc.c: Use it to define yysymprint, yydestruct, and
2934 yyreport_parse_error.
2935
2936 2002-07-25 Akim Demaille <akim@epita.fr>
2937
2938 * data/yacc.c (yyreport_parse_error): New, extracted from...
2939 (yyparse): here.
2940 (yydestruct, yysymprint): Move above yyparse.
2941 Be K&R compliant.
2942
2943 2002-07-25 Akim Demaille <akim@epita.fr>
2944
2945 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
2946 replace...
2947 (b4_sint_type, b4_uint_type): these.
2948 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
2949 * tests/regression.at (Web2c Actions): Adjust.
2950
2951 2002-07-25 Akim Demaille <akim@epita.fr>
2952
2953 * src/gram.h (TIEM_NUMBER_MAX): New.
2954 (item_number_of_rule_number, rule_number_of_item_number): Rename
2955 as...
2956 (rule_number_as_item_number, item_number_as_rule_number): these.
2957 Adjust dependencies.
2958 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
2959 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
2960 (symbol_number_to_vector_number): New.
2961 (order): Of vector_number_t* type.
2962 (base_t, BASE_MAX, BASE_MIN): New.
2963 (froms, tos, width, pos, check): Of base_t type.
2964 (action_number_t, ACTION_MIN, ACTION_MAX): New.
2965 (actrow): Of action_number_t type.
2966 (conflrow): Of unsigned int type.
2967 (table_ninf, base_ninf): New.
2968 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
2969 (muscle_insert_int_table, muscle_insert_base_table)
2970 (muscle_insert_rule_number_table): New.
2971 (prepare_tokens): Output `toknum' as int_table.
2972 (action_row): Returns a rule_number_t.
2973 Use ACTION_MIN, not SHRT_MIN.
2974 (token_actions): yydefact is rule_number_t*.
2975 (table_ninf_remap): New.
2976 (pack_table): Use it for `base' and `table'.
2977 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
2978 replaced with...
2979 (YYPACT_NINF, YYTABLE_NINF): these.
2980 (yypact, yytable): Compute their types instead of hard-coded
2981 `short'.
2982 * tests/regression.at (Web2c Actions): Adjust.
2983
2984 2002-07-19 Akim Demaille <akim@epita.fr>
2985
2986 * src/scan-gram.l (id): Can start with an underscore.
2987
2988 2002-07-16 Akim Demaille <akim@epita.fr>
2989
2990 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
2991 Adjust all former `associativity' dependencies.
2992 * src/symtab.c (symbol_new): Default associativity is `undef', not
2993 `right'.
2994 (symbol_check_alias_consistence): Adjust.
2995
2996 2002-07-09 Akim Demaille <akim@epita.fr>
2997
2998 * doc/bison.texinfo: Properly set the ``header'' part.
2999 Use @dircategory ``GNU programming tools'' as per Texinfo's
3000 documentation.
3001 Use @copying.
3002
3003 2002-07-09 Akim Demaille <akim@epita.fr>
3004
3005 * lib/quotearg.h: Protect against multiple inclusions.
3006 * src/location.h (location_t): Add a `file' member.
3007 (LOCATION_RESET, LOCATION_PRINT): Adjust.
3008 * src/complain.c (warn_at, complain_at, fatal_at): Drop
3009 `error_one_per_line' support.
3010
3011 2002-07-09 Akim Demaille <akim@epita.fr>
3012
3013 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
3014 * src/reader.c (lineno): Remove.
3015 Adjust all dependencies.
3016 (get_merge_function): Take a location and use complain_at.
3017 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
3018 * tests/regression.at (Invalid inputs, Mixing %token styles):
3019 Adjust.
3020
3021 2002-07-09 Akim Demaille <akim@epita.fr>
3022
3023 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
3024 recovery rule, and forbid extensions when --yacc.
3025 (gram_error): Use complain_at.
3026 * src/reader.c (reader): Exit if there were parse errors.
3027
3028 2002-07-09 Akim Demaille <akim@epita.fr>
3029
3030 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
3031 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
3032 Reported by R Blake <blakers@mac.com>.
3033
3034 2002-07-09 Akim Demaille <akim@epita.fr>
3035
3036 * data/yacc.c: Output the copyright notive in the header.
3037
3038 2002-07-03 Akim Demaille <akim@epita.fr>
3039
3040 * src/output.c (froms, tos): Are state_number_t.
3041 (save_column): sp, sp1, and sp2 are state_number_t.
3042 (prepare): Rename `final' as `final_state_number', `nnts' as
3043 `nterms_number', `nrules' as `rules_number', `nstates' as
3044 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
3045 unused.
3046 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
3047 * data/lalr1.cc (nsym_): Remove, unused.
3048
3049 2002-07-03 Akim Demaille <akim@epita.fr>
3050
3051 * src/lalr.h, src/lalr.c (goto_number_t): New.
3052 * src/lalr.c (goto_list_t): New.
3053 Propagate them.
3054 * src/nullable.c (rule_list_t): New.
3055 Propagate.
3056 * src/types.h: Remove.
3057
3058 2002-07-03 Akim Demaille <akim@epita.fr>
3059
3060 * src/closure.c (print_fderives): Use rule_rhs_print.
3061 * src/derives.c (print_derives): Use rule_rhs_print.
3062 (rule_list_t): New, replaces `shorts'.
3063 (set_derives): Add comments.
3064 * tests/sets.at (Nullable, Firsts): Adjust.
3065
3066 2002-07-03 Akim Demaille <akim@epita.fr>
3067
3068 * src/output.c (prepare_actions): Free `tally' and `width'.
3069 (prepare_actions): Allocate and free `order'.
3070 * src/symtab.c (symbols_free): Free `symbols'.
3071 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
3072 * src/output.c (m4_invoke): Move to...
3073 * src/scan-skel.l: here.
3074 (<<EOF>>): Close yyout, and free its name.
3075
3076 2002-07-03 Akim Demaille <akim@epita.fr>
3077
3078 Fix some memory leaks, and fix a bug: state 0 was examined twice.
3079
3080 * src/LR0.c (new_state): Merge into...
3081 (state_list_append): this.
3082 (new_states): Merge into...
3083 (generate_states): here.
3084 (set_states): Don't ensure a proper `errs' state member here, do it...
3085 * src/conflicts.c (conflicts_solve): here.
3086 * src/state.h, src/state.c: Comment changes.
3087 (state_t): Rename member `shifts' as `transitions'.
3088 Adjust all dependencies.
3089 (errs_new): For consistency, also take the values as argument.
3090 (errs_dup): Remove.
3091 (state_errs_set): New.
3092 (state_reductions_set, state_transitions_set): Assert that no
3093 previous value was assigned.
3094 (state_free): New.
3095 (states_free): Use it.
3096 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
3097 temporary storage: use `errs' and `nerrs' as elsewhere.
3098 (set_conflicts): Allocate and free this `errs'.
3099
3100 2002-07-02 Akim Demaille <akim@epita.fr>
3101
3102 * lib/libiberty.h: New.
3103 * lib: Update the bitset implementation from upstream.
3104 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
3105 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
3106 * src/main.c: Adjust bitset stats calls.
3107
3108 2002-07-01 Paul Eggert <eggert@twinsun.com>
3109
3110 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
3111 char, so that negative chars don't collide with $.
3112
3113 2002-06-30 Akim Demaille <akim@epita.fr>
3114
3115 Have the GLR tests be `warning' checked, and fix the warnings.
3116
3117 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
3118 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
3119 (yyremoveDeletes): `yyi' and `yyj' are size_t.
3120 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
3121 (yyaddDeferredAction): static.
3122 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
3123 (yyreportParseError): yyprefix is const.
3124 yytokenp is used only when verbose.
3125 (yy__GNUC__): Replace with __GNUC__.
3126 (yypdumpstack): yyi is size_t.
3127 (yypreference): Un-yy local variables and arguments, to avoid
3128 clashes with `yyr1'. Anyway, we are not in the user name space.
3129 (yytname_size): be an int, as is compared with ints.
3130 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
3131 Use them.
3132 * tests/cxx-gram.at: Use quotation to protect $1.
3133 Use AT_COMPILE to enable warnings hunts.
3134 Prototype yylex and yyerror.
3135 `Use' argc.
3136 Include `string.h', not `strings.h'.
3137 Produce and prototype stmtMerge only when used.
3138 yylex takes a location.
3139
3140 2002-06-30 Akim Demaille <akim@epita.fr>
3141
3142 We spend a lot of time in quotearg, in particular when --verbose.
3143
3144 * src/symtab.c (symbol_get): Store a quoted version of the key.
3145 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
3146 Adjust all callers.
3147
3148 2002-06-30 Akim Demaille <akim@epita.fr>
3149
3150 * src/state.h (reductions_t): Rename member `nreds' as num.
3151 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
3152 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
3153
3154 2002-06-30 Akim Demaille <akim@epita.fr>
3155
3156 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
3157 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
3158 (shifts_to): Rename as...
3159 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
3160 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
3161 (TRANSITION_IS_DISABLED, transitions_to): these.
3162
3163 2002-06-30 Akim Demaille <akim@epita.fr>
3164
3165 * src/print.c (print_shifts, print_gotos): Merge into...
3166 (print_transitions): this.
3167 (print_transitions, print_errs, print_reductions): Align the
3168 lookaheads columns.
3169 (print_core, print_transitions, print_errs, print_state,
3170 print_grammar): Output empty lines separator before, not after.
3171 (state_default_rule_compute): Rename as...
3172 (state_default_rule): this.
3173 * tests/conflicts.at (Defaulted Conflicted Reduction),
3174 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
3175 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
3176
3177 2002-06-30 Akim Demaille <akim@epita.fr>
3178
3179 Display items as we display rules.
3180
3181 * src/gram.h, src/gram.c (rule_lhs_print): New.
3182 * src/gram.c (grammar_rules_partial_print): Use it.
3183 * src/print.c (print_core): Likewise.
3184 * tests/conflicts.at (Defaulted Conflicted Reduction),
3185 (Unresolved SR Conflicts): Adjust.
3186 (Unresolved SR Conflicts): Adjust and rename as...
3187 (Resolved SR Conflicts): this, as was meant.
3188 * tests/regression.at (Web2c Report): Adjust.
3189
3190 2002-06-30 Akim Demaille <akim@epita.fr>
3191
3192 * src/print.c (state_default_rule_compute): New, extracted from...
3193 (print_reductions): here.
3194 Pessimize, but clarify the code.
3195 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
3196
3197 2002-06-30 Akim Demaille <akim@epita.fr>
3198
3199 * src/output.c (action_row): Let default_rule be always a rule
3200 number.
3201
3202 2002-06-30 Akim Demaille <akim@epita.fr>
3203
3204 * src/closure.c (print_firsts, print_fderives, closure):
3205 Use BITSET_EXECUTE.
3206 * src/lalr.c (lookaheads_print): Likewise.
3207 * src/state.c (state_rule_lookaheads_print): Likewise.
3208 * src/print_graph.c (print_core): Likewise.
3209 * src/print.c (print_reductions): Likewise.
3210 * src/output.c (action_row): Likewise.
3211 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
3212
3213 2002-06-30 Akim Demaille <akim@epita.fr>
3214
3215 * src/print_graph.c: Use report_flag.
3216
3217 2002-06-30 Akim Demaille <akim@epita.fr>
3218
3219 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
3220 to...
3221 * src/relation.h, src/relation.c (traverse, relation_digraph)
3222 (relation_print, relation_transpose): New.
3223
3224 2002-06-30 Akim Demaille <akim@epita.fr>
3225
3226 * src/state.h, src/state.c (shifts_to): New.
3227 * src/lalr.c (build_relations): Use it.
3228
3229 2002-06-30 Akim Demaille <akim@epita.fr>
3230
3231 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
3232 (item_number_of_rule_number, rule_number_of_item_number): New.
3233 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
3234 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
3235 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
3236 Propagate their use.
3237 Much remains to be done, in particular wrt `shorts' from types.h.
3238
3239 2002-06-30 Akim Demaille <akim@epita.fr>
3240
3241 * src/symtab.c (symbol_new): Initialize the `printer' member.
3242
3243 2002-06-30 Akim Demaille <akim@epita.fr>
3244
3245 * src/LR0.c (save_reductions): Remove, replaced by...
3246 * src/state.h, src/state.c (state_reductions_set): New.
3247 (reductions, errs): Rename as...
3248 (reductions_t, errs_t): these.
3249 Adjust all dependencies.
3250
3251 2002-06-30 Akim Demaille <akim@epita.fr>
3252
3253 * src/LR0.c (state_list_t, state_list_append): New.
3254 (first_state, last_state): Now symbol_list_t.
3255 (this_state): Remove.
3256 (new_itemsets, append_states, save_reductions): Take a state_t as
3257 argument.
3258 (set_states, generate_states): Adjust.
3259 (save_shifts): Remove, replaced by...
3260 * src/state.h, src/state.c (state_shifts_set): New.
3261 (shifts): Rename as...
3262 (shifts_t): this.
3263 Adjust all dependencies.
3264 * src/state.h (state_t): Remove the `next' member.
3265
3266 2002-06-30 Akim Demaille <akim@epita.fr>
3267
3268 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
3269 escaped in slot 0.
3270
3271 2002-06-30 Akim Demaille <akim@epita.fr>
3272
3273 Use hash.h for the state hash table.
3274
3275 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
3276 (allocate_storage): Use state_hash_new.
3277 (free_storage): Use state_hash_free.
3278 (new_state, get_state): Adjust.
3279 * src/lalr.h, src/lalr.c (states): Move to...
3280 * src/states.h (state_t): Remove the `link' member, no longer
3281 used.
3282 * src/states.h, src/states.c: here.
3283 (state_hash_new, state_hash_free, state_hash_lookup)
3284 (state_hash_insert, states_free): New.
3285 * src/states.c (state_table, state_compare, state_hash): New.
3286 * src/output.c (output_actions): Do not free states now, since we
3287 still need to know the final_state number in `prepare', called
3288 afterwards. Do it...
3289 * src/main.c (main): here: call states_free after `output'.
3290
3291 2002-06-30 Akim Demaille <akim@epita.fr>
3292
3293 * src/state.h, src/state.c (state_new): New, extracted from...
3294 * src/LR0.c (new_state): here.
3295 * src/state.h (STATE_ALLOC): Move to...
3296 * src/state.c: here.
3297 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
3298 * src/state.h, src/state.c: here.
3299
3300 2002-06-30 Akim Demaille <akim@epita.fr>
3301
3302 * src/reader.c (gensym): Rename as...
3303 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
3304 (getsym): Rename as...
3305 (symbol_get): this.
3306
3307 2002-06-30 Akim Demaille <akim@epita.fr>
3308
3309 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
3310 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
3311 * src/output.c, src/print.c, src/print_graph.c: Propagate.
3312 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
3313
3314 2002-06-30 Akim Demaille <akim@epita.fr>
3315
3316 Make the test suite pass with warnings checked.
3317
3318 * tests/actions.at (Printers and Destructors): Improve.
3319 Avoid unsigned vs. signed issues.
3320 * tests/calc.at: Don't exercise the scanner here, do it...
3321 * tests/input.at (Torturing the Scanner): here.
3322
3323 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3324
3325 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
3326 reorganize first lines parallel to yacc.c.
3327
3328 2002-06-28 Akim Demaille <akim@epita.fr>
3329
3330 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
3331 (b4_token_enum, b4_token_defines): New, factored from...
3332 * data/lalr1.cc, data/yacc.c, glr.c: here.
3333
3334 2002-06-28 Akim Demaille <akim@epita.fr>
3335
3336 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
3337 unused variables.
3338 * src/output.c (merger_output): static.
3339
3340 2002-06-28 Akim Demaille <akim@epita.fr>
3341
3342 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
3343 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
3344 pacify GCC.
3345 * src/output.c (save_row): Initialize all the variables to pacify GCC.
3346
3347 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3348
3349 Accumulated changelog for new GLR parsing features.
3350
3351 * src/conflicts.c (count_total_conflicts): Change name to
3352 conflicts_total_count.
3353 * src/conflicts.h: Ditto.
3354 * src/output.c (token_actions): Use the new name.
3355 (output_conflicts): Change conflp => conflict_list_heads, and
3356 confl => conflict_list for better readability.
3357 * data/glr.c: Use the new names.
3358 * NEWS: Add self to GLR announcement.
3359
3360 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
3361
3362 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
3363 Akim Demaille.
3364
3365 * data/bison.glr: Change name to glr.c
3366 * data/glr.c: Renamed from bison.glr.
3367 * data/Makefile.am: Add glr.c
3368
3369 * src/getargs.c:
3370
3371 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
3372 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
3373
3374 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3375
3376 * data/bison.glr: Be sure to restore the
3377 current #line when returning to the skeleton contents after having
3378 exposed the input file's #line.
3379
3380 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3381
3382 * data/bison.glr: Bring up to date with changes to bison.simple.
3383
3384 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3385
3386 * data/bison.glr: Correct definitions that use b4_prefix.
3387 Various reformatting.
3388 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
3389 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
3390 yytokenp argument; now part of stack.
3391 (yychar): Define to behave as documented.
3392 (yyclearin): Ditto.
3393
3394 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3395
3396 * src/reader.h: Add declaration for free_merger_functions.
3397
3398 * src/reader.c (merge_functions): New variable.
3399 (get_merge_function): New function.
3400 (free_merger_functions): New function.
3401 (readgram): Check for %prec that is not followed by a symbol.
3402 Handle %dprec and %merge declarations.
3403 (packgram): Initialize dprec and merger fields in rules array.
3404
3405 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
3406 conflict_list_cnt, conflict_list_free): New variables.
3407 (table_grow): Also grow conflict_table.
3408 (prepare_rules): Output dprec and merger tables.
3409 (conflict_row): New function.
3410 (action_row): Output conflict lists for GLR parser. Don't use
3411 default reduction in conflicted states for GLR parser so that there
3412 are spaces for the conflict lists.
3413 (save_row): Also save conflict information.
3414 (token_actions): Allocate conflict list.
3415 (merger_output): New function.
3416 (pack_vector): Pack conflict table, too.
3417 (output_conflicts): New function to output yyconflp and yyconfl.
3418 (output_check): Allocate conflict_tos.
3419 (output_actions): Output conflict tables, also.
3420 (output_skeleton): Output b4_mergers definition.
3421 (prepare): Output b4_max_rhs_length definition.
3422 Use 'bison.glr' as default skeleton for GLR parsers.
3423
3424 * src/gram.c (glr_parser): New flag.
3425 (grammar_free): Call free_merger_functions.
3426
3427 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
3428 all pairs of conflicting reductions, rather than just all tokens
3429 causing conflicts. Needed to size conflict tables.
3430 (conflicts_output): Modify call to count_rr_conflicts for new
3431 interface.
3432 (conflicts_print): Ditto.
3433 (count_total_conflicts): New function.
3434
3435 * src/reader.h (merger_list): New type.
3436 (merge_functions): New variable.
3437
3438 * src/lex.h (tok_dprec, tok_merge): New token types.
3439
3440 * src/gram.h (rule_s): Add dprec and merger fields.
3441 (glr_parser): New flag.
3442
3443 * src/conflicts.h (count_total_conflicts): New function.
3444
3445 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
3446
3447 * doc/bison.texinfo (Generalized LR Parsing): New section.
3448 (GLR Parsers): New section.
3449 (Language and Grammar): Mention GLR parsing.
3450 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
3451 Correct typo ("tge" -> "the").
3452
3453 * data/bison.glr: New skeleton for GLR parsing.
3454
3455 * tests/cxx-gram.at: New tests for GLR parsing.
3456
3457 * tests/testsuite.at: Include cxx-gram.at.
3458
3459 * tests/Makefile.am: Add cxx-gram.at.
3460
3461 * src/parse-gram.y:
3462
3463 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
3464
3465 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
3466
3467 2002-06-27 Akim Demaille <akim@epita.fr>
3468
3469 * src/options.h, src/options.c: Remove.
3470 * src/getargs.c (short_options, long_options): New.
3471
3472 2002-06-27 Akim Demaille <akim@epita.fr>
3473
3474 * data/bison.simple, data/bison.c++: Rename as...
3475 * data/yacc.c, data/lalr1.cc: these.
3476 * doc/bison.texinfo (Environment Variables): Remove.
3477
3478 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
3479
3480 * src/getargs.c (report_argmatch): Initialize strtok().
3481
3482 2002-06-20 Akim Demaille <akim@epita.fr>
3483
3484 * data/bison.simple (b4_symbol_actions): New, replaces...
3485 (b4_symbol_destructor, b4_symbol_printer): these.
3486 (yysymprint): Be sure to call YYPRINT only for tokens, and using
3487 user token numbers.
3488
3489 2002-06-20 Akim Demaille <akim@epita.fr>
3490
3491 * data/bison.simple (yydestructor): Rename as...
3492 (yydestruct): this.
3493
3494 2002-06-20 Akim Demaille <akim@epita.fr>
3495
3496 * src/symtab.h, src/symtab.c (symbol_type_set)
3497 (symbol_destructor_set, symbol_precedence_set): The location is
3498 the last argument.
3499 Adjust all callers.
3500
3501 2002-06-20 Akim Demaille <akim@epita.fr>
3502
3503 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
3504 internals.
3505 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
3506 Takes a location.
3507 * src/symtab.h, src/symtab.c (symbol_class_set)
3508 (symbol_user_token_number_set): Likewise.
3509 Adjust all callers.
3510 Promote complain_at.
3511 * tests/input.at (Type Clashes): Adjust.
3512
3513 2002-06-20 Akim Demaille <akim@epita.fr>
3514
3515 * data/bison.simple (YYLEX): Fix the declaration when
3516 %pure-parser.
3517
3518 2002-06-20 Akim Demaille <akim@epita.fr>
3519
3520 * data/bison.simple (yysymprint): Don't print the token number,
3521 just its name.
3522 * tests/actions.at (Destructors): Rename as...
3523 (Printers and Destructors): this.
3524 Also exercise %printer.
3525
3526 2002-06-20 Akim Demaille <akim@epita.fr>
3527
3528 * data/bison.simple (YYDSYMPRINT): New.
3529 Use it to remove many of the #if YYDEBUG/if (yydebug).
3530
3531 2002-06-20 Akim Demaille <akim@epita.fr>
3532
3533 * src/symtab.h, src/symtab.c (symbol_t): printer and
3534 printer_location are new members.
3535 (symbol_printer_set): New.
3536 * src/parse-gram.y (PERCENT_PRINTER): New token.
3537 Handle its associated rule.
3538 * src/scan-gram.l: Adjust.
3539 (handle_destructor_at, handle_destructor_dollar): Rename as...
3540 (handle_symbol_code_at, handle_symbol_code_dollar): these.
3541 * src/output.c (symbol_printers_output): New.
3542 (output_skeleton): Call it.
3543 * data/bison.simple (yysymprint): New. Cannot be named yyprint
3544 since there are already many grammar files with a user `yyprint'.
3545 Replace the calls to YYPRINT to calls to yysymprint.
3546 * tests/calc.at: Adjust.
3547 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
3548 taking advantage of parser very internal details (stack size!).
3549
3550 2002-06-20 Akim Demaille <akim@epita.fr>
3551
3552 * src/scan-gram.l: Complete the scanner with the missing patterns
3553 to pacify Flex.
3554 Use `quote' and `symbol_tag_get' where appropriate.
3555
3556 2002-06-19 Akim Demaille <akim@epita.fr>
3557
3558 * tests/actions.at (Destructors): Augment to test locations.
3559 * data/bison.simple (yydestructor): Pass it the current location
3560 if locations are enabled.
3561 Prototype only when __STDC__ or C++.
3562 Change the argument names to move into the yy name space: there is
3563 user code here.
3564
3565 2002-06-19 Akim Demaille <akim@epita.fr>
3566
3567 * data/bison.simple (b4_pure_if): New.
3568 Use it instead of #ifdef YYPURE.
3569
3570 2002-06-19 Akim Demaille <akim@epita.fr>
3571
3572 * data/bison.simple (b4_location_if): New.
3573 Use it instead of #ifdef YYLSP_NEEDED.
3574
3575 2002-06-19 Akim Demaille <akim@epita.fr>
3576
3577 Prepare @$ in %destructor, but currently don't bind it in the
3578 skeleton, as %location use is not cleaned up yet.
3579
3580 * src/scan-gram.l (handle_dollar, handle_destructor_at)
3581 (handle_action_at): New.
3582 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
3583 a braced_code_t and a location as additional arguments.
3584 (handle_destructor_dollar): Instead of requiring `b4_eval', just
3585 unquote one when outputting `b4_dollar_dollar'.
3586 Adjust callers.
3587 * data/bison.simple (b4_eval): Remove.
3588 (b4_symbol_destructor): Adjust.
3589 * tests/input.at (Invalid @n): Adjust.
3590
3591 2002-06-19 Zack Weinberg <zack@codesourcery.com>
3592
3593 * doc/bison.texinfo: Document ability to have multiple
3594 prologue sections.
3595
3596 2002-06-18 Akim Demaille <akim@epita.fr>
3597
3598 * src/files.c (compute_base_names): When computing the output file
3599 names from the input file name, strip the directory part.
3600
3601 2002-06-18 Akim Demaille <akim@epita.fr>
3602
3603 * data/bison.simple.new: Comment changes.
3604 Reported by Andreas Schwab.
3605
3606 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
3607
3608 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
3609 there are no `label `yyoverflowlab' defined but not used' warnings
3610 when yyoverflow is defined.
3611
3612 2002-06-18 Akim Demaille <akim@epita.fr>
3613
3614 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
3615 new member.
3616 (symbol_destructor_set): Adjust.
3617 * src/output.c (symbol_destructors_output): Output the destructor
3618 locations.
3619 Output the symbol name.
3620 * data/bison.simple (b4_symbol_destructor): Adjust.
3621
3622 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
3623 and Akim Demaille <akim@epita.fr>
3624
3625 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
3626 what's left on the stack when the error recovery hits EOF.
3627 * tests/actions.at (Destructors): Complete to exercise this case.
3628
3629 2002-06-17 Akim Demaille <akim@epita.fr>
3630
3631 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
3632 arguments is really empty, not only equal to `[]'.
3633 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
3634 member.
3635 (symbol_destructor_set): New.
3636 * src/output.c (symbol_destructors_output): New.
3637 * src/reader.h (brace_code_t, current_braced_code): New.
3638 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
3639 (handle_dollar): Rename as...
3640 (handle_action_dollar): this.
3641 (handle_destructor_dollar): New.
3642 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
3643 (grammar_declaration): Use it.
3644 * data/bison.simple (yystos): Is always defined.
3645 (yydestructor): New.
3646 * tests/actions.at (Destructors): New.
3647 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
3648
3649 2002-06-17 Akim Demaille <akim@epita.fr>
3650
3651 * src/symlist.h, src/symlist.c (symbol_list_length): New.
3652 * src/scan-gram.l (handle_dollar, handle_at): Compute the
3653 rule_length only when needed.
3654 * src/output.c (actions_output, token_definitions_output): Output
3655 the full M4 block.
3656 * src/symtab.c: Don't access directly to the symbol tag, use
3657 symbol_tag_get.
3658 * src/parse-gram.y: Use symbol_list_free.
3659
3660 2002-06-17 Akim Demaille <akim@epita.fr>
3661
3662 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
3663 (symbol_list_prepend, get_type_name): Move to...
3664 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
3665 (symbol_list_prepend, symbol_list_n_type_name_get): here.
3666 Adjust all callers.
3667 (symbol_list_free): New.
3668 * src/scan-gram.l (handle_dollar): Takes a location.
3669 * tests/input.at (Invalid $n): Adjust.
3670
3671 2002-06-17 Akim Demaille <akim@epita.fr>
3672
3673 * src/reader.h, src/reader.c (symbol_list_new): Export it.
3674 (symbol_list_prepend): New.
3675 * src/parse-gram.y (%union): `list' is a new member.
3676 (symbols.1): New, replaces...
3677 (terms_to_prec.1, nterms_to_type.1): these.
3678 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
3679 Take a location as additional argument.
3680 Adjust all callers.
3681
3682 2002-06-15 Akim Demaille <akim@epita.fr>
3683
3684 * src/parse-gram.y: Move %token in the declaration section so that
3685 we don't depend upon CVS Bison.
3686
3687 2002-06-15 Akim Demaille <akim@epita.fr>
3688
3689 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
3690 * src/print.c (print_core): Use it.
3691
3692 2002-06-15 Akim Demaille <akim@epita.fr>
3693
3694 * src/conflicts.c (log_resolution): Accept the rule involved in
3695 the sr conflicts instead of the lookahead number that points to
3696 that rule.
3697 (flush_reduce): Accept the current lookahead vector as argument,
3698 instead of the index in LA.
3699 (resolve_sr_conflict): Accept the current number of lookahead
3700 bitset to consider for the STATE, instead of the index in LA.
3701 (set_conflicts): Adjust.
3702 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
3703
3704 2002-06-15 Akim Demaille <akim@epita.fr>
3705
3706 * src/state.h (state_t): Replace the `lookaheadsp' member, a
3707 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
3708 Adjust all dependencies.
3709 * src/lalr.c (initialize_lookaheads): Split into...
3710 (states_lookaheads_count, states_lookaheads_initialize): these.
3711 (lalr): Adjust.
3712
3713 2002-06-15 Akim Demaille <akim@epita.fr>
3714
3715 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
3716 out of...
3717 (grammar_rules_print): here.
3718 * src/reduce.c (reduce_output): Use it.
3719 * tests/reduce.at (Useless Rules, Reduced Automaton)
3720 (Underivable Rules): Adjust.
3721
3722 2002-06-15 Akim Demaille <akim@epita.fr>
3723
3724 Copy BYacc's nice way to report the grammar.
3725
3726 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
3727 New.
3728 Don't print the rules' location, it is confusing and useless.
3729 (rule_print): Use grammar_rhs_print.
3730 * src/print.c (print_grammar): Use grammar_rules_print.
3731
3732 2002-06-15 Akim Demaille <akim@epita.fr>
3733
3734 Complete and rationalize `useless thing' warnings.
3735
3736 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
3737 (symbol_tag_print): New.
3738 Use them everywhere in place of accessing directly the tag member.
3739 * src/gram.h, src/gram.c (rule_print): New.
3740 Use it where a rule used to be printed `by hand'.
3741 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
3742 (reduce_grammar_tables): Report the useless rules.
3743 (reduce_print): Useless things are a warning, not an error.
3744 Report it as such.
3745 * tests/reduce.at (Useless Nonterminals, Useless Rules):
3746 (Reduced Automaton, Underivable Rules): Adjust.
3747 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
3748 * tests/conflicts.at (Unresolved SR Conflicts)
3749 (Solved SR Conflicts): Adjust.
3750
3751 2002-06-15 Akim Demaille <akim@epita.fr>
3752
3753 Let symbols have a location.
3754
3755 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
3756 (getsym): Adjust.
3757 Adjust all callers.
3758 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
3759 Use location_t, not int.
3760 * src/symtab.c (symbol_check_defined): Take advantage of the
3761 location.
3762 * tests/regression.at (Invalid inputs): Adjust.
3763
3764 2002-06-15 Akim Demaille <akim@epita.fr>
3765
3766 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
3767 (input): Don't try to initialize yylloc here, do it in the
3768 scanner.
3769 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
3770 * src/gram.h (rule_t): Change line and action_line into location
3771 and action_location, of location_t type.
3772 Adjust all dependencies.
3773 * src/location.h, src/location.c (empty_location): New.
3774 * src/reader.h, src/reader.c (grammar_start_symbol_set)
3775 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
3776 (grammar_current_rule_symbol_append)
3777 (grammar_current_rule_action_append): Expect a location as argument.
3778 * src/reader.c (grammar_midrule_action): Adjust to attach an
3779 action's location as dummy symbol location.
3780 * src/symtab.h, src/symtab.c (startsymbol_location): New.
3781 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
3782 the line numbers.
3783
3784 2002-06-14 Akim Demaille <akim@epita.fr>
3785
3786 Grammar declarations may be found in the grammar section.
3787
3788 * src/parse-gram.y (rules_or_grammar_declaration): New.
3789 (declarations): Each declaration may end with a semicolon, not
3790 just...
3791 (grammar_declaration): `"%union"'.
3792 (grammar): Branch to rules_or_grammar_declaration.
3793
3794 2002-06-14 Akim Demaille <akim@epita.fr>
3795
3796 * src/main.c (main): Invoke scanner_free.
3797
3798 2002-06-14 Akim Demaille <akim@epita.fr>
3799
3800 * src/output.c (m4_invoke): Extracted from...
3801 (output_skeleton): here.
3802 Free tempfile.
3803
3804 2002-06-14 Akim Demaille <akim@epita.fr>
3805
3806 * src/parse-gram.y (directives, directive, gram)
3807 (grammar_directives, precedence_directives, precedence_directive):
3808 Rename as...
3809 (declarations, declaration, grammar, grammar_declaration)
3810 (precedence_declaration, precedence_declarator): these.
3811 (symbol_declaration): New.
3812
3813 2002-06-14 Akim Demaille <akim@epita.fr>
3814
3815 * src/files.c (action_obstack): Remove, unused.
3816 (output_obstack): Remove it, and all its dependencies, as it is no
3817 longer needed.
3818 * src/reader.c (epilogue_set): Build the epilogue in the
3819 muscle_obstack.
3820 * src/output.h, src/output.c (muscle_obstack): Move to...
3821 * src/muscle_tab.h, src/muscle_tab.h: here.
3822 (muscle_init): Initialize muscle_obstack.
3823 (muscle_free): New.
3824 * src/main.c (main): Call it.
3825
3826 2002-06-14 Akim Demaille <akim@epita.fr>
3827
3828 * src/location.h: New, extracted from...
3829 * src/reader.h: here.
3830 * src/Makefile.am (noinst_HEADERS): Merge into
3831 (bison_SOURCES): this.
3832 Add location.h.
3833 * src/parse-gram.y: Use location_t instead of Bison's.
3834 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
3835 Use location_t instead of ints.
3836
3837 2002-06-14 Akim Demaille <akim@epita.fr>
3838
3839 * data/bison.simple, data/bison.c++: Be sure to restore the
3840 current #line when returning to the skeleton contents after having
3841 exposed the input file's #line.
3842
3843 2002-06-12 Akim Demaille <akim@epita.fr>
3844
3845 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
3846 eager.
3847 * tests/actions.at (Exotic Dollars): New.
3848
3849 2002-06-12 Akim Demaille <akim@epita.fr>
3850
3851 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
3852 ['"/] too eagerly.
3853 * tests/input.at (Torturing the Scanner): New.
3854
3855 2002-06-11 Akim Demaille <akim@epita.fr>
3856
3857 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
3858 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
3859 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
3860 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
3861 * src/reader.c (reader): Use it.
3862
3863 2002-06-11 Akim Demaille <akim@epita.fr>
3864
3865 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
3866 Adjust all callers.
3867 (scanner_last_string_free): New.
3868
3869 2002-06-11 Akim Demaille <akim@epita.fr>
3870
3871 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
3872 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
3873 (last_string, YY_OBS_FREE): New.
3874 Use them when returning an ID.
3875
3876 2002-06-11 Akim Demaille <akim@epita.fr>
3877
3878 Have Bison grammars parsed by a Bison grammar.
3879
3880 * src/reader.c, src/reader.h (prologue_augment): New.
3881 * src/reader.c (copy_definition): Remove.
3882
3883 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
3884 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
3885 (grammar_current_rule_prec_set, grammar_current_rule_check)
3886 (grammar_current_rule_symbol_append)
3887 (grammar_current_rule_action_append): Export.
3888 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
3889 (symbol_list_action_append): Remove.
3890 Hook the routines from reader.
3891 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
3892 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
3893
3894 * src/reader.c (read_declarations): Remove, unused.
3895
3896 * src/parse-gram.y: Handle the epilogue.
3897 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
3898 (grammar_start_symbol_set): this.
3899 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
3900 * src/reader.c (readgram): Remove, unused.
3901 (reader): Adjust to insert eoftoken and axiom where appropriate.
3902
3903 * src/reader.c (copy_dollar): Replace with...
3904 * src/scan-gram.h (handle_dollar): this.
3905 * src/parse-gram.y: Remove `%thong'.
3906
3907 * src/reader.c (copy_at): Replace with...
3908 * src/scan-gram.h (handle_at): this.
3909
3910 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
3911 New.
3912
3913 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
3914 time being.
3915
3916 * src/reader.h, src/reader.c (grammar_rule_end): New.
3917
3918 * src/parse.y (current_type, current_class): New.
3919 Implement `%nterm', `%token' support.
3920 Merge `%term' into `%token'.
3921 (string_as_id): New.
3922 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
3923 type name.
3924
3925 * src/parse-gram.y: Be sure to handle properly the beginning of
3926 rules.
3927
3928 * src/parse-gram.y: Handle %type.
3929 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
3930
3931 * src/parse-gram.y: More directives support.
3932 * src/options.c: No longer handle source directives.
3933
3934 * src/parse-gram.y: Fix %output.
3935
3936 * src/parse-gram.y: Handle %union.
3937 Use the prologue locations.
3938 * src/reader.c (parse_union_decl): Remove.
3939
3940 * src/reader.h, src/reader.c (epilogue_set): New.
3941 * src/parse-gram.y: Use it.
3942
3943 * data/bison.simple, data/bison.c++: b4_stype is now either not
3944 defined, then default to int, or to the contents of %union,
3945 without `union' itself.
3946 Adjust.
3947 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
3948
3949 * src/output.c (actions_output): Don't output braces, as they are
3950 already handled by the scanner.
3951
3952 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
3953 characters to themselves.
3954
3955 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
3956 that the epilogue has a proper #line.
3957
3958 * src/parse-gram.y: Handle precedence/associativity.
3959
3960 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
3961 a terminal.
3962 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
3963 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
3964 at all to define terminals that cannot be emitted.
3965
3966 * src/scan-gram.l: Escape M4 characters.
3967
3968 * src/scan-gram.l: Working properly with escapes in user
3969 strings/characters.
3970
3971 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
3972 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
3973 grammar.
3974 Use more modest sizes, as for the time being the parser does not
3975 release memory, and therefore the process swallows a huge amount
3976 of memory.
3977
3978 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
3979 stricter %token grammar.
3980
3981 * src/symtab.h (associativity): Add `undef_assoc'.
3982 (symbol_precedence_set): Do nothing when passed an undef_assoc.
3983 * src/symtab.c (symbol_check_alias_consistence): Adjust.
3984
3985 * tests/regression.at (Invalid %directive): Remove, as it is now
3986 meaningless.
3987 (Invalid inputs): Adjust to the new error messages.
3988 (Token definitions): The new grammar doesn't allow too many
3989 eccentricities.
3990
3991 * src/lex.h, src/lex.c: Remove.
3992 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
3993 (copy_character, copy_string2, copy_string, copy_identifier)
3994 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
3995 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
3996 (parse_action): Remove.
3997 * po/POTFILES.in: Adjust.
3998
3999 2002-06-11 Akim Demaille <akim@epita.fr>
4000
4001 * src/reader.c (parse_action): Don't store directly into the
4002 rule's action member: return the action as a string.
4003 Don't require `rule_length' as an argument: compute it.
4004 (grammar_current_rule_symbol_append)
4005 (grammar_current_rule_action_append): New, eved out from
4006 (readgram): here.
4007 Remove `action_flag', `rulelength', unused now.
4008
4009 2002-06-11 Akim Demaille <akim@epita.fr>
4010
4011 * src/reader.c (grammar_current_rule_prec_set).
4012 (grammar_current_rule_check): New, eved out from...
4013 (readgram): here.
4014 Remove `xaction', `first_rhs': useless.
4015 * tests/input.at (Type clashes): New.
4016 * tests/existing.at (GNU Cim Grammar): Adjust.
4017
4018 2002-06-11 Akim Demaille <akim@epita.fr>
4019
4020 * src/reader.c (grammar_midrule_action): New, Eved out from
4021 (readgram): here.
4022
4023 2002-06-11 Akim Demaille <akim@epita.fr>
4024
4025 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
4026 New.
4027 (readgram): Use them as replacement of inlined code, crule and
4028 crule1.
4029
4030 2002-06-11 Akim Demaille <akim@epita.fr>
4031
4032 * src/reader.c (grammar_end, grammar_symbol_append): New.
4033 (readgram): Use them.
4034 Make the use of `p' as local as possible.
4035
4036 2002-06-10 Akim Demaille <akim@epita.fr>
4037
4038 GCJ's parser requires the tokens to be defined before the prologue.
4039
4040 * data/bison.simple: Output the token definition before the user's
4041 prologue.
4042 * tests/regression.at (Braces parsing, Duplicate string)
4043 (Mixing %token styles): Check the output from bison.
4044 (Early token definitions): New.
4045
4046 2002-06-10 Akim Demaille <akim@epita.fr>
4047
4048 * src/symtab.c (symbol_user_token_number_set): Don't complain when
4049 assigning twice the same user number to a token, so that we can
4050 use it in...
4051 * src/lex.c (lex): here.
4052 Also use `symbol_class_set' instead of hand written code.
4053 * src/reader.c (parse_assoc_decl): Likewise.
4054
4055 2002-06-10 Akim Demaille <akim@epita.fr>
4056
4057 * src/symtab.c, src/symtab.c (symbol_class_set)
4058 (symbol_user_token_number_set): New.
4059 * src/reader.c (parse_token_decl): Use them.
4060 Use a switch instead of ifs.
4061 Use a single argument.
4062
4063 2002-06-10 Akim Demaille <akim@epita.fr>
4064
4065 Remove `%thong' support as it is undocumented, unused, duplicates
4066 `%token's job, and creates useless e-mail traffic with people who
4067 want to know what it is, why it is undocumented, unused, and
4068 duplicates `%token's job.
4069
4070 * src/reader.c (parse_thong_decl): Remove.
4071 * src/options.c (option_table): Remove "thong".
4072 * src/lex.h (tok_thong): Remove.
4073
4074 2002-06-10 Akim Demaille <akim@epita.fr>
4075
4076 * src/symtab.c, src/symtab.c (symbol_type_set)
4077 (symbol_precedence_set): New.
4078 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
4079 (value_components_used): Remove, unused.
4080
4081 2002-06-09 Akim Demaille <akim@epita.fr>
4082
4083 Move symbols handling code out of the reader.
4084
4085 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
4086 (axiom): Move to...
4087 * src/symtab.h, src/symtab.c: here.
4088
4089 * src/gram.c (start_symbol): Remove: use startsymbol->number.
4090 * src/reader.c (startval): Rename as...
4091 * src/symtab.h, src/symtab.c (startsymbol): this.
4092 * src/reader.c: Adjust.
4093
4094 * src/reader.c (symbol_check_defined, symbol_make_alias)
4095 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4096 (token_translations_init)
4097 Move to...
4098 * src/symtab.c: here.
4099 * src/reader.c (packsymbols): Move to...
4100 * src/symtab.h, src/symtab.c (symbols_pack): here.
4101 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
4102 argument.
4103
4104 2002-06-03 Akim Demaille <akim@epita.fr>
4105
4106 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
4107 then statements.
4108
4109 2002-06-03 Akim Demaille <akim@epita.fr>
4110
4111 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
4112 structs with non literals.
4113 * src/scan-skel.l: never-interactive.
4114 * src/conflicts.c (enum conflict_resolution_e): No trailing
4115 comma.
4116 * src/getargs.c (usage): Split long literal strings.
4117 Reported by Hans Aberg.
4118
4119 2002-05-28 Akim Demaille <akim@epita.fr>
4120
4121 * data/bison.c++: Use C++ ostreams.
4122 (cdebug_): New member.
4123
4124 2002-05-28 Akim Demaille <akim@epita.fr>
4125
4126 * src/output.c (output_skeleton): Be sure to allocate enough room
4127 for `/' _and_ for `\0' in full_skeleton.
4128
4129 2002-05-28 Akim Demaille <akim@epita.fr>
4130
4131 * data/bison.c++: Catch up with bison.simple:
4132 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4133 and Paul Eggert <eggert@twinsun.com>: `error' handing.
4134 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
4135 and popping traces.
4136
4137 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4138
4139 * src/output.c (output_skeleton): Put an explicit path in front of
4140 the skeleton file name, rather than relying on the -I directory,
4141 to partially alleviate effects of having a skeleton file lying around
4142 in the current directory.
4143
4144 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4145
4146 * src/conflicts.c (log_resolution): Correct typo:
4147 obstack_printf should be obstack_fgrow1.
4148
4149 2002-05-26 Akim Demaille <akim@epita.fr>
4150
4151 * src/state.h (state_t): `solved_conflicts' is a new member.
4152 * src/LR0.c (new_state): Set it to 0.
4153 * src/conflicts.h, src/conflicts.c (print_conflicts)
4154 (free_conflicts, solve_conflicts): Rename as...
4155 (conflicts_print, conflicts_free, conflicts_solve): these.
4156 Adjust callers.
4157 * src/conflicts.c (enum conflict_resolution_e)
4158 (solved_conflicts_obstack): New, used by...
4159 (log_resolution): this.
4160 Adjust to attach the conflict resolution to each state.
4161 Complete the description with the precedence/associativity
4162 information.
4163 (resolve_sr_conflict): Adjust.
4164 * src/print.c (print_state): Output its solved_conflicts.
4165 * tests/conflicts.at (Unresolved SR Conflicts)
4166 (Solved SR Conflicts): Exercise --report=all.
4167
4168 2002-05-26 Akim Demaille <akim@epita.fr>
4169
4170 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4171 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
4172 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
4173 (token_number_t, item_number_as_token_number)
4174 (token_number_as_item_number, muscle_insert_token_number_table):
4175 Rename as...
4176 (symbol_number_t, item_number_as_symbol_number)
4177 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
4178 these, since it is more appropriate.
4179
4180 2002-05-26 Akim Demaille <akim@epita.fr>
4181
4182 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
4183 `Error:' lines.
4184 * data/bison.simple (yystos) [YYDEBUG]: New.
4185 (yyparse) [YYDEBUG]: Display the symbols which are popped during
4186 error recovery.
4187 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
4188
4189 2002-05-25 Akim Demaille <akim@epita.fr>
4190
4191 * doc/bison.texinfo (Debugging): Split into...
4192 (Tracing): this new section, its former contents, and...
4193 (Understanding): this new section.
4194 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
4195 by...
4196 (report_flag): this.
4197 Adjust all dependencies.
4198 (report_args, report_types, report_argmatch): New.
4199 (usage, getargs): Report/support -r, --report.
4200 * src/options.h
4201 (struct option_table_struct): Rename as..,
4202 (struct option_table_s): this.
4203 Rename the `set_flag' member to `flag' to match with getopt_long's
4204 struct.
4205 * src/options.c (option_table): Split verbose into an entry for
4206 %verbose, and another for --verbose.
4207 Support --report/-r, so remove -r from the obsolete --raw.
4208 * src/print.c: Attach full item sets and lookaheads reports to
4209 report_flag instead of trace_flag.
4210 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
4211
4212 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4213 and Paul Eggert <eggert@twinsun.com>
4214
4215 * data/bison.simple (yyparse): Correct error handling to conform to
4216 POSIX and yacc. Specifically, after syntax error is discovered,
4217 do not reduce further before shifting the error token.
4218 Clean up the code a bit by removing the labels yyerrdefault,
4219 yyerrhandle, yyerrpop.
4220 * NEWS: Document the above.
4221
4222 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4223
4224 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
4225 type; it isn't always big enough, since it doesn't necessarily
4226 include non-terminals.
4227 (yytranslate): Expand definition of yy_token_number_type, so that
4228 the latter can be removed.
4229 (yy_token_number_type): Remove, only one use.
4230 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
4231 don't use TokenNumberType as element type.
4232
4233 * tests/regression.at: Modify expected output to agree with change
4234 to yyr1 and yytranslate.
4235
4236 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
4237
4238 * src/reader.c (parse_action): Use copy_character instead of
4239 obstack_1grow.
4240
4241 2002-05-13 Akim Demaille <akim@epita.fr>
4242
4243 * tests/regression.at (Token definitions): Prototype yylex and
4244 yyerror.
4245
4246 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4247
4248 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
4249 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
4250 32-bit arithmetic.
4251 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
4252
4253 2002-05-07 Akim Demaille <akim@epita.fr>
4254
4255 * tests/synclines.at: Be sure to prototype yylex and yyerror to
4256 avoid GCC warnings.
4257
4258 2002-05-07 Akim Demaille <akim@epita.fr>
4259
4260 Kill GCC warnings.
4261
4262 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
4263 over the RHS of each rule.
4264 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
4265 * src/state.h (state_t): Member `nitems' is unsigned short.
4266 * src/LR0.c (get_state): Adjust.
4267 * src/reader.c (packgram): Likewise.
4268 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
4269 `Type'.
4270 (muscle_insert_int_table): Remove, unused.
4271 (prepare_rules): Remove `max'.
4272
4273 2002-05-06 Akim Demaille <akim@epita.fr>
4274
4275 * src/closure.c (print_firsts): Display of the symbol tags.
4276 (bitmatrix_print): Move to...
4277 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
4278 here.
4279 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
4280
4281 2002-05-06 Akim Demaille <akim@epita.fr>
4282
4283 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
4284 hash_do_for_each.
4285
4286 2002-05-06 Akim Demaille <akim@epita.fr>
4287
4288 * src/LR0.c (new_state, get_state): Instead of using the global
4289 `kernel_size' and `kernel_base', have two new arguments:
4290 `core_size' and `core'.
4291 Adjust callers.
4292
4293 2002-05-06 Akim Demaille <akim@epita.fr>
4294
4295 * src/reader.c (packgram): No longer end `ritem' with a 0
4296 sentinel: it is not used.
4297
4298 2002-05-05 Akim Demaille <akim@epita.fr>
4299
4300 New experimental feature: display the lookaheads in the report and
4301 graph.
4302
4303 * src/print (print_core): When --trace-flag, display the rules
4304 lookaheads.
4305 * src/print_graph.c (print_core): Likewise.
4306 Swap the arguments.
4307 Adjust caller.
4308
4309 2002-05-05 Akim Demaille <akim@epita.fr>
4310
4311 * tests/torture.at (Many lookaheads): New test.
4312
4313 2002-05-05 Akim Demaille <akim@epita.fr>
4314
4315 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
4316 (GENERATE_MUSCLE_INSERT_TABLE): this.
4317 (output_int_table, output_unsigned_int_table, output_short_table)
4318 (output_token_number_table, output_item_number_table): Replace with...
4319 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
4320 (muscle_insert_short_table, muscle_insert_token_number_table)
4321 (muscle_insert_item_number_table): these.
4322 Adjust all callers.
4323 (prepare_tokens): Don't free `translations', since...
4324 * src/reader.h, src/reader.c (grammar_free): do it.
4325 Move to...
4326 * src/gram.h, src/gram.c (grammar_free): here.
4327 * data/bison.simple, data/bison.c++: b4_token_number_max is now
4328 b4_translate_max.
4329
4330 2002-05-05 Akim Demaille <akim@epita.fr>
4331
4332 * src/output.c (output_unsigned_int_table): New.
4333 (prepare_rules): `i' is unsigned.
4334 `prhs', `rline', `r2' are unsigned int.
4335 Rename muscle `rhs_number_max' as `rhs_max'.
4336 Output muscles `prhs_max', `rline_max', and `r2_max'.
4337 Free rline and r1.
4338 * data/bison.simple, data/bison.c++: Adjust to use these muscles
4339 to compute types instead of constant types.
4340 * tests/regression.at (Web2c Actions): Adjust.
4341
4342 2002-05-04 Akim Demaille <akim@epita.fr>
4343
4344 * src/symtab.h (SALIAS, SUNDEF): Rename as...
4345 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
4346 Adjust dependencies.
4347 * src/output.c (token_definitions_output): Be sure not to output a
4348 `#define 'a'' when fed with `%token 'a' "a"'.
4349 * tests/regression.at (Token definitions): New.
4350
4351 2002-05-03 Paul Eggert <eggert@twinsun.com>
4352
4353 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
4354 for K&R C.
4355
4356 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
4357
4358 * Makefile.am (SUBDIRS): Remove intl.
4359 (EXTRA_DIST): Add config/config.rpath.
4360
4361 2002-05-03 Akim Demaille <akim@epita.fr>
4362
4363 * data/bison.simple (m4_if): Don't output empty enums.
4364 And actually, output valid enum definitions :(.
4365
4366 2002-05-03 Akim Demaille <akim@epita.fr>
4367
4368 * configure.bat: Remove, completely obsolete.
4369 * Makefile.am (EXTRA_DIST): Adjust.
4370 Don't distribute config.rpath...
4371 * config/Makefile.am (EXTRA_DIST): Do it.
4372
4373 2002-05-03 Akim Demaille <akim@epita.fr>
4374
4375 * configure.in (GETTEXT_VERSION): New.
4376 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
4377
4378 2002-05-03 Akim Demaille <akim@epita.fr>
4379
4380 * data/bison.simple (b4_token_enum): New.
4381 (b4_token_defines): Use it to output tokens both as #define and
4382 enums.
4383 Suggested by Paul Eggert.
4384 * src/output.c (token_definitions_output): Don't output spurious
4385 white spaces.
4386
4387 2002-05-03 Akim Demaille <akim@epita.fr>
4388
4389 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
4390
4391 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
4392
4393 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
4394 Update the stack class, give a try to deque as the default container.
4395
4396 2002-05-02 Akim Demaille <akim@epita.fr>
4397
4398 * data/bison.simple (yyparse): Do not implement @$ = @1.
4399 (YYLLOC_DEFAULT): Adjust to do it.
4400 * doc/bison.texinfo (Location Default Action): Fix.
4401
4402 2002-05-02 Akim Demaille <akim@epita.fr>
4403
4404 * src/reader.c (parse_braces): Merge into...
4405 (parse_action): this.
4406
4407 2002-05-02 Akim Demaille <akim@epita.fr>
4408
4409 * configure.in (ALL_LINGUAS): Remove.
4410 * po/LINGUAS, hr.po: New.
4411
4412 2002-05-02 Akim Demaille <akim@epita.fr>
4413
4414 Remove the so called hairy (semantic) parsers.
4415
4416 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
4417 * src/gram.h, src/gram.c (semantic_parser): Remove.
4418 (rule_t): Remove the guard and guard_line members.
4419 * src/lex.h (token_t): remove tok_guard.
4420 * src/options.c (option_table): Remove %guard and %semantic_parser
4421 support.
4422 * src/output.c, src/output.h (guards_output): Remove.
4423 (prepare): Adjust.
4424 (token_definitions_output): Don't output the `T'
4425 tokens (???).
4426 (output_skeleton): Don't output the guards.
4427 * src/files.c, src/files.c (attrsfile): Remove.
4428 * src/reader.c (symbol_list): Remove the guard and guard_line
4429 members.
4430 Adjust dependencies.
4431 (parse_guard): Remove.
4432 * data/bison.hairy: Remove.
4433 * doc/bison.texinfo (Environment Variables): Remove occurrences of
4434 BISON_HAIRY.
4435
4436 2002-05-02 Akim Demaille <akim@epita.fr>
4437
4438 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
4439 (parse_guard): Rename the formal argument `stack_offset' as
4440 `rule_length', which is more readable.
4441 Adjust callers.
4442 (copy_at, copy_dollar): Instead of outputting the hard coded
4443 values of $$, $n and so forth, output invocation to b4_lhs_value,
4444 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
4445 Note: this patch partially drops `semantic-parser' support: it
4446 always does `rule_length - n', where semantic parsers ought to
4447 always use `-n'.
4448 * data/bison.simple, data/bison.c++ (b4_lhs_value)
4449 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
4450
4451 2002-05-02 Akim Demaille <akim@epita.fr>
4452
4453 * configure.in (AC_INIT): Bump to 1.49b.
4454 (AM_INIT_AUTOMAKE): Short invocation.
4455
4456 2002-05-02 Akim Demaille <akim@epita.fr>
4457
4458 Version 1.49a.
4459
4460 2002-05-01 Akim Demaille <akim@epita.fr>
4461
4462 * src/skeleton.h: Remove.
4463
4464 2002-05-01 Akim Demaille <akim@epita.fr>
4465
4466 * src/skeleton.h: Fix the #endif.
4467 Reported by Magnus Fromreide.
4468
4469 2002-04-26 Paul Eggert <eggert@twinsun.com>
4470
4471 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
4472 Define if we define YYSTYPE and YYLTYPE, respectively.
4473 (YYCOPY): Fix [] quoting problem in the non-GCC case.
4474
4475 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
4476
4477 * src/scan-skel.l: Postprocess quadrigraphs.
4478
4479 * src/reader.c (copy_character): New function, used to output
4480 single characters while replacing `[' and `]' with quadrigraphs, to
4481 avoid troubles with M4 quotes.
4482 (copy_comment): Output characters with copy_character.
4483 (read_additionnal_code): Likewise.
4484 (copy_string2): Likewise.
4485 (copy_definition): Likewise.
4486
4487 * tests/calc.at: Exercise M4 quoting.
4488
4489 2002-04-25 Akim Demaille <akim@epita.fr>
4490
4491 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
4492 between `!' and the command.
4493 Reported by Paul Eggert.
4494
4495 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
4496
4497 * tests/calc.at: Exercise prologue splitting.
4498
4499 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
4500 `b4_post_prologue' instead of `b4_prologue'.
4501
4502 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
4503 muscles.
4504 (output): Free pre_prologue_obstack and post_prologue_obstack.
4505 * src/files.h, src/files.c (attrs_obstack): Remove.
4506 (pre_prologue_obstack, post_prologue_obstack): New.
4507 * src/reader.c (copy_definition): Add a parameter to specify the
4508 obstack to fill, instead of using attrs_obstack unconditionally.
4509 (read_declarations): Pass pre_prologue_obstack to copy_definition if
4510 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
4511
4512 2002-04-23 Paul Eggert <eggert@twinsun.com>
4513
4514 * data/bison.simple: Remove unnecessary commentary and white
4515 space differences from 1_29-branch.
4516 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
4517
4518 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
4519 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
4520 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
4521 constructors or destructors.
4522
4523 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
4524
4525 2002-04-23 Akim Demaille <akim@epita.fr>
4526
4527 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
4528 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
4529 location with columns.
4530 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
4531 All reported by Paul Eggert.
4532
4533 2002-04-22 Akim Demaille <akim@epita.fr>
4534
4535 * src/reduce.c (dump_grammar): Move to...
4536 * src/gram.h, src/gram.c (grammar_dump): here.
4537 Be sure to separate long item numbers.
4538 Don't read the members of a rule's prec if its nil.
4539
4540 2002-04-22 Akim Demaille <akim@epita.fr>
4541
4542 * src/output.c (table_size, table_grow): New.
4543 (MAXTABLE): Remove, replace uses with table_size.
4544 (pack_vector): Instead of dying when the table is too big, grow it.
4545
4546 2002-04-22 Akim Demaille <akim@epita.fr>
4547
4548 * data/bison.simple (yyr1): Its type is that of a token number.
4549 * data/bison.c++ (r1_): Likewise.
4550 * tests/regression.at (Web2c Actions): Adjust.
4551
4552 2002-04-22 Akim Demaille <akim@epita.fr>
4553
4554 * src/reader.c (token_translations_init): 256 is now the default
4555 value for the error token, i.e., it will be assigned another
4556 number if the user assigned 256 to one of her tokens.
4557 (reader): Don't force 256 to error.
4558 * doc/bison.texinfo (Symbols): Adjust.
4559 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
4560 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
4561 etc. instead of 10, 20, 30 (which was used to `jump' over error
4562 (256) and undefined (2)).
4563
4564 2002-04-22 Akim Demaille <akim@epita.fr>
4565
4566 Propagate more token_number_t.
4567
4568 * src/gram.h (token_number_as_item_number)
4569 (item_number_as_token_number): New.
4570 * src/output.c (GENERATE_OUTPUT_TABLE): New.
4571 Use it to create output_item_number_table and
4572 output_token_number_table.
4573 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4574 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
4575 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
4576 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
4577
4578 2002-04-22 Akim Demaille <akim@epita.fr>
4579
4580 * src/output.h, src/output.c (get_lines_number): Remove.
4581
4582 2002-04-19 Akim Demaille <akim@epita.fr>
4583
4584 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
4585 as Lex/Flex'.
4586 (Debugging): More details about enabling the debugging features.
4587 (Table of Symbols): Describe $$, $n, @$, and @n.
4588 Suggested by Tim Josling.
4589
4590 2002-04-19 Akim Demaille <akim@epita.fr>
4591
4592 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
4593
4594 2002-04-10 Akim Demaille <akim@epita.fr>
4595
4596 * src/system.h: Rely on HAVE_LIMITS_H.
4597 Suggested by Paul Eggert.
4598
4599 2002-04-09 Akim Demaille <akim@epita.fr>
4600
4601 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
4602 full stderr, and strip it according to the bison options, instead
4603 of composing the error message from different bits.
4604 This makes it easier to check for several error messages.
4605 Adjust all the invocations.
4606 Add an invocation exercising the error token.
4607 Add an invocation demonstrating a stupid error message.
4608 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
4609 Adjust the tests.
4610 Error message are for stderr, not stdout.
4611
4612 2002-04-09 Akim Demaille <akim@epita.fr>
4613
4614 * src/gram.h, src/gram.c (error_token_number): Remove, use
4615 errtoken->number.
4616 * src/reader.c (reader): Don't specify the user token number (2)
4617 for $undefined, as it uselessly prevents using it.
4618 * src/gram.h (token_number_t): Move to...
4619 * src/symtab.h: here.
4620 (state_t.number): Is a token_number_t.
4621 * src/print.c, src/reader.c: Use undeftoken->number instead of
4622 hard coded 2.
4623 (Even though this 2 is not the same as above: the number of the
4624 undeftoken remains being 2, it is its user token number which
4625 might not be 2).
4626 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
4627 `user_token_number_max'.
4628 Output `undef_token_number'.
4629 * data/bison.simple, data/bison.c++: Use them.
4630 Be sure to map invalid yylex return values to
4631 `undef_token_number'. This saves us from gratuitous SEGV.
4632
4633 * tests/conflicts.at (Solved SR Conflicts)
4634 (Unresolved SR Conflicts): Adjust.
4635 * tests/regression.at (Web2c Actions): Adjust.
4636
4637 2002-04-08 Akim Demaille <akim@epita.fr>
4638
4639 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
4640 Adding #line.
4641 Remove the duplicate `typedefs'.
4642 (RhsNumberType): Fix the declaration and various other typos.
4643 Use __ofile__.
4644 * data/bison.simple: Use __ofile__.
4645 * src/scan-skel.l: Handle __ofile__.
4646
4647 2002-04-08 Akim Demaille <akim@epita.fr>
4648
4649 * src/gram.h (item_number_t): New, the type of item numbers in
4650 RITEM. Note that it must be able to code symbol numbers as
4651 positive number, and the negation of rule numbers as negative
4652 numbers.
4653 Adjust all dependencies (pretty many).
4654 * src/reduce.c (rule): Remove this `short *' pointer: use
4655 item_number_t.
4656 * src/system.h (MINSHORT, MAXSHORT): Remove.
4657 Include `limits.h'.
4658 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
4659 (shortcpy): Remove.
4660 (MAXTABLE): Move to...
4661 * src/output.c (MAXTABLE): here.
4662 (prepare_rules): Use output_int_table to output rhs.
4663 * data/bison.simple, data/bison.c++: Adjust.
4664 * tests/torture.at (Big triangle): Move the limit from 254 to
4665 500.
4666 * tests/regression.at (Web2c Actions): Ajust.
4667
4668 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
4669 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
4670 passes, but produces negative #line number, once fixed, GCC is
4671 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
4672 C), it passes.
4673 * src/state.h (state_h): Code input lines on ints, not shorts.
4674
4675 2002-04-08 Akim Demaille <akim@epita.fr>
4676
4677 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
4678 and then the grammar.
4679
4680 2002-04-08 Akim Demaille <akim@epita.fr>
4681
4682 * src/system.h: No longer using strndup.
4683
4684 2002-04-07 Akim Demaille <akim@epita.fr>
4685
4686 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
4687 * src/output.c (output_table_data): Return the longest number.
4688 (prepare_tokens): Output `token_number_max').
4689 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
4690 New.
4691 Use them to define yy_token_number_type/TokenNumberType.
4692 Use this type for yytranslate.
4693 * tests/torture.at (Big triangle): Push the limit from 124 to
4694 253.
4695 * tests/regression.at (Web2c Actions): Adjust.
4696
4697 2002-04-07 Akim Demaille <akim@epita.fr>
4698
4699 * tests/torture.at (Big triangle): New.
4700 (GNU AWK Grammar, GNU Cim Grammar): Move to...
4701 * tests/existing.at: here.
4702
4703 2002-04-07 Akim Demaille <akim@epita.fr>
4704
4705 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
4706 nritems.
4707 Adjust dependencies.
4708
4709 2002-04-07 Akim Demaille <akim@epita.fr>
4710
4711 * src/reader.c: Normalize increments to prefix form.
4712
4713 2002-04-07 Akim Demaille <akim@epita.fr>
4714
4715 * src/reader.c, symtab.c: Remove debugging code.
4716
4717 2002-04-07 Akim Demaille <akim@epita.fr>
4718
4719 Rename all the `bucket's as `symbol_t'.
4720
4721 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
4722 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
4723 * src/symtab.c, src/symtab.h (bucket): Rename as...
4724 (symbol_t): this.
4725 (symbol_list_new, bucket_check_defined, bucket_make_alias)
4726 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
4727 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
4728 (buckets_new, buckets_free, buckets_do): Rename as...
4729 (symbol_list_new, symbol_check_defined, symbol_make_alias)
4730 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4731 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
4732 (symbols_new, symbols_free, symbols_do): these.
4733
4734 2002-04-07 Akim Demaille <akim@epita.fr>
4735
4736 Use lib/hash for the symbol table.
4737
4738 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
4739 EOF.
4740 * src/lex.c (lex): Set the `number' member of new terminals.
4741 * src/reader.c (bucket_check_defined, bucket_make_alias)
4742 (bucket_check_alias_consistence, bucket_translation): New.
4743 (reader, grammar_free, readgram, token_translations_init)
4744 (packsymbols): Adjust.
4745 (reader): Number the predefined tokens.
4746 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
4747 for predefined tokens.
4748 * src/symtab.h (bucket): Remove all the hash table related
4749 members.
4750 * src/symtab.c (symtab): Replace by...
4751 (bucket_table): this.
4752 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
4753 (buckets_new, buckets_do): New.
4754
4755 2002-04-07 Akim Demaille <akim@epita.fr>
4756
4757 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
4758 (start_symbol, max_user_token_number, semantic_parser)
4759 (error_token_number): Initialize.
4760 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
4761 Initialize.
4762 (reader): Don't.
4763 (errtoken, eoftoken, undeftoken, axiom): Extern.
4764
4765 2002-04-07 Akim Demaille <akim@epita.fr>
4766
4767 * src/gram.h (rule_s): prec and precsym are now pointers
4768 to the bucket giving the priority/associativity.
4769 Member `associativity' removed: useless.
4770 * src/reduce.c, src/conflicts.c: Adjust.
4771
4772 2002-04-07 Akim Demaille <akim@epita.fr>
4773
4774 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
4775 Properly escape the symbols' TAG when outputting them.
4776
4777 2002-04-07 Akim Demaille <akim@epita.fr>
4778
4779 * src/lalr.h (LA): Is a bitsetv, not bitset*.
4780
4781 2002-04-07 Akim Demaille <akim@epita.fr>
4782
4783 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
4784 (LArule): this, which is an array to rule_t*.
4785 * src/print.c, src/conflicts.c: Adjust.
4786
4787 2002-04-07 Akim Demaille <akim@epita.fr>
4788
4789 * src/gram.h (rule_t): Rename `number' as `user_number'.
4790 `number' is a new member.
4791 Adjust dependencies.
4792 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
4793
4794 2002-04-07 Akim Demaille <akim@epita.fr>
4795
4796 As a result of the previous patch, it is no longer needed
4797 to reorder ritem itself.
4798
4799 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
4800
4801 2002-04-07 Akim Demaille <akim@epita.fr>
4802
4803 Be sure never to walk through RITEMS, but use only data related to
4804 the rules themselves. RITEMS should be banished.
4805
4806 * src/output.c (output_token_translations): Rename as...
4807 (prepare_tokens): this.
4808 In addition to `translate', prepare the muscles `tname' and
4809 `toknum', which were handled by...
4810 (output_rule_data): this.
4811 Remove, and move the remainder of its outputs into...
4812 (prepare_rules): this new routines, which also merges content from
4813 (output_gram): this.
4814 (prepare_rules): Be sure never to walk through RITEMS.
4815 (output_stos): Rename as...
4816 (prepare_stos): this.
4817 (output): Always invoke prepare_states, after all, just don't use it
4818 in the output if you don't need it.
4819
4820 2002-04-07 Akim Demaille <akim@epita.fr>
4821
4822 * src/LR0.c (new_state): Display `nstates' as the name of the
4823 newly created state.
4824 Adjust to initialize first_state and last_state if needed.
4825 Be sure to distinguish the initial from the final state.
4826 (new_states): Create the itemset of the initial state, and use
4827 new_state.
4828 * src/closure.c (closure): Now that the initial state has its
4829 items properly set, there is no need for a special case when
4830 creating `ruleset'.
4831
4832 As a result, now the rule 0, reducing to $axiom, is visible in the
4833 outputs. Adjust the test suite.
4834
4835 * tests/conflicts.at (Solved SR Conflicts)
4836 (Unresolved SR Conflicts): Adjust.
4837 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
4838 * tests/conflicts.at (S/R in initial): New.
4839
4840 2002-04-07 Akim Demaille <akim@epita.fr>
4841
4842 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
4843 the RHS of the rules.
4844 * src/output.c (output_gram): Likewise.
4845
4846 2002-04-07 Akim Demaille <akim@epita.fr>
4847
4848 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
4849 bucket.
4850 Adjust all dependencies.
4851 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
4852 `number' of the buckets too.
4853 * src/gram.h: Include `symtab.h'.
4854 (associativity): Move to...
4855 * src/symtab.h: here.
4856 No longer include `gram.h'.
4857
4858 2002-04-07 Akim Demaille <akim@epita.fr>
4859
4860 * src/gram.h, src/gram.c (rules_rhs_length): New.
4861 (ritem_longest_rhs): Use it.
4862 * src/gram.h (rule_t): `number' is a new member.
4863 * src/reader.c (packgram): Set it.
4864 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
4865 the end of `rules', and count them out of `nrules'.
4866 (reduce_output, dump_grammar): Adjust.
4867 * src/print.c (print_grammar): It is no longer needed to check for
4868 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
4869 * tests/reduce.at (Reduced Automaton): New test.
4870
4871 2002-04-07 Akim Demaille <akim@epita.fr>
4872
4873 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
4874 lacking `+ 1' to nrules, Bison reported as useless a token if it
4875 was used solely to set the precedence of the last rule...
4876
4877 2002-04-07 Akim Demaille <akim@epita.fr>
4878
4879 * data/bison.c++, data/bison.simple: Don't output the current file
4880 name in #line, to avoid useless diffs between two identical
4881 outputs under different names.
4882
4883 2002-04-07 Akim Demaille <akim@epita.fr>
4884
4885 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
4886 Normalize loops to using `< nrules + 1', not `<= nrules'.
4887
4888 2002-04-07 Akim Demaille <akim@epita.fr>
4889
4890 * TODO: Update.
4891
4892 2002-04-07 Akim Demaille <akim@epita.fr>
4893
4894 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
4895 bucket.value as bucket.number.
4896
4897 2002-04-07 Akim Demaille <akim@epita.fr>
4898
4899 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
4900 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
4901 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
4902 RHS, instead of being an index in RITEMS.
4903
4904 2002-04-04 Paul Eggert <eggert@twinsun.com>
4905
4906 * doc/bison.texinfo: Update copyright date.
4907 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
4908 (Symbols): Warn about running Bison in one character set,
4909 but compiling and/or running in an incompatible one.
4910 Warn about character code 256, too.
4911
4912 2002-04-03 Paul Eggert <eggert@twinsun.com>
4913
4914 * src/bison.data (YYSTACK_ALLOC): Depend on whether
4915 YYERROR_VERBOSE is nonzero, not whether it is defined.
4916
4917 Merge changes from bison-1_29-branch.
4918
4919 2002-03-20 Paul Eggert <eggert@twinsun.com>
4920
4921 Merge fixes from Debian bison_1.34-1.diff.
4922
4923 * configure.in (AC_PREREQ): 2.53.
4924
4925 2002-03-20 Akim Demaille <akim@epita.fr>
4926
4927 * src/conflicts.c (log_resolution): Argument `resolution' is const.
4928
4929 2002-03-19 Paul Eggert <eggert@twinsun.com>
4930
4931 * src/bison.simple (YYCOPY): New macro.
4932 (YYSTACK_RELOCATE): Use it.
4933 Remove Type arg; no longer needed. All callers changed.
4934 (yymemcpy): Remove; no longer needed.
4935
4936 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
4937 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
4938
4939 2002-03-19 Akim Demaille <akim@epita.fr>
4940
4941 Test and fix the #line outputs.
4942
4943 * tests/atlocal.at (GCC): New.
4944 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
4945 (Prologue synch line, ,%union synch line, Postprologue synch line)
4946 (Action synch line, Epilogue synch line): New tests.
4947 * src/reader.c (parse_union_decl): Define the muscle stype_line.
4948 * data/bison.simple, data/bison.c++: Use it.
4949
4950 2002-03-19 Akim Demaille <akim@epita.fr>
4951
4952 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
4953 (Solved SR Conflicts, %expect not enough, %expect right)
4954 (%expect too much): Move to...
4955 * tests/conflicts.at: this new file.
4956
4957 2002-03-19 Akim Demaille <akim@epita.fr>
4958
4959 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
4960 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
4961 that we can move to enums for instance.
4962 * src/output.c (token_definitions_output): Output a list of
4963 `token-name, token-number' instead of the #define.
4964 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
4965
4966 2002-03-14 Akim Demaille <akim@epita.fr>
4967
4968 Use Gettext 0.11.1.
4969
4970 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
4971
4972 * data/bison.c++: Make the user able to add members to the generated
4973 parser by subclassing.
4974
4975 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
4976
4977 * src/reader.c (read_additionnal_code): `c' should be an integer, not
4978 a character.
4979 Reported by Nicolas Tisserand and Nicolas Burrus.
4980
4981 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
4982
4983 * src/reader.c: Warn about lacking semi-colons, do not complain.
4984
4985 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
4986
4987 * data/bison.c++: Remove a debug line.
4988
4989 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
4990
4991 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
4992 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
4993 provide a default implementation.
4994
4995 2002-03-04 Akim Demaille <akim@epita.fr>
4996
4997 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
4998 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
4999 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
5000 * tests/semantic.at (Parsing Guards): Similarly.
5001 * src/reader.at (readgram): Complain if the last rule is not ended
5002 with a semi-colon.
5003
5004 2002-03-04 Akim Demaille <akim@epita.fr>
5005
5006 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
5007 * src/closure.c: here.
5008 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
5009 RTC.
5010 * src/warshall.h, src/warshall.c: Remove.
5011 * tests/sets.at (Broken Closure): Adjust.
5012
5013 2002-03-04 Akim Demaille <akim@epita.fr>
5014
5015 * src/output.c (output_skeleton): tempdir is const.
5016 bytes_read is unused.
5017
5018 2002-03-04 Akim Demaille <akim@epita.fr>
5019
5020 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5021 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
5022 Update.
5023 From Michael Hayes.
5024
5025 2002-03-04 Akim Demaille <akim@epita.fr>
5026
5027 * src/closure.c (closure): `r' is unused.
5028
5029 2002-03-04 Akim Demaille <akim@epita.fr>
5030
5031 * tests/sets.at (Broken Closure): Add the ending `;'.
5032 * src/reader.at (readgram): Complain if a rule is not ended with a
5033 semi-colon.
5034
5035 2002-03-04 Akim Demaille <akim@epita.fr>
5036
5037 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
5038 (count_sr_conflicts): Use bitset_count.
5039 * src/reduce.c (inaccessable_symbols): Ditto.
5040 (bits_size): Remove.
5041 * src/warshall.h, src/warshall.c: Convert to bitsetv.
5042
5043 2002-03-04 Akim Demaille <akim@epita.fr>
5044
5045 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
5046 * src/reduce.c: Remove the `bitset_zero's following the
5047 `bitset_create's, as now it is performed by the latter.
5048
5049 2002-03-04 Akim Demaille <akim@epita.fr>
5050
5051 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
5052 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
5053 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
5054 latest sources from Michael.
5055
5056 2002-03-04 Akim Demaille <akim@epita.fr>
5057
5058 * src/output.c (output): Don't free the grammar.
5059 * src/reader.c (grammar_free): New.
5060 * src/main.c (main): Call it and don't free symtab here.
5061
5062 2002-03-04 Akim Demaille <akim@epita.fr>
5063
5064 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
5065 before returning.
5066 Reported by Benoit Perrot.
5067
5068 2002-03-04 Akim Demaille <akim@epita.fr>
5069
5070 Use bitset operations when possible, not loops over bits.
5071
5072 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
5073 bitset_or.
5074 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
5075 * src/reduce.c (useless_nonterminals): Formatting changes.
5076 * src/warshall.c (TC): Use bitset_or.
5077
5078 2002-03-04 Akim Demaille <akim@epita.fr>
5079
5080 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
5081 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
5082 Ditto.
5083
5084 2002-03-04 Akim Demaille <akim@epita.fr>
5085
5086 * src/lalr.c (F): Now a bitset*.
5087 Adjust all dependencies.
5088
5089 2002-03-04 Akim Demaille <akim@epita.fr>
5090
5091 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
5092 Adjust all dependencies.
5093
5094 2002-03-04 Akim Demaille <akim@epita.fr>
5095
5096 * src/L0.c, src/LR0.h (nstates): Be size_t.
5097 Adjust comparisons (signed vs unsigned).
5098 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
5099 bitset*.
5100 Adjust all dependencies.
5101
5102 2002-03-04 Akim Demaille <akim@epita.fr>
5103
5104 * src/closure.c (firsts): Now, also a bitset.
5105 Adjust all dependencies.
5106 (varsetsize): Remove, now unused.
5107 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
5108
5109 2002-03-04 Akim Demaille <akim@epita.fr>
5110
5111 * src/print.c: Convert to use bitset.h, not hand coded iterations
5112 over ints.
5113
5114 2002-03-04 Akim Demaille <akim@epita.fr>
5115
5116 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
5117
5118 2002-03-04 Akim Demaille <akim@epita.fr>
5119
5120 * src/closure.c (ruleset): Be a bitset.
5121 (rulesetsize): Remove.
5122
5123 2002-03-04 Akim Demaille <akim@epita.fr>
5124
5125 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5126 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
5127 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
5128 * src/closure.c (fderives): Be an array of bitsets.
5129
5130 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
5131
5132 * data/bison.c++: Merge the two generated headers. Insert a copyright
5133 notice in each output file.
5134
5135 2002-02-28 Akim Demaille <akim@epita.fr>
5136
5137 * data/bison.c++: Copy the prologue of bison.simple to fetch
5138 useful M4 definitions, such as b4_header_guard.
5139
5140 2002-02-25 Akim Demaille <akim@epita.fr>
5141
5142 * src/getargs.c (version): Give the name of the authors, and use a
5143 translator friendly scheme for the bgr
5144 copyright notice.
5145
5146 2002-02-25 Akim Demaille <akim@epita.fr>
5147
5148 * src/output.c (header_output): Remove, now handled completely via
5149 M4.
5150
5151 2002-02-25 Akim Demaille <akim@epita.fr>
5152
5153 * m4/m4.m4: New, from CVS Autoconf.
5154 * configure.in: Invoke it.
5155 * src/output.c (output_skeleton): Use its result instead of the
5156 hard coded name.
5157
5158 2002-02-25 Akim Demaille <akim@epita.fr>
5159
5160 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
5161 Fileutils 4.1.5.
5162 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
5163 * src/output.c (output_skeleton): Use mkstemp to create a real
5164 temporary file.
5165 Move the filling of `skeleton' and its muscle to...
5166 (prepare): here.
5167 (output): Move the definition of the prologue muscle to...
5168 (prepare): here.
5169 * src/system.h (DEFAULT_TMPDIR): New.
5170
5171 2002-02-14 Paul Eggert <eggert@twinsun.com>
5172
5173 Remove the support for C++ namespace cleanliness; it was
5174 causing more problems than it was curing, since it didn't work
5175 properly on some nonstandard C++ compilers. This can wait
5176 for a proper C++ parser.
5177
5178 * NEWS: Document this.
5179 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
5180 of C++, as it's treated like C now.
5181 * src/bison.simple (YYSTD): Remove.
5182 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
5183 Treat C++ just like Standard C instead of trying to support
5184 namespace cleanliness.
5185
5186 2002-02-14 Akim Demaille <akim@epita.fr>
5187
5188 * tests/regression.at (else): Adjust to Andreas' change.
5189
5190 2002-02-14 Akim Demaille <akim@epita.fr>
5191
5192 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
5193
5194 2002-02-13 Andreas Schwab <schwab@suse.de>
5195
5196 * src/output.c (output_rule_data): Don't output NULL, it might
5197 not be defined yet.
5198
5199 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
5200
5201 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
5202 (Copyright notice): Update.
5203
5204 2002-02-11 Akim Demaille <akim@epita.fr>
5205
5206 * tests/regression.at (%nonassoc and eof): Don't include
5207 nonportable headers.
5208
5209 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
5210
5211 * data/bison.c++: Correct error recovery. Make the user able to
5212 initialize the starting location.
5213
5214 2002-02-07 Akim Demaille <akim@epita.fr>
5215
5216 * tests/input.at: New.
5217
5218 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5219
5220 * data/bison.c++: Replace some direct m4 expansions by constants. Be
5221 more consistent when naming methods and variables. Put preprocessor
5222 directives around tables only needed for debugging.
5223
5224 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5225
5226 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
5227 C++ parsers.
5228 (yy::b4_name::parse): Use print_.
5229
5230 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5231
5232 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
5233
5234 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5235
5236 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
5237 C++ parsers.
5238 (yy::b4_name::parse): Build verbose error messages, and use error_.
5239
5240 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
5241
5242 * data/bison.c++: Fix m4 quoting in comments.
5243
5244 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
5245
5246 * data/bison.c++: Adjust the parser code. Fix some muscles that were
5247 not expanded by m4.
5248
5249 2002-02-05 Akim Demaille <akim@epita.fr>
5250
5251 * data/bison.c++: Adjust to the M4 back end.
5252 More is certainly needed.
5253
5254 2002-02-05 Akim Demaille <akim@epita.fr>
5255
5256 Give a try to M4 as a back end.
5257
5258 * lib/readpipe.c: New, from wdiff.
5259 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
5260 BISON_HAIRY.
5261 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
5262 specific values. Now it is m4 that performs the lookup.
5263 * src/parse-skel.y: Remove.
5264 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
5265 * src/output.c (actions_output, guards_output)
5266 (token_definitions_output): No longer keeps track of the output
5267 line number, hence remove the second argument.
5268 (guards_output): Check against the guard member of a rule, not the
5269 action member.
5270 Adjust callers.
5271 (output_skeleton): Don't look for the skeleton location, let m4 do
5272 that.
5273 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
5274 file will be used.
5275 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
5276 (prepare): Given that for the time being changesyntax is not
5277 usable in M4, rename the muscles using `-' to `_'.
5278 Define `defines_flag', `output_parser_name' and `output_header_name'.
5279 * src/output.h (actions_output, guards_output)
5280 (token_definitions_output): Adjust prototypes.
5281 * src/scan-skel.l: Instead of scanning the skeletons, it now
5282 processes the output of m4: `__oline__' and `#output'.
5283 * data/bison.simple: Adjust to be used by M4(sugar).
5284 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
5285 to date.
5286 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
5287 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
5288 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
5289 shamelessly stolen from CVS Autoconf.
5290
5291 2002-02-05 Akim Demaille <akim@epita.fr>
5292
5293 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
5294 * configure.in: Check for the declarations of free and malloc.
5295 * src/muscle_tab.c: Adjust.
5296
5297 2002-02-05 Akim Demaille <akim@epita.fr>
5298
5299 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
5300 which have no values.
5301
5302 2002-02-05 Akim Demaille <akim@epita.fr>
5303
5304 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
5305 * data/: here.
5306
5307 2002-01-29 Paul Eggert <eggert@twinsun.com>
5308
5309 * src/bison.simple (YYSIZE_T): Do not define merely because
5310 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
5311 On some platforms, <alloca.h> does not declare YYSTD (size_t).
5312
5313 2002-01-27 Akim Demaille <akim@epita.fr>
5314
5315 Fix `%nonassoc and eof'.
5316
5317 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
5318 which were not properly copied! Replace
5319 memcpy (res->errs, src->errs, src->nerrs);
5320 with
5321 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
5322 !!!
5323 * tests/regression.at (%nonassoc and eof): Adjust to newest
5324 Autotest: `.' is not in the PATH.
5325
5326 2002-01-27 Akim Demaille <akim@epita.fr>
5327
5328 * tests/sets.at (AT_EXTRACT_SETS): New.
5329 (Nullable): Use it.
5330 (Firsts): New.
5331
5332 2002-01-26 Akim Demaille <akim@epita.fr>
5333
5334 * tests/actions.at, tests/calc.at, tests/headers.at,
5335 * tests/torture.at: Adjust to the newest Autotest which no longer
5336 forces `.' in the PATH.
5337
5338 2002-01-25 Akim Demaille <akim@epita.fr>
5339
5340 * tests/regression.at (%nonassoc and eof): New.
5341 Suggested by Robert Anisko.
5342
5343 2002-01-24 Akim Demaille <akim@epita.fr>
5344
5345 Bison dumps core when trying to complain about broken input files.
5346 Reported by Cris van Pelt.
5347
5348 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
5349 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
5350 into...
5351 (Invalid inputs): Strengthen: exercise parse_percent_token.
5352
5353 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
5354
5355 * src/Makefile.am: Add bison.c++.
5356 * src/bison.c++: New skeleton.
5357
5358 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
5359
5360 * po/it.po: New.
5361
5362 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
5363
5364 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
5365
5366 2002-01-20 Marc Autret <marc@gnu.org>
5367
5368 * src/files.c (compute_output_file_names): Fix
5369
5370 2002-01-20 Marc Autret <marc@gnu.org>
5371
5372 * tests/output.at: New test.
5373 * src/files.c (compute_base_names): Don't map extensions when
5374 the YACC flag is set, use defaults.
5375 Reported by Evgeny Stambulchik.
5376
5377 2002-01-20 Marc Autret <marc@gnu.org>
5378
5379 * src/system.h: Need to define __attribute__ away for non-GCC
5380 compilers as well (i.e. the vendor C compiler).
5381 Suggested by Albert Chin-A-Young.
5382
5383 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
5384
5385 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
5386 canonical definition.
5387 * src/system.h: Use the canonical definition for PARAMS (avoids
5388 a conflict with the macro from lib/hash.h).
5389
5390 2002-01-11 Akim Demaille <akim@epita.fr>
5391
5392 * configure.in: Use AC_FUNC_STRNLEN.
5393 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
5394
5395 2002-01-09 Akim Demaille <akim@epita.fr>
5396
5397 * src/files.c, src/files.h (output_infix): New.
5398 (tab_extension): Remove.
5399 (compute_base_names): Compute the former, drop the latter.
5400 * src/output.c (prepare): Insert the muscles `output-infix', and
5401 `output-suffix'.
5402 * src/parse-skel.y (string, string.1): New.
5403 (section.header): Use it.
5404 (section.yacc): Remove.
5405 (prefix): Remove too.
5406 * src/scan-skel.l: Adjust.
5407 * src/bison.simple, src/bison.hairy: Adjust.
5408
5409 2002-01-09 Akim Demaille <akim@epita.fr>
5410
5411 * configure.in (WERROR_CFLAGS): Compute it.
5412 * src/Makefile.am (CFLAGS): Pass it.
5413 * tests/atlocal.in (CFLAGS): Idem.
5414 * src/files.c: Fix a few warnings.
5415 (get_extension_index): Remove, unused.
5416
5417 2002-01-08 Akim Demaille <akim@epita.fr>
5418
5419 * src/getargs.c (AS_FILE_NAME): New.
5420 (getargs): Use it to convert DOSish file names.
5421 * src/files.c (base_name): Rename as full_base_name to avoid
5422 clashes with `base_name ()'.
5423 (filename_split): New.
5424 (compute_base_names): N-th rewrite, using filename_split.
5425
5426 2002-01-08 Akim Demaille <akim@epita.fr>
5427
5428 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
5429 New, stolen from the Fileutils 4.1.
5430 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
5431 * configure.in: Check for the presence of memrchr, and of its
5432 prototype.
5433
5434 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
5435
5436 * lib/hash.h (__P): Added definition for this macro.
5437 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
5438 BUILT_SOURCES, to ensure they are generated first.
5439 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
5440 %error-verbose to allow bootstrapping with bison 1.30x.
5441
5442 2002-01-06 Akim Demaille <akim@epita.fr>
5443
5444 * src/reader.c (parse_braces): Don't fetch the next char, the
5445 convention is to fetch on entry.
5446 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
5447 'switch' without a following semicolon.
5448 * tests/regression.at (braces parsing): New.
5449
5450 2002-01-06 Akim Demaille <akim@epita.fr>
5451
5452 Bison is dead wrong in its RR conflict reports.
5453
5454 * tests/torture.at (GNU Cim Grammar): New.
5455 * src/conflicts.c (count_rr_conflicts): Fix.
5456
5457 2002-01-06 Akim Demaille <akim@epita.fr>
5458
5459 Creating package.m4 from configure.ac causes too many problems.
5460
5461 * tests/Makefile.am (package.m4): Create it by hand,
5462 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
5463
5464 2002-01-06 Akim Demaille <akim@epita.fr>
5465
5466 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
5467 skeleton.h.
5468
5469 2002-01-04 Paul Eggert <eggert@twinsun.com>
5470
5471 * doc/bison.texinfo (Debugging):
5472 Remove YYSTDERR; it's no longer defined or used.
5473 Also, s/cstdio.h/cstdio/.
5474
5475 2002-01-03 Akim Demaille <akim@epita.fr>
5476
5477 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
5478
5479 2002-01-03 Akim Demaille <akim@epita.fr>
5480
5481 * src/parse-skel.y (process_skeleton): Don't bind the parser's
5482 tracing code to --trace, wait for a better --trace option, with
5483 args.
5484
5485 2002-01-03 Akim Demaille <akim@epita.fr>
5486
5487 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
5488 The ISO C++ standard is extremely clear about it: stderr is
5489 considered a macro, not a regular symbol (see table 94 `Header
5490 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
5491 Therefore std:: does not apply to it. It still does with fprintf.
5492 Also, s/cstdio.h/cstdio/.
5493
5494 2002-01-03 Akim Demaille <akim@epita.fr>
5495
5496 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
5497 for non system headers.
5498
5499 2002-01-02 Akim Demaille <akim@epita.fr>
5500
5501 Equip the skeleton chain with location tracking, runtime trace,
5502 pure parser and scanner.
5503
5504 * src/parse-skel.y: Request a pure parser, locations, and prefix
5505 renaming.
5506 (%union): Having several members with the same type does not help
5507 type mismatches, simplify.
5508 (YYPRINT, yyprint): New.
5509 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
5510 (skel_error): this.
5511 Handle locations.
5512 * src/scan-skel.l: Adjust to these changes.
5513 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
5514 (LOCATION_PRINT, skel_control_t): New.
5515
5516 2001-12-30 Akim Demaille <akim@epita.fr>
5517
5518 * src/parse-skel.y: Get rid of the shift/reduce conflict:
5519 replace `gb' with BLANKS.
5520 * src/scan-skel.l: Adjust.
5521
5522 2001-12-30 Akim Demaille <akim@epita.fr>
5523
5524 * src/system.h: We don't need nor want bcopy.
5525 Throw away MS-DOS crap: we don't need getpid.
5526 * configure.in: We don't need strndup. It was even causing
5527 problems: because Flex includes the headers *before* us,
5528 _GNU_SOURCE is not defined by config.h, and therefore strndup was
5529 not visible.
5530 * lib/xstrndup.c: New.
5531 * src/scan-skel.l: Use it.
5532 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
5533 * src/parse-skel.y: Use %directives instead of #defines.
5534
5535 2001-12-30 Akim Demaille <akim@epita.fr>
5536
5537 * src/skeleton.h: New.
5538 * src/output.c (output_parser, output_master_parser): Remove, dead
5539 code.
5540 * src/output.h (get_lines_number, actions_output, guards_output)
5541 (token_definitions_output): Prototype them.
5542 * src/parse-skel.y: Add the license notice.
5543 Include output.h and skeleton.h.
5544 (process_skeleton): Returns void, and takes a single parameter.
5545 * src/scan-skel.l: Add the license notice.
5546 Include skeleton.h.
5547 Don't use %option yylineno: it seems that then Flex imagines
5548 REJECT has been used, and therefore it won't reallocate its
5549 buffers (which makes no other sense to me than a bug). It results
5550 in warnings for `unused: yy_flex_realloc'.
5551
5552 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
5553
5554 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
5555 (MUSCLE_INSERT_PREFIX): ...to there.
5556 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
5557 (MUSCLE_INSERT_PREFIX): Move from here...
5558
5559 * src/bison.hairy: Add a section directive. Put braces around muscle
5560 names. This parser skeleton is still broken, but Bison should not
5561 choke on a bad muscle 'syntax'.
5562 * src/bison.simple: Add a section directive. Put braces around muscle
5563 names.
5564
5565 * src/files.h (strsuffix, stringappend): Add declarations.
5566 (tab_extension): Add declaration.
5567 (short_base_name): Add declaration.
5568
5569 * src/files.c (strsuffix, stringappend): No longer static. These
5570 functions are used in the skeleton parser.
5571 (tab_extension): New.
5572 (compute_base_names): Use the computations done in this function
5573 to guess if the generated parsers should have '.tab' in their
5574 names.
5575 (short_base_name): No longer static.
5576
5577 * src/output.c (output_skeleton): New.
5578 (output): Disable call to output_master_parser, and give a try to
5579 a new skeleton handling system.
5580 (guards_output, actions_output): No longer static.
5581 (token_definitions_output, get_lines_number): No longer static.
5582
5583 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
5584
5585 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
5586 parse-skel.y.
5587
5588 * src/parse-skel.y: New file.
5589 * src/scan-skel.l: New file.
5590
5591 2001-12-29 Akim Demaille <akim@epita.fr>
5592
5593 %name-prefix is broken.
5594
5595 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
5596 Adjust all dependencies.
5597 * tests/headers.at (export YYLTYPE): Strengthen this test: use
5598 %name-prefix.
5599
5600 Renaming yylval but not yylloc is not consistent. Now we do.
5601
5602 * src/bison.simple: Prefix yylloc if used.
5603 * doc/bison.texinfo (Decl Summary): Document that.
5604
5605 2001-12-29 Akim Demaille <akim@epita.fr>
5606
5607 * doc/bison.texinfo: Promote `%long-directive' over
5608 `%long_directive'.
5609 Remove all references to fixed-output-files, yacc is enough.
5610
5611 2001-12-29 Akim Demaille <akim@epita.fr>
5612
5613 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
5614 user prologue. These are defaults.
5615 * tests/actions.at (Mid-rule actions): Make sure the user can
5616 define YYDEBUG and YYERROR_VERBOSE.
5617
5618 2001-12-29 Akim Demaille <akim@epita.fr>
5619
5620 * src/output.c (header_output): Don't forget to export YYLTYPE and
5621 yylloc.
5622 * tests/headers.at (export YYLTYPE): New, make sure it does.
5623 * tests/regression.at (%union and --defines, Invalid CPP headers):
5624 Move to...
5625 * tests/headers.at: here.
5626
5627 2001-12-29 Akim Demaille <akim@epita.fr>
5628
5629 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
5630
5631 2001-12-29 Akim Demaille <akim@epita.fr>
5632
5633 * tests/actions.at (Mid-rule actions): Output on a single line
5634 instead of several.
5635
5636 2001-12-29 Akim Demaille <akim@epita.fr>
5637
5638 * doc/bison.texinfo: Formatting changes.
5639
5640 2001-12-29 Akim Demaille <akim@epita.fr>
5641
5642 Don't store the token defs in a muscle, just be ready to output it
5643 on command. Now possible via `symbols'. Fixes a memory leak.
5644
5645 * src/output.c (token_definitions_output): New.
5646 (output_parser, header_output): Use it.
5647 * src/reader.c (symbols_save): Remove.
5648
5649 2001-12-29 Akim Demaille <akim@epita.fr>
5650
5651 * src/bison.simple: Do not provide a default for YYSTYPE and
5652 YYLTYPE before the user's prologue. Otherwise it's hardly... a
5653 default.
5654
5655 2001-12-29 Akim Demaille <akim@epita.fr>
5656
5657 Mid-rule actions are simply... ignored!
5658
5659 * src/reader.c (readgram): Be sure to attach mid-rule actions to
5660 the empty-rule associated to the dummy symbol, not to the host
5661 rule.
5662 * tests/actions.at (Mid-rule actions): New.
5663
5664 2001-12-29 Akim Demaille <akim@epita.fr>
5665
5666 Memory leak.
5667
5668 * src/reader.c (reader): Free grammar.
5669
5670 2001-12-29 Akim Demaille <akim@epita.fr>
5671
5672 Memory leak.
5673
5674 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
5675 since it allocates it for each state, although only one is needed.
5676 (allocate_storage): Do it here.
5677
5678 2001-12-29 Akim Demaille <akim@epita.fr>
5679
5680 * src/options.h, src/options.c (create_long_option_table): Rename
5681 as...
5682 (long_option_table_new): this, with a clearer prototype.
5683 (percent_table): Remove, unused,
5684 * src/getargs.c (getargs): Adjust.
5685
5686 2001-12-29 Akim Demaille <akim@epita.fr>
5687
5688 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
5689 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
5690 as states.
5691
5692 2001-12-29 Akim Demaille <akim@epita.fr>
5693
5694 * src/lalr.c (build_relations): Rename `states' as `states1'.
5695 Sorry, I don't understand exactly what it is, no better name...
5696
5697 2001-12-29 Akim Demaille <akim@epita.fr>
5698
5699 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
5700 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
5701 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
5702 as rules.
5703
5704 2001-12-29 Akim Demaille <akim@epita.fr>
5705
5706 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
5707 ago.
5708
5709 2001-12-29 Akim Demaille <akim@epita.fr>
5710
5711 * src/reader.c, src/reader.h (user_toknums): Remove.
5712 Adjust all users to use symbols[i]->user_token_number.
5713
5714 2001-12-29 Akim Demaille <akim@epita.fr>
5715
5716 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
5717 Adjust all users to use symbols[i]->prec or ->assoc.
5718
5719 2001-12-29 Akim Demaille <akim@epita.fr>
5720
5721 * src/reader.c, src/reader.h (tags): Remove.
5722 Adjust all users to use symbols[i]->tag.
5723
5724 2001-12-29 Akim Demaille <akim@epita.fr>
5725
5726 * src/gram.h, src/gram.c (symbols): New, similar to state_table
5727 and rule_table.
5728 * src/reader.c (packsymbols): Fill this table.
5729 Drop sprec.
5730 * src/conflicts.c (resolve_sr_conflict): Adjust.
5731 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
5732 single table.
5733 Use symbols[i]->tag instead of tags[i].
5734
5735 2001-12-29 Akim Demaille <akim@epita.fr>
5736
5737 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
5738 In addition, put a comment in there, to replace...
5739 * tests/regression.at (%union and C comments): Remove.
5740
5741 2001-12-29 Akim Demaille <akim@epita.fr>
5742
5743 * tests/regression.at (Web2c Actions): Blindly move the actual
5744 output as expected output. The contents *seem* right to me, but I
5745 can't pretend reading perfectly parser tables... Nonetheless, all
5746 the other tests pass correctly, the table look OK, even though the
5747 presence of `$axiom' is to be noted: AFAICS it is useless (but
5748 harmless).
5749
5750 2001-12-29 Akim Demaille <akim@epita.fr>
5751
5752 * src/reader.c (readgram): Don't add the rule 0 if there were no
5753 rules read. In other words, add it _after_ having performed
5754 grammar sanity checks.
5755 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
5756
5757 2001-12-29 Akim Demaille <akim@epita.fr>
5758
5759 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
5760 visible, and some states have now a different number.
5761
5762 2001-12-29 Akim Demaille <akim@epita.fr>
5763
5764 * src/reader.c (readgram): Bind the initial rule's lineno to that
5765 of the first rule.
5766 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
5767 (Solved SR Conflicts): Adjust rule 0's line number.
5768
5769 2001-12-29 Akim Demaille <akim@epita.fr>
5770
5771 Fix the `GAWK Grammar' failure.
5772
5773 * src/LR0.c (final_state): Initialize to -1 so that we do compute
5774 the reductions of the first state which was mistakenly confused
5775 with the final state because precisely final_state was initialized
5776 to 0.
5777 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
5778 now noticed by Bison.
5779 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
5780 have a reduction on $default.
5781
5782 2001-12-29 Akim Demaille <akim@epita.fr>
5783
5784 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
5785 rule line numbers.
5786 * src/closure.c (print_closure): Likewise.
5787 * src/derives.c (print_derives): Likewise.
5788 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
5789 now.
5790
5791 2001-12-29 Akim Demaille <akim@epita.fr>
5792
5793 * src/lalr.c (lookaheads_print): New.
5794 (lalr): Call it when --trace-flag.
5795 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
5796 are dumped.
5797
5798 2001-12-29 Akim Demaille <akim@epita.fr>
5799
5800 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
5801 when walking through ritem, even via rule->rhs.
5802 * src/reduce.c (dump_grammar, useful_production, reduce_output)
5803 (useful_production, useless_nonterminals): Likewise.
5804 (reduce_grammar_tables): Likewise, plus update nritems.
5805 * src/nullable.c (set_nullable): Likewise.
5806 * src/lalr.c (build_relations): Likewise.
5807 * tests/sets.at (Nullable): Adjust.
5808 Fortunately, now, the $axiom is no longer nullable.
5809
5810 2001-12-29 Akim Demaille <akim@epita.fr>
5811
5812 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
5813 the 0-sentinel.
5814 * src/gram.c (ritem_longest_rhs): Likewise.
5815 * src/reduce.c (nonterminals_reduce): Likewise.
5816 * src/print_graph.c (print_graph): Likewise.
5817 * src/output.c (output_rule_data): Likewise.
5818 * src/nullable.c (set_nullable): Likewise.
5819
5820 2001-12-29 Akim Demaille <akim@epita.fr>
5821
5822 * src/output.c: Comment changes.
5823
5824 2001-12-27 Paul Eggert <eggert@twinsun.com>
5825
5826 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
5827 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
5828 Sparc, as they were causing more porting problems than the
5829 (minor) performance improvement was worth.
5830
5831 Also, catch up with 1.31's YYSTD.
5832
5833 2001-12-27 Akim Demaille <akim@epita.fr>
5834
5835 * src/output.c (output_gram): Rely on nritems, not the
5836 0-sentinel. See below.
5837 Use -1 as separator, not 0.
5838 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
5839 Rely on -1 as separator in yyrhs, instead of 0.
5840 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
5841 twice `Now at end of input', therefore there are two lines less to
5842 expect.
5843
5844 2001-12-27 Akim Demaille <akim@epita.fr>
5845
5846 * tests/regression.at (Unresolved SR Conflicts):
5847 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
5848 below.
5849
5850 2001-12-27 Akim Demaille <akim@epita.fr>
5851
5852 * src/LR0.c (new_state): Recognize the final state by the fact it
5853 is reached by eoftoken.
5854 (insert_start_shifting_state, insert_eof_shifting_state)
5855 (insert_accepting_state, augment_automaton): Remove, since now
5856 these states are automatically computed from the initial state.
5857 (generate_states): Adjust.
5858 * src/print.c: When reporting a rule number to the user, substract
5859 1, so that the axiom rule is rule 0, and the first user rule is 1.
5860 * src/reduce.c: Likewise.
5861 * src/print_graph.c (print_core): For the time being, just as for
5862 the report, depend upon --trace-flags to dump the full set of
5863 items.
5864 * src/reader.c (readgram): Once the grammar read, insert the rule
5865 0: `$axiom: START-SYMBOL $'.
5866 * tests/set.at: Adjust: rule 0 is now displayed, and since the
5867 number of the states has changed (the final state is no longer
5868 necessarily the last), catch up.
5869
5870 2001-12-27 Akim Demaille <akim@epita.fr>
5871
5872 Try to make the use of the eoftoken valid. Given that its value
5873 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
5874 is used instead of > 0 where appropriate, (ii), depend upon nritems
5875 instead of the 0-sentinel.
5876
5877 * src/gram.h, src/gram.c (nritems): New.
5878 Expected to be duplication of nitems, but for the time being...
5879 * src/reader.c (packgram): Assert nritems and nitems are equal.
5880 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
5881 * src/closure.c (print_closure, print_fderives): Likewise.
5882 * src/gram.c (ritem_print): Likewise.
5883 * src/print.c (print_core, print_grammar): Likewise.
5884 * src/print_graph.c: Likewise.
5885
5886 2001-12-27 Akim Demaille <akim@epita.fr>
5887
5888 * src/main.c (main): If there are complains after grammar
5889 reductions, then output the report anyway if requested, then die.
5890 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
5891 * src/reader.c (eoftoken): New.
5892 (parse_token_decl): If the token being defined has value `0', it
5893 is the eoftoken.
5894 (packsymbols): No longer hack `tags' to insert `$' by hand.
5895 Be sure to preserve the value of the eoftoken.
5896 (reader): Make sure eoftoken is defined.
5897 Initialize nsyms to 0: now eoftoken is created just like the others.
5898 * src/print.c (print_grammar): Don't special case the eof token.
5899 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
5900 lie anyway, albeit pleasant.
5901 * tests/calc.at: Exercise error messages with eoftoken.
5902 Change the grammar so that empty input is invalid.
5903 Adjust expectations.
5904 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
5905
5906 2001-12-27 Akim Demaille <akim@epita.fr>
5907
5908 * configure.in: Check the protos of strchr ans strspn.
5909 Replace strchr if needed.
5910 * src/system.h: Provide the protos of strchr, strspn and memchr if
5911 missing.
5912 * lib/strchr.c: New.
5913 * src/reader.c (symbols_save): Use strchr.
5914
5915 2001-12-27 Akim Demaille <akim@epita.fr>
5916
5917 * src/print.c, src/print_graph.c (escape): New.
5918 Use it to quote the TAGS outputs.
5919 * src/print_graph.c (print_state): Now errors are in red, and
5920 reductions in green.
5921 Prefer high to wide: output the state number on a line of its own.
5922
5923 2001-12-27 Akim Demaille <akim@epita.fr>
5924
5925 * src/state.h, src/state.c (reductions_new): New.
5926 * src/LR0.c (set_state_table): Let all the states have a
5927 `reductions', even if reduced to 0.
5928 (save_reductions): Adjust.
5929 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
5930 * src/print.c (print_reductions, print_actions): Adjust.
5931 * src/output.c (action_row): Adjust.
5932
5933 2001-12-27 Akim Demaille <akim@epita.fr>
5934
5935 * src/state.h, src/state.c (errs_new, errs_dup): New.
5936 * src/LR0.c (set_state_table): Let all the states have an errs,
5937 even if reduced to 0.
5938 * src/print.c (print_errs, print_reductions): Adjust.
5939 * src/output.c (output_actions, action_row): Adjust.
5940 * src/conflicts.c (resolve_sr_conflict): Adjust.
5941
5942 2001-12-27 Akim Demaille <akim@epita.fr>
5943
5944 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
5945
5946 2001-12-27 Akim Demaille <akim@epita.fr>
5947
5948 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
5949 * src/print.c: here.
5950 (lookaheadset, shiftset): New, used as additional storage by
5951 print_reductions.
5952 (print_results): Adjust.
5953 (print_shifts, print_gotos, print_errs): New, extracted from...
5954 (print_actions): here.
5955 * src/print_graph.c (print_actions): Remove dead code.
5956
5957 2001-12-27 Akim Demaille <akim@epita.fr>
5958
5959 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
5960 `$n' and `@n'.
5961
5962 2001-12-27 Akim Demaille <akim@epita.fr>
5963
5964 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
5965 (build_relations): Adjust.
5966
5967 2001-12-27 Akim Demaille <akim@epita.fr>
5968
5969 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
5970 duplication.
5971
5972 2001-12-27 Akim Demaille <akim@epita.fr>
5973
5974 * src/reader.c (packgram): Catch nitems overflows.
5975
5976 2001-12-27 Akim Demaille <akim@epita.fr>
5977
5978 * src/files.c, src/files.h (guard_obstack): Remove.
5979 * src/output.c (output): Adjust.
5980 * src/reader.c (parse_braces): New, factoring...
5981 (copy_action, copy_guard): these two which are renamed as...
5982 (parse_action, parse_guard): these.
5983 As a voluntary consequence, using braces around guards is now
5984 mandatory.
5985
5986 2001-12-27 Akim Demaille <akim@epita.fr>
5987
5988 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
5989 * src/reader.c (symbol_list): `guard' and `guard_line' are new
5990 members.
5991 (symbol_list_new): Adjust.
5992 (copy_action): action_line is the first line, not the last.
5993 (copy_guard): Just as for actions, store the `action' only, not
5994 the switch/case/break flesh.
5995 Don't parse the user action that might follow the guard, let...
5996 (readgram): do it, i.e., now, there can be an action after a
5997 guard.
5998 In other words the guard is just explicitly optional.
5999 (packgram): Adjust.
6000 * src/output.c (guards_output): New.
6001 (output_parser): Call it when needed.
6002 (output): Also free the guard and attrs obstacks.
6003 * src/files.c, src/files.h (obstack_save): Remove.
6004 (output_files): Remove.
6005 As a result, if one needs the former `.act' file, using an
6006 appropriate skeleton which requires actions and guards is now
6007 required.
6008 * src/main.c (main): Adjust.
6009 * tests/semantic.at: New.
6010 * tests/regression.at: Use `input.y' as input file name.
6011 Avoid 8+3 problems by requiring input.c when the test needs the
6012 parser.
6013
6014 2001-12-27 Akim Demaille <akim@epita.fr>
6015
6016 * src/reader.c (symbol_list_new): Be sure to initialize all the
6017 fields.
6018
6019 2001-12-27 Akim Demaille <akim@epita.fr>
6020
6021 All the hacks using a final pseudo state are now useless.
6022
6023 * src/LR0.c (set_state_table): state_table holds exactly nstates.
6024 * src/lalr.c (nLA): New.
6025 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
6026 instead of lookaheadsp from the pseudo state (nstate + 1).
6027
6028 2001-12-27 Akim Demaille <akim@epita.fr>
6029
6030 * src/output.c (action_row, token_actions): Use a state_t instead
6031 of a integer, and nlookaheads instead of the following state's
6032 lookaheadsp.
6033
6034 2001-12-27 Akim Demaille <akim@epita.fr>
6035
6036 * src/conflicts.c (log_resolution, flush_shift)
6037 (resolve_sr_conflict, set_conflicts, solve_conflicts)
6038 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
6039 (conflicts_print, print_reductions): Use a state_t instead of an
6040 integer when referring to a state.
6041 As much as possible, depend upon nlookaheads, instead of the
6042 `lookaheadsp' member of the following state (since lookaheads of
6043 successive states are successive, the difference between state n + 1
6044 and n served as the number of lookaheads for state n).
6045 * src/lalr.c (add_lookback_edge): Likewise.
6046 * src/print.c (print_core, print_actions, print_state)
6047 (print_results): Likewise.
6048 * src/print_graph.c (print_core, print_actions, print_state)
6049 (print_graph): Likewise.
6050 * src/conflicts.h: Adjust.
6051
6052 2001-12-27 Akim Demaille <akim@epita.fr>
6053
6054 * src/bison.hairy: Formatting/comment changes.
6055 ANSIfy.
6056 Remove `register' indications.
6057 Add plenty of `static'.
6058
6059 2001-12-27 Akim Demaille <akim@epita.fr>
6060
6061 * src/output.c (prepare): Drop the muscle `ntbase' which
6062 duplicates ntokens.
6063 * src/bison.simple: Formatting/comment changes.
6064 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
6065 is an undocumented synonym.
6066
6067 2001-12-22 Akim Demaille <akim@epita.fr>
6068
6069 * src/output.c (output_table_data): Change the prototype to use
6070 `int' for array ranges: some invocations do pass an int, not a
6071 short.
6072 Reported by Wayne Green.
6073
6074 2001-12-22 Akim Demaille <akim@epita.fr>
6075
6076 Some actions of web2c.y are improperly triggered.
6077 Reported by Mike Castle.
6078
6079 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
6080 * tests/regression.at (Web2c): Rename as...
6081 (Web2c Report): this.
6082 (Web2c Actions): New.
6083
6084 2001-12-22 Akim Demaille <akim@epita.fr>
6085
6086 Reductions in web2c.y are improperly reported.
6087 Reported by Mike Castle.
6088
6089 * src/conflicts.c (print_reductions): Fix.
6090 * tests/regression.at (Web2c): New.
6091
6092 2001-12-18 Akim Demaille <akim@epita.fr>
6093
6094 Some host fail on `assert (!"foo")', which expands to
6095 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
6096 Reported by Nelson Beebee.
6097
6098 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
6099 `#define it_succeeded 0' and `assert (it_succeeded)'.
6100
6101 2001-12-17 Marc Autret <autret_m@epita.fr>
6102
6103 * src/bison.simple: Don't hard code the skeleton line and filename.
6104 * src/output.c (output_parser): Rename 'line' as 'output_line'.
6105 New line counter 'skeleton_line' (skeleton-line muscle).
6106
6107 2001-12-17 Paul Eggert <eggert@twinsun.com>
6108
6109 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
6110 YYDEBUG must be defined to a nonzero value.
6111
6112 * src/bison.simple (yytname): Do not assume that the user defines
6113 YYDEBUG to a properly parenthesized expression.
6114
6115 2001-12-17 Akim Demaille <akim@epita.fr>
6116
6117 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
6118 nlookaheads is a new member.
6119 Adjust all users.
6120 * src/lalr.h (nlookaheads): Remove this orphan declaration.
6121 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
6122 state.
6123
6124 2001-12-17 Akim Demaille <akim@epita.fr>
6125
6126 * src/files.h, src/files.c (open_files, close_files): Remove.
6127 * src/main.c (main): Don't open/close files, nor invoke lex_free,
6128 let...
6129 * src/reader.c (reader): Do it.
6130
6131 2001-12-17 Akim Demaille <akim@epita.fr>
6132
6133 * src/conflicts.c (print_reductions): Formatting changes.
6134
6135 2001-12-17 Akim Demaille <akim@epita.fr>
6136
6137 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
6138 (flush_reduce): New.
6139 (resolve_sr_conflict): Adjust.
6140
6141 2001-12-17 Akim Demaille <akim@epita.fr>
6142
6143 * src/output.c (output_obstack): Be static and rename as...
6144 (format_obstack): this, to avoid any confusion with files.c's
6145 output_obstack.
6146 * src/reader.h (muscle_obstack): Move to...
6147 * src/output.h: here, since it's defined in output.c.
6148
6149 2001-12-17 Akim Demaille <akim@epita.fr>
6150
6151 * src/output.c (action_row, save_column, default_goto)
6152 (sort_actions, matching_state, pack_vector): Better variable
6153 locality.
6154
6155 2001-12-17 Akim Demaille <akim@epita.fr>
6156
6157 * src/output.c: Various formatting changes.
6158
6159 2001-12-17 Akim Demaille <akim@epita.fr>
6160
6161 * src/files.c (output_files): Free the output_obstack.
6162 * src/main.c (main): Call print and print_graph conditionally.
6163 * src/print.c (print): Work unconditionally.
6164 * src/print_graph.c (print_graph): Work unconditionally.
6165 * src/conflicts.c (log_resolution): Output only if verbose_flag.
6166
6167 2001-12-16 Marc Autret <autret_m@epita.fr>
6168
6169 * src/output.c (actions_output): Fix. When we use %no-lines,
6170 there is one less line per action.
6171
6172 2001-12-16 Marc Autret <autret_m@epita.fr>
6173
6174 * src/bison.simple: Remove a useless #line directive.
6175 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
6176 * src/output.c (get_lines_number): New.
6177 (output_parser): Adjust, now takes care about the lines of a
6178 output muscles.
6179 Fix line numbering.
6180 (actions_output): Computes the number of lines taken by actions.
6181 (output_master_parser): Insert new skeleton which is the name of
6182 the output parser file name.
6183
6184 2001-12-15 Marc Autret <autret_m@epita.fr>
6185
6186 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
6187
6188 2001-12-15 Marc Autret <autret_m@epita.fr>
6189
6190 * src/output.c (output_gram): Keep track of the hairy one.
6191
6192 2001-12-15 Akim Demaille <akim@epita.fr>
6193
6194 Make `make distcheck' work.
6195
6196 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
6197 system.h which uses libgettext.h.
6198
6199 2001-12-15 Akim Demaille <akim@epita.fr>
6200
6201 * src/nullable.c (set_nullable): Useless rules must be skipped,
6202 otherwise, since we range over their symbols, we might look at a
6203 nonterminal which no longer ``exists'', i.e., it is not counted in
6204 `nvars', hence we overflow our arrays.
6205
6206 2001-12-15 Akim Demaille <akim@epita.fr>
6207
6208 The header can also be produced directly, without any obstack!
6209 Yahoo!
6210
6211 * src/files.c, src/files.h (defines_obstack): Remove.
6212 (compute_header_macro): Global.
6213 (defines_obstack_save): Remove.
6214 * src/reader.c (parse_union_decl): No longer output to
6215 defines_obstack: its content can be found in the `stype' muscle
6216 anyway.
6217 (output_token_translations): Merge into...
6218 (symbols_output): this.
6219 Rename as...
6220 (symbols_save): this.
6221 (reader): Adjust.
6222 * src/output.c (header_output): New.
6223 (output): Call it.
6224
6225 2001-12-15 Akim Demaille <akim@epita.fr>
6226
6227 * src/reader.c (parse_union_decl): Instead of handling two obstack
6228 simultaneously, use one to define the `stype' muscle, and use the
6229 value of the latter to fill defines_obstack.
6230 (copy_comment): Remove.
6231 (copy_comment2): Work for a single obstack.
6232 Rename as...
6233 (copy_comment): this.
6234
6235 2001-12-15 Akim Demaille <akim@epita.fr>
6236
6237 * src/lex.c, src/lex.h (xgetc): No longer static.
6238 * src/reader.c (parse_union_decl): Revamp.
6239
6240 2001-12-15 Akim Demaille <akim@epita.fr>
6241
6242 Still making progress in separating Bison into (i) input, (ii)
6243 process, (iii) output: now we can directly output the parser file
6244 without using table_obstack at all.
6245
6246 * src/files.c, src/files.h (table_obstack): Bye bye.
6247 (parser_file_name): New.
6248 * src/files.c (compute_output_file_names): Compute it.
6249 * src/output.c (actions_output, output_parser)
6250 (output_master_parser): To a file instead of an obstack.
6251
6252 2001-12-15 Akim Demaille <akim@epita.fr>
6253
6254 Attach actions to rules, instead of pre-outputting them to
6255 actions_obstack.
6256
6257 * src/gram.h (rule_t): action and action_line are new members.
6258 * src/reader.c (symbol_list): Likewise.
6259 (copy_action): Save the actions within the rule.
6260 (packgram): Save them in rule_table.
6261 * src/output.c (actions_output): New.
6262 (output_parser): Use it on `%%actions'.
6263 (output_rule_data): Don't free rule_table.
6264 (output): Do it.
6265 (prepare): Don't save the `action' muscle.
6266 * src/bison.simple: s/%%action/%%actions/.
6267
6268 2001-12-15 Akim Demaille <akim@epita.fr>
6269
6270 * src/reader.c (copy_action): When --yacc, don't append a `;'
6271 to the user action: let it fail if lacking.
6272 Suggested by Arnold Robbins and Tom Tromey.
6273
6274 2001-12-14 Akim Demaille <akim@epita.fr>
6275
6276 * src/lex.c (literalchar): Simply return the char you decoded, non
6277 longer mess around with obstacks and int pointers.
6278 Adjust all callers.
6279
6280 2001-12-14 Akim Demaille <akim@epita.fr>
6281
6282 * src/lex.c (literalchar): Don't escape the special characters,
6283 just decode them, and keep them as char (before, eol was output as
6284 the 2 char string `\n' etc.).
6285 * src/output.c (output_rule_data): Use quotearg to output the
6286 token strings.
6287
6288 2001-12-13 Paul Eggert <eggert@twinsun.com>
6289
6290 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
6291 Do not infringe on the global user namespace when using C++.
6292 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
6293 All uses of `fprintf' and `stderr' changed.
6294
6295 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
6296
6297 2001-12-13 Akim Demaille <akim@epita.fr>
6298
6299 The computation of nullable is broken: it doesn't handle empty
6300 RHS's properly.
6301
6302 * tests/torture.at (GNU AWK Grammar): New.
6303 * tests/sets.at (Nullable): New.
6304 * src/nullable.c (set_nullable): Instead of blindly looping over
6305 `ritems', loop over the rules, and then over their rhs's.
6306
6307 Work around Autotest bugs.
6308
6309 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
6310 frame, because Autotest understand lines starting with a `+' as
6311 traces from the shell. Then, they are not processed properly.
6312 Admittedly an Autotest bug, but we don't have time to wait for
6313 Autotest to catch up.
6314 * tests/regression.at (Broken Closure): Adjust to the new table
6315 frames.
6316 Move to...
6317 * tests/sets.at: here.
6318
6319 2001-12-13 Akim Demaille <akim@epita.fr>
6320
6321 * src/closure.c (closure): Use nrules instead of playing tricks
6322 with BITS_PER_WORD.
6323
6324 2001-12-13 Akim Demaille <akim@epita.fr>
6325
6326 * src/print.c (print_actions): Output the handling of `$' as the
6327 traces do: shifting the token EOF. Before EOF was treated as a
6328 nonterminal.
6329 * tests/regression.at: Adjust some tests.
6330 * src/print_graph.c (print_core): Complete the set of items via
6331 closure. The next-to-final and final states are still unsatisfying,
6332 but that's to be addressed elsewhere.
6333 No longer output the rule numbers, but do output the state number.
6334 A single loop for the shifts + gotos is enough, but picked a
6335 distinct color for each.
6336 (print_graph): Initialize and finalize closure.
6337
6338 2001-12-13 Akim Demaille <akim@epita.fr>
6339
6340 * src/reader.c (readgram): Remove dead code, an strip useless
6341 braces.
6342 (get_type): Remove, unused.
6343
6344 2001-12-12 Akim Demaille <akim@epita.fr>
6345
6346 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
6347 on that of lib/error.c.
6348
6349 2001-12-12 Akim Demaille <akim@epita.fr>
6350
6351 Some hosts don't like `/' in includes.
6352
6353 * src/system.h: Include libgettext.h without qualifying the path.
6354 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
6355 $(top_srcdir).
6356
6357 2001-12-11 Marc Autret <autret_m@epita.fr>
6358
6359 * src/output.c (output_parser): Remove useless muscle.
6360
6361 2001-12-11 Marc Autret <autret_m@epita.fr>
6362
6363 * src/bison.simple: Remove #line just before %%epilogue. It
6364 is now handled in ...
6365 * src/reader.c (read_additionnal_code): Add the output of a
6366 #line for the epilogue.
6367
6368 2001-12-10 Marc Autret <autret_m@epita.fr>
6369
6370 * src/reader.c (copy_definition): Re-use CPP-outed code which
6371 replace precedent remove.
6372 * src/bison.simple: Remove #line before %%prologue because
6373 %%input-line is wrong at this time.
6374
6375 2001-12-10 Marc Autret <autret_m@epita.fr>
6376
6377 * src/reader.c (symbols_output): Clean up.
6378 * src/output.c (output_gram, output): Clean up.
6379
6380 2001-12-10 Akim Demaille <akim@epita.fr>
6381
6382 * src/lalr.c (initialize_lookaheads): New. Extracted from...
6383 * src/LR0.c (set_state_table): here.
6384 * src/lalr.c (lalr): Call it.
6385
6386 2001-12-10 Akim Demaille <akim@epita.fr>
6387
6388 * src/state.h (shifts): Remove the `number' member: shifts are
6389 attached to state, hence no longer need to be labelled with a
6390 state number.
6391
6392 2001-12-10 Akim Demaille <akim@epita.fr>
6393
6394 Now that states have a complete set of members, the linked list of
6395 shifts is useless: just fill directly the state's shifts member.
6396
6397 * src/state.h (shifts): Remove the `next' member.
6398 * src/LR0.c (first_state, last_state): Remove.
6399 Adjust the callers.
6400 (augment_automaton): Don't look for the shifts that must be added
6401 a shift on EOF: it is those of the state we looked for! But now,
6402 since shifts are attached, it is no longer needed to looking
6403 merely by its id: its number.
6404
6405 2001-12-10 Akim Demaille <akim@epita.fr>
6406
6407 * src/LR0.c (augment_automaton): Better variable locality.
6408 Remove an impossible branch: if there is a state corresponding to
6409 the start symbol being shifted, then there is shift for the start
6410 symbol from the initial state.
6411
6412 2001-12-10 Akim Demaille <akim@epita.fr>
6413
6414 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
6415 only when appropriate: when insert_start_shifting_state' is not
6416 invoked.
6417 * tests/regression.at (Rule Line Numbers): Adjust.
6418
6419 2001-12-10 Akim Demaille <akim@epita.fr>
6420
6421 * src/LR0.c (augment_automaton): Now that all states have shifts,
6422 merge the two cases addition shifts to the initial state.
6423
6424 2001-12-10 Akim Demaille <akim@epita.fr>
6425
6426 * src/lalr.c (set_state_table): Move to...
6427 * src/LR0.c: here.
6428 * src/lalr.c (lalr): Don't call it...
6429 * src/LR0.c (generate_states): do it.
6430 * src/LR0.h (first_state): Remove, only the table is used.
6431
6432 2001-12-10 Akim Demaille <akim@epita.fr>
6433
6434 * src/LR0.h (first_shift, first_reduction): Remove.
6435 * src/lalr.c: Don't use first_shift: find shifts through the
6436 states.
6437
6438 2001-12-10 Akim Demaille <akim@epita.fr>
6439
6440 * src/LR0.c: Attach shifts to states as soon as they are
6441 computed.
6442 * src/lalr.c (set_state_table): Instead of assigning shifts to
6443 state, just assert that the mapping was properly done.
6444
6445 2001-12-10 Akim Demaille <akim@epita.fr>
6446
6447 * src/LR0.c (insert_start_shift): Rename as...
6448 (insert_start_shifting_state): this.
6449 (insert_eof_shifting_state, insert_accepting_state): New.
6450 (augment_automaton): Adjust.
6451 Better locality of the variables.
6452 When looking if the start_symbol is shifted from the initial
6453 state, using `while (... symbol != start_symbol ...)' sounds
6454 better than `while (... symbol < start_symbol ...)': If fail
6455 to see how the order between symbols could be relevant!
6456
6457 2001-12-10 Akim Demaille <akim@epita.fr>
6458
6459 * src/getargs.h: Don't declare `spec_name_prefix' and
6460 `spec_file_prefix', declared by src/files.h.
6461 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
6462 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
6463 * src/output.c (prepare): Adjust.
6464 * src/reader.c (symbols_output): Likewise.
6465 * src/vmsgetargs.c: Vaguely adjust, but who cares?
6466
6467 2001-12-10 Akim Demaille <akim@epita.fr>
6468
6469 * src/muscle_tab.c (muscle_init): NULL is a better default than
6470 `"0"'.
6471
6472 2001-12-10 Akim Demaille <akim@epita.fr>
6473
6474 * src/reader.c (reader): Calling symbols_output once is enough.
6475
6476 2001-12-10 Akim Demaille <akim@epita.fr>
6477
6478 Now that states have a complete set of members, the linked list of
6479 reductions is useless: just fill directly the state's reductions
6480 member.
6481
6482 * src/state.h (struct reductions): Remove member `number' and
6483 `next'.
6484 * src/LR0.c (first_reduction, last_reduction): Remove.
6485 (save_reductions): Don't link the new reductions, store them in
6486 this_state.
6487 * src/lalr.c (set_state_table): No need to attach reductions to
6488 states, it's already done.
6489 * src/output.c (output_actions): No longer free the shifts, then
6490 the reductions, then the states: free all the states and their
6491 members.
6492
6493 2001-12-10 Akim Demaille <akim@epita.fr>
6494
6495 * src/options.c (OPTN, DRTV, BOTH): New.
6496 (option_table): Use them.
6497
6498 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
6499 the job of system.h.
6500 * src/options.c: Don't include stdio.h and xalloc.h for the same
6501 reasons.
6502
6503 2001-12-10 Akim Demaille <akim@epita.fr>
6504
6505 * src/output.c (output, prepare): Make sure the values of the
6506 muscles `action' and `prologue' are 0-terminated.
6507
6508 2001-12-10 Akim Demaille <akim@epita.fr>
6509
6510 Clean up GCC warnings.
6511
6512 * src/reader.c (copy_action): `buf' is not used.
6513 (parse_skel_decl): Be static.
6514 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
6515 * src/options.h (create_long_option_table): Have a real prototype.
6516 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
6517 (hash_delete_at): Return const void *.
6518 Adjust casts to preserve the const.
6519
6520 2001-12-10 Akim Demaille <akim@epita.fr>
6521
6522 * configure.in: Require 2.52g.
6523 M4 is not needed, but AUTOM4TE is.
6524 * m4/m4.m4: Remove.
6525 * tests/Makefile.am: Adjust.
6526
6527 2001-12-10 Akim Demaille <akim@epita.fr>
6528
6529 One structure for states is enough, even though theoretically
6530 there are LR(0) states and LALR(1) states.
6531
6532 * src/lalr.h (state_t): Remove.
6533 (state_table): Be state_t **, not state_t *.
6534 * src/state.h (core, CORE_ALLOC): Rename as...
6535 (state_t, STATE_ALLOC): this.
6536 Add the LALR(1) members: shifts, reductions, errs.
6537 * src/LR0.c (state_table): Rename as...
6538 (state_hash): this, to avoid name clashes with the global
6539 `state_table'.
6540 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
6541 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
6542
6543 2001-12-10 Akim Demaille <akim@epita.fr>
6544
6545 Bison dumps core on bash.y.
6546 Reported by Pascal Bart.
6547
6548 * src/warshall.c (bitmatrix_print): New.
6549 (TC): Use it.
6550 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
6551 j must be the outer loop.
6552 * tests/regression.at (Broken Closure): New.
6553
6554 2001-12-05 Akim Demaille <akim@epita.fr>
6555
6556 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
6557 its argument.
6558 Reported by Peter Hámorský.
6559
6560 2001-12-05 Akim Demaille <akim@epita.fr>
6561
6562 * src/conflicts.c (err_table): Remove.
6563 (resolve_sr_conflict): Adjust.
6564 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
6565 Rename as...
6566 (state_t.reductions, state_t.shifts): this.
6567
6568 2001-12-05 Akim Demaille <akim@epita.fr>
6569
6570 * src/reduce.c (reduce_grammar_tables): No longer disable the
6571 removal of useless rules via CPP but via `if (0)', so that the
6572 compiler still check the code is valid.
6573 For instance, it should have noticed `rline' no longer exists: use
6574 the `line' member of rule_t.
6575 * src/gram.c (dummy, rline): Remove, unused.
6576
6577 2001-12-05 Akim Demaille <akim@epita.fr>
6578
6579 * src/output.c (pack_vector): Use assert, not berror.
6580 * src/main.c (berror): Remove, unused.
6581
6582 2001-12-05 Akim Demaille <akim@epita.fr>
6583
6584 New experimental feature: if --verbose --trace output all the
6585 items of a state, not only its kernel.
6586
6587 * src/print.c (print_core): If `trace_flag', then invoke closure
6588 before outputting the items of the state (print_core is no longer
6589 a correct name them).
6590 (print_results): Invoke new_closure/free_closure if needed.
6591
6592 2001-12-05 Akim Demaille <akim@epita.fr>
6593
6594 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
6595 * src/closure.c, src/closure.h (itemsetsize): Rename as...
6596 (nitemset): for consistency with the rest of the project.
6597
6598 2001-12-05 Akim Demaille <akim@epita.fr>
6599
6600 * src/closure.c (print_closure): Improve.
6601 (closure): Use it for printing input and output.
6602
6603 2001-12-05 Akim Demaille <akim@epita.fr>
6604
6605 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
6606 indexed by nonterminals.
6607
6608 2001-12-05 Akim Demaille <akim@epita.fr>
6609
6610 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
6611 what it was!).
6612 * src/warshall.h: Remove accidental duplication of the content.
6613
6614 2001-12-05 Akim Demaille <akim@epita.fr>
6615
6616 * src/closure.c (set_fderives): De-obfuscate.
6617
6618 2001-12-05 Akim Demaille <akim@epita.fr>
6619
6620 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
6621
6622 2001-12-05 Akim Demaille <akim@epita.fr>
6623
6624 * src/closure.c (set_firsts): De-obfuscate.
6625
6626 2001-12-05 Akim Demaille <akim@epita.fr>
6627
6628 * src/output.c (action_row): De-obfuscate
6629 using the good o' techniques: arrays not pointers, variable
6630 locality, BITISSET, RESETBIT etc.
6631
6632 2001-12-05 Akim Demaille <akim@epita.fr>
6633
6634 Pessimize the code to simplify it: from now on, all the states
6635 have a valid SHIFTS, which NSHIFTS is possibly 0.
6636
6637 * src/LR0.c (shifts_new): Be global and move to..
6638 * src/state.c, src/state.h: here.
6639 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
6640 * src/print_graph: Adjust.
6641
6642 2001-12-05 Akim Demaille <akim@epita.fr>
6643
6644 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
6645 * src/conflicts.c: Use it.
6646 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
6647 incorrectly ``simplified''.
6648
6649 2001-12-05 Akim Demaille <akim@epita.fr>
6650
6651 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
6652 using the good o' techniques: arrays not pointers, variable
6653 locality, BITISSET, RESETBIT etc.
6654
6655 2001-12-05 Akim Demaille <akim@epita.fr>
6656
6657 * src/state.h (SHIFT_SYMBOL): New.
6658 * src/conflicts.c: Use it to deobfuscate.
6659
6660 2001-12-05 Akim Demaille <akim@epita.fr>
6661
6662 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
6663 (print_reductions): De-obfuscate using the good o' techniques:
6664 arrays not pointers, variable locality, BITISSET.
6665
6666 2001-12-05 Akim Demaille <akim@epita.fr>
6667
6668 * src/conflicts.c (print_reductions): Arrays, not pointers.
6669 Use BITISSET.
6670
6671 2001-12-05 Akim Demaille <akim@epita.fr>
6672
6673 * src/conflicts.c (print_reductions): Pessimize, but clarify.
6674
6675 2001-12-05 Akim Demaille <akim@epita.fr>
6676
6677 * src/conflicts.c (print_reductions): Improve variable locality.
6678
6679 2001-12-05 Akim Demaille <akim@epita.fr>
6680
6681 * src/conflicts.c (print_reductions): Pessimize, but clarify.
6682
6683 2001-12-05 Akim Demaille <akim@epita.fr>
6684
6685 * src/conflicts.c (print_reductions): Improve variable locality.
6686
6687 2001-12-05 Akim Demaille <akim@epita.fr>
6688
6689 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
6690 * src/lalr.c: Use them.
6691
6692 2001-12-05 Akim Demaille <akim@epita.fr>
6693
6694 * src/LR0.c (augment_automaton): Formatting changes.
6695 Better variable locality.
6696
6697 2001-12-05 Akim Demaille <akim@epita.fr>
6698
6699 * src/lalr.c (matrix_print): New.
6700 (transpose): Use it.
6701 Use arrays instead of pointers.
6702
6703 2001-12-05 Akim Demaille <akim@epita.fr>
6704
6705 * src/lalr.c (maxrhs): Move to...
6706 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
6707 * src/lalr.c (build_relations): Adjust.
6708
6709 2001-12-05 Akim Demaille <akim@epita.fr>
6710
6711 * src/lalr.c (transpose): Free the memory allocated to the
6712 argument, as it is replaced by the results by the unique caller.
6713 (build_relations): Merely invoke transpose: it handles the memory
6714 deallocation.
6715 Improve variable locality.
6716 Avoid variables used as mere abbreviations.
6717 (compute_lookaheads): Use arrays instead of pointers.
6718
6719 2001-12-05 Akim Demaille <akim@epita.fr>
6720
6721 * src/lalr.c (initialize_F): Improve variable locality.
6722 Avoid variables used as mere abbreviations.
6723
6724 2001-12-05 Akim Demaille <akim@epita.fr>
6725
6726 * src/derives.c (print_derives): Display the ruleno.
6727 * src/lalr.c (initialize_F, transpose): Better variable locality
6728 to improve readability.
6729 Avoid variables used as mere abbreviations.
6730
6731 2001-12-05 Akim Demaille <akim@epita.fr>
6732
6733 * src/lalr.c (traverse): Use arrays instead of pointers.
6734
6735 2001-12-05 Akim Demaille <akim@epita.fr>
6736
6737 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
6738 the handling of squeue.
6739 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
6740
6741 2001-12-05 Akim Demaille <akim@epita.fr>
6742
6743 Because useless nonterminals are now kept alive (instead of being
6744 `destroyed'), we now sometimes examine them, and store information
6745 related to them. Hence we need to know their number, and adjust
6746 memory allocations.
6747
6748 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
6749 static.
6750 * src/LR0.c (allocate_itemsets): The memory allocated to
6751 `symbol_count' was used for two different purpose: once to count
6752 the number of occurrences of each symbol, and later reassigned to
6753 `shift_symbol', containing the symbol that can be shifted from a
6754 given state.
6755 Deobfuscate, i.e., allocate, use and free `symbol_count' here
6756 only, and...
6757 (new_itemsets): Allocate `shift_symbol' here.
6758 (allocate_itemsets): symbol_count includes useless nonterminals.
6759 Make room for them.
6760 (free_storage): Use `free', not `XFREE', for pointers that cannot
6761 be null.
6762
6763 2001-12-05 Akim Demaille <akim@epita.fr>
6764
6765 * src/nullable.c (set_nullable): Deobfuscate the handling of
6766 ritem.
6767 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
6768
6769 2001-12-05 Akim Demaille <akim@epita.fr>
6770
6771 * src/gram.c, src/gram.h (ritem_print): New.
6772 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
6773 (This useless function was defined only to work around VMS linkers
6774 that can't handle compilation units with variables only).
6775 * src/reduce.c (dump_grammar): Use it to trace the construction of
6776 ritem.
6777
6778 2001-12-04 Paul Eggert <eggert@twinsun.com>
6779
6780 * src/bison.simple (union yyalloc): Change member names
6781 to be the same as the stack names.
6782 (yyparse): yyptr is now union yyalloc *, not char *.
6783 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
6784 and may generate better code on some machines.
6785 (yystpcpy): Use prototype if __STDC__ is defined, not just
6786 if __cplusplus is defined.
6787
6788 2001-11-30 Akim Demaille <akim@epita.fr>
6789
6790 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
6791 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
6792 Gettext doesn't compile cleanly, and dies with -Werror.
6793 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
6794 Include WARNING_CFLAGS here.
6795 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
6796 before being defined.
6797
6798 2001-11-27 Paul Eggert <eggert@twinsun.com>
6799
6800 * lib/quotearg.h (quotearg_n, quotearg_n_style):
6801 First arg is int, not unsigned.
6802 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
6803 (SIZE_MAX, UINT_MAX): New macros.
6804 (quotearg_n_options): Abort if N is negative.
6805 Avoid overflow check on hosts where size_t is 64 bits and int
6806 is 32 bits, as overflow is impossible there.
6807 Fix off-by-one typo that caused unnecessary reallocation.
6808
6809 2001-11-29 Paul Eggert <eggert@twinsun.com>
6810
6811 Name space cleanup in generated parser.
6812
6813 * doc/bison.texinfo (Bison Parser): Discuss system headers
6814 and their effect on the user name space.
6815
6816 * src/bison.simple:
6817 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
6818 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
6819 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
6820
6821 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
6822 on user names when possible.
6823
6824 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
6825 Simplify test for whather <alloca.h> exists.
6826
6827 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
6828
6829 (<stdio.h>): Include if YYDEBUG.
6830
6831 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
6832 ! defined (yyoverflow) && ! defined (yymemcpy).
6833
6834 (yymemcpy, yyparse): Rename local variables as needed so that
6835 they all begin with 'yy'.
6836
6837 (yystrlen, yystpcpy): New functions.
6838
6839 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
6840 All uses changed.
6841
6842 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
6843 instead of relying on string.h functions. Use YYSTACK_ALLOC
6844 and YYSTACK_FREE instead of malloc and free.
6845
6846 2001-11-30 Akim Demaille <akim@epita.fr>
6847
6848 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
6849 before their first uses.
6850 (YYBISON, YYPURE): Move to the top of the output.
6851
6852 2001-11-30 Akim Demaille <akim@epita.fr>
6853
6854 * tests/reduce.at (Useless Nonterminals): Fix.
6855
6856 2001-11-30 Akim Demaille <akim@epita.fr>
6857
6858 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
6859 if body instead of `;' to pacify GCC's warnings.
6860
6861 2001-11-30 Akim Demaille <akim@epita.fr>
6862
6863 Instead of mapping the LHS of unused rules to -1, keep the LHS
6864 valid, but flag the rules as invalid.
6865
6866 * src/gram.h (rule_t): `useful' is a new member.
6867 * src/print.c (print_grammar): Adjust.
6868 * src/derives.c (set_derives): Likewise.
6869 * src/reader.c (packgram, reduce_output): Likewise.
6870 * src/reduce.c (reduce_grammar_tables): Likewise.
6871 * tests/reduce.at (Underivable Rules, Useless Rules): New.
6872
6873 2001-11-30 Akim Demaille <akim@epita.fr>
6874
6875 * src/reduce.c (reduce_output): Formatting changes.
6876 * src/print.c (print_results, print_grammar): Likewise.
6877 * tests/regression.at (Rule Line Numbers)
6878 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
6879
6880 2001-11-30 Akim Demaille <akim@epita.fr>
6881
6882 * src/reduce.c (nonterminals_reduce): Instead of throwing away
6883 useless nonterminals, move them at the end of the symbol arrays.
6884 (reduce_output): Adjust.
6885 * tests/reduce.at (Useless Nonterminals): Adjust.
6886
6887 2001-11-30 Akim Demaille <akim@epita.fr>
6888
6889 * src/reduce.c: Various comment/formatting changes.
6890 (nonterminals_reduce): New, extracted from...
6891 (reduce_grammar_tables): here.
6892 (reduce_grammar): Call nonterminals_reduce.
6893
6894 2001-11-29 Paul Eggert <eggert@twinsun.com>
6895
6896 * src/bison.simple (YYSTACK_REALLOC): Remove.
6897 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
6898 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
6899 New macros.
6900 (union yyalloc): New type.
6901 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
6902 an arbitrary restriction on hosts where size_t is wider than int.
6903
6904 (yyparse): Don't dump core if alloca or malloc fails; instead, report
6905 a parser stack overflow. Allocate just one block of memory for all
6906 three stacks, instead of allocating three blocks; this typically is
6907 faster and reduces fragmentation.
6908
6909 Do not limit the number of items in the stack to a value that fits
6910 in 'int', as this is an arbitrary limit on hosts with 64-bit
6911 size_t and 32-bit int.
6912
6913 2001-11-29 Marc Autret <autret_m@epita.fr>
6914
6915 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
6916 of defining YYERROR_VERBOSE.
6917 [AT_DATA]: $4 is now out of C declarations in the prologue.
6918
6919 2001-11-28 Marc Autret <autret_m@epita.fr>
6920
6921 * src/reader.c (parse_dquoted_param): New.
6922 (parse_skel_decl): Use it.
6923 * src/lex.h: Add its prototype.
6924 * src/lex.c (literalchar): Become not static.
6925
6926 2001-11-28 Marc Autret <autret_m@epita.fr>
6927
6928 * src/output.h: And put its extern declaration here.
6929 * src/output.c (error_verbose): Define here.
6930 (prepare): Echo name modification.
6931 * src/getargs.h: Clean its extern declaration.
6932 * src/getargs.c (error_verbose_flag): Remove.
6933 (getargs): Remove case 'e'.
6934 * src/options.c (option_table): 'error-verbose' is now seen as simple
6935 percent option.
6936 Include output.h.
6937
6938 * src/reader.c (read_declarations): Remove case tok_include.
6939 (parse_include_decl): Remove.
6940 * src/lex.h (token_t): Remove tok_include.
6941 * src/options.c (option_table): 'include' is now a simple command line
6942 option.
6943
6944 2001-11-28 Marc Autret <autret_m@epita.fr>
6945
6946 * src/bison.simple: Adjust muscle names.
6947 * src/muscle_tab.c (muscle_init): Also rename the muscles.
6948 * src/output.c (prepare): s/_/-/ for the muscles names.
6949 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
6950
6951 2001-11-28 Marc Autret <autret_m@epita.fr>
6952
6953 * src/bison.simple: Fix debug.
6954 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
6955
6956 2001-11-28 Akim Demaille <akim@epita.fr>
6957
6958 * src/LR0.c (shifts_new): New.
6959 (save_shifts, insert_start_shift, augment_automaton): Use it.
6960
6961 2001-11-28 Akim Demaille <akim@epita.fr>
6962
6963 * src/closure.c (closure): `b' and `ruleno' denote the same value:
6964 keep ruleno only.
6965
6966 2001-11-28 Akim Demaille <akim@epita.fr>
6967
6968 * src/closure.c (closure): Instead of looping over word in array
6969 then bits in words, loop over bits in array.
6970
6971 2001-11-28 Akim Demaille <akim@epita.fr>
6972
6973 * src/closure.c (closure): No longer optimize the special case
6974 where all the bits of `ruleset[r]' are set to 0, to make the code
6975 clearer.
6976
6977 2001-11-28 Akim Demaille <akim@epita.fr>
6978
6979 * src/closure.c (closure): `r' and `c' are new variables, used to
6980 de-obfuscate accesses to RULESET and CORE.
6981
6982 2001-11-28 Akim Demaille <akim@epita.fr>
6983
6984 * src/reduce.c (reduce_print): Use ngettext.
6985 (dump_grammar): Improve the trace accuracy.
6986
6987 2001-11-28 Akim Demaille <akim@epita.fr>
6988
6989 * src/reduce.c (dump_grammar): Don't translate trace messages.
6990
6991 2001-11-28 Akim Demaille <akim@epita.fr>
6992
6993 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
6994 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
6995 as all tags are free'ed afterwards.
6996 From Enrico Scholz.
6997
6998 2001-11-27 Paul Eggert <eggert@twinsun.com>
6999
7000 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
7001 use alloca when we didn't want to, and vice versa.
7002
7003 2001-11-27 Marc Autret <autret_m@epita.fr>
7004
7005 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
7006 initialization.
7007 * src/output.c (prepare): Remove its update.
7008
7009 2001-11-27 Marc Autret <autret_m@epita.fr>
7010
7011 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
7012 Use %error-verbose.
7013
7014 2001-11-27 Marc Autret <autret_m@epita.fr>
7015
7016 * src/bison.simple: Remove YYERROR_VERBOSE using.
7017 Use %%error_verbose.
7018 (yyparse): Likewise.
7019 * src/output.c (prepare): Give its final value.
7020 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
7021 * src/getargs.h: Add its extern declaration.
7022 * src/getargs.c (error_verbose_flag): New int.
7023 (getargs): Update to catch new case.
7024 * src/options.c (option_table): 'error-verbose' is a new option.
7025 (shortopts): Update.
7026
7027 2001-11-27 Akim Demaille <akim@epita.fr>
7028
7029 * src/system.h: Use intl/libgettext.h.
7030 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
7031
7032 2001-11-27 Akim Demaille <akim@epita.fr>
7033
7034 * tests/torture.at (Exploding the Stack Size with Malloc):
7035 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
7036
7037 2001-11-27 Akim Demaille <akim@epita.fr>
7038
7039 * src/files.c: Include error.h.
7040 Reported by Hans Aberg.
7041
7042 2001-11-26 Marc Autret <autret_m@epita.fr>
7043
7044 * src/reader.c (parse_include_decl): New, not yet implemented.
7045 (read_declarations): Add case tok_include.
7046 * src/getargs.h (include): Add its extern definition.
7047 * src/getargs.c (include): New const char *.
7048 (getargs): Add case '-I'.
7049 * src/options.c (option_table): Add include as command line and
7050 percent option.
7051 * src/lex.h (token_t): Add tok_include.
7052
7053 2001-11-26 Akim Demaille <akim@epita.fr>
7054
7055 * src/reader.c (readgram): Make sure rules for mid-rule actions
7056 have a lineno equal to that of their host rule.
7057 Reported by Hans Aberg.
7058 * tests/regression.at (Rule Line Numbers): New.
7059
7060 2001-11-26 Akim Demaille <akim@epita.fr>
7061
7062 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
7063 size_ts.
7064
7065 2001-11-26 Akim Demaille <akim@epita.fr>
7066
7067 * src/complain.c, src/complain.h (error): Remove, provided by
7068 lib/error.[ch].
7069
7070 2001-11-26 Akim Demaille <akim@epita.fr>
7071
7072 * src/reader.c (read_declarations): Don't abort on tok_illegal,
7073 issue an error message.
7074 * tests/regression.at (Invalid %directive): New.
7075 Reported by Hans Aberg.
7076
7077 2001-11-26 Akim Demaille <akim@epita.fr>
7078
7079 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
7080 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7081
7082 2001-11-26 Akim Demaille <akim@epita.fr>
7083
7084 * src/conflicts.c (conflicts_print): Don't complain at all when
7085 there are no reduce/reduce conflicts, and as many shift/reduce
7086 conflicts as expected.
7087 * tests/regression.at (%expect right): Adjust.
7088
7089 2001-11-23 Akim Demaille <akim@epita.fr>
7090
7091 * lib/alloca.c: Update, from fileutils.
7092
7093 2001-11-23 Akim Demaille <akim@epita.fr>
7094
7095 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
7096
7097 2001-11-23 Akim Demaille <akim@epita.fr>
7098
7099 * src/system.h: Include alloca.h.
7100 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
7101
7102 2001-11-23 Akim Demaille <akim@epita.fr>
7103
7104 * src/print_graph.c (print_actions): Remove `rule', unused.
7105 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
7106 pacify GCC's signed < unsigned warnings.
7107 * src/closure.c (itemsetsize): Likewise.
7108 * src/reader.c (symbol_list_new): Static.
7109
7110 2001-11-23 Akim Demaille <akim@epita.fr>
7111
7112 Attaching lineno to buckets is stupid, since only one copy of each
7113 symbol is kept, only the line of the first occurrence is kept too.
7114
7115 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
7116 * src/reader.c (rline_allocated): Remove, unused.
7117 (symbol_list): Have a `line' member.
7118 (symbol_list_new): New.
7119 (readgram): Use it.
7120 * src/print.c (print_grammar): Output the rule line numbers.
7121 * tests/regression.at (Solved SR Conflicts)
7122 (Unresolved SR Conflicts): Adjust.
7123 Reported by Hans Aberg.
7124
7125 2001-11-22 Marc Autret <autret_m@epita.fr>
7126
7127 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
7128
7129 2001-11-22 Marc Autret <autret_m@epita.fr>
7130
7131 * src/muscle_tab.c (muscle_init): Remove initialization of
7132 skeleton muscle.
7133 * src/output.c (output_master_parser): Do it here.
7134
7135 2001-11-20 Akim Demaille <akim@epita.fr>
7136
7137 * po/sv.po: New.
7138 * configure.in (ALL_LINGUAS): Adjust.
7139 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
7140 longer contains strings to translate.
7141
7142 2001-11-19 Akim Demaille <akim@epita.fr>
7143
7144 * src/conflicts.c (conflicts_print): Add a missing \n.
7145
7146 2001-11-19 Akim Demaille <akim@epita.fr>
7147
7148 * src/nullable.c (nullable_print): New.
7149 (set_nullable): Call it when tracing.
7150 Better locality of variables.
7151
7152 2001-11-19 Akim Demaille <akim@epita.fr>
7153
7154 * src/print.c (print_actions): Better locality of variables.
7155
7156 2001-11-19 Akim Demaille <akim@epita.fr>
7157
7158 * src/derives.c (print_derives): Fix and enrich.
7159 * src/closure.c (print_fderives): Likewise.
7160
7161 2001-11-19 Akim Demaille <akim@epita.fr>
7162
7163 * src/closure.c (itemsetend): Remove, replaced with...
7164 (itemsetsize): new.
7165
7166 2001-11-19 Akim Demaille <akim@epita.fr>
7167
7168 * src/LR0.c (kernel_end): Remove, replaced with...
7169 (kernel_size): new.
7170
7171 2001-11-19 Akim Demaille <akim@epita.fr>
7172
7173 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
7174 to clarify.
7175
7176 2001-11-19 Akim Demaille <akim@epita.fr>
7177
7178 * src/closure.c (closure): Use arrays instead of pointers to clarify.
7179
7180 2001-11-19 Akim Demaille <akim@epita.fr>
7181
7182 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
7183 trace messages.
7184 * src/LR0.c: Likewise.
7185 (allocate_itemsets): Use arrays instead of pointers to clarify.
7186
7187 2001-11-19 Akim Demaille <akim@epita.fr>
7188
7189 * src/getargs.c (statistics_flag): Replace with...
7190 (trace_flag): New.
7191 (longopts): Accept --trace instead of --statistics.
7192 * src/getargs.h, src/options.c: Adjust.
7193 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
7194 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
7195
7196 2001-11-19 Akim Demaille <akim@epita.fr>
7197
7198 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
7199 pointers to clarify the code.
7200 (save_reductions, save_shifts): Factor common parts of alternatives.
7201
7202 2001-11-19 Akim Demaille <akim@epita.fr>
7203
7204 * src/LR0.c (new_state, get_state): Complete TRACE code.
7205 * src/closure.c: Include `reader.h' to get `tags', needed by the
7206 trace code.
7207 Rename the conditional DEBUG as TRACE.
7208 Output consistently TRACEs to stderr, not stdout.
7209 * src/derives.c: Likewise.
7210 * src/reduce.c: (inaccessable_symbols): Using if is better style
7211 than goto.
7212 Use `#if TRACE' instead of `#if 0' for tracing code.
7213
7214 2001-11-19 Akim Demaille <akim@epita.fr>
7215
7216 * src/system.h (LIST_FREE, shortcpy): New.
7217 * src/LR0.c: Use them.
7218 * src/output.c (free_itemsets, free_reductions, free_shifts):
7219 Remove, replaced by LIST_FREE.
7220
7221 2001-11-19 Akim Demaille <akim@epita.fr>
7222
7223 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
7224 (REDUCTIONS_ALLOC): New.
7225 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
7226 allocation.
7227
7228 2001-11-19 Akim Demaille <akim@epita.fr>
7229
7230 * src/LR0.c (new_state): Complete trace code.
7231 * src/nullable.c (set_nullable): Don't translate traces.
7232
7233 2001-11-19 Akim Demaille <akim@epita.fr>
7234
7235 * src/print_graph.c (print_core): Better locality of variables.
7236 * src/print.c (print_core): Likewise.
7237
7238 2001-11-19 Akim Demaille <akim@epita.fr>
7239
7240 * src/vcg.c: You do the output, so you are responsible of the
7241 handling of VCG syntax, in particular: use quotearg.
7242 * src/print_graph.c: Don't.
7243 (print_actions): Don't output the actions as part of the nodes,
7244 since that's the job of the edges.
7245 (print_state): Don't output by hand: fill the node description,
7246 and ask for its output.
7247
7248 2001-11-19 Akim Demaille <akim@epita.fr>
7249
7250 * src/bison.simple (yyparse): When verbosely reporting an error,
7251 no longer put additional quotes around token names.
7252 * tests/calc.at: Adjust.
7253
7254 2001-11-19 Akim Demaille <akim@epita.fr>
7255
7256 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
7257 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
7258 * src/output.c: Adjust.
7259
7260 2001-11-19 Akim Demaille <akim@epita.fr>
7261
7262 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
7263 (rule_t): this.
7264 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
7265
7266 2001-11-19 Akim Demaille <akim@epita.fr>
7267
7268 * src/gram.h (rule_t): New.
7269 (rule_table): New.
7270 (rrhs, rlhs): Remove, part of state_t.
7271 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
7272 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
7273 * src/reader.c, src/reduce.c: Adjust.
7274
7275 2001-11-19 Akim Demaille <akim@epita.fr>
7276
7277 * src/reader.c (symbols_output): New, extracted from...
7278 (packsymbols): Here.
7279 (reader): Call it.
7280
7281 2001-11-19 Akim Demaille <akim@epita.fr>
7282
7283 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
7284 (maxrhs): this new function.
7285
7286 2001-11-19 Akim Demaille <akim@epita.fr>
7287
7288 * src/lalr.c (F): New macro to access the variable F.
7289 Adjust.
7290
7291 2001-11-19 Akim Demaille <akim@epita.fr>
7292
7293 * src/lalr.h (LA): New macro to access the variable LA.
7294 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7295 * src/lalr.c: Adjust.
7296
7297 2001-11-19 Akim Demaille <akim@epita.fr>
7298
7299 * src/lalr.c (initialize_LA): Only initialize LA. Let...
7300 (set_state_table): handle the `lookaheads' members.
7301
7302 2001-11-19 Akim Demaille <akim@epita.fr>
7303
7304 * src/lalr.h (lookaheads): Removed array, whose contents is now
7305 a member of...
7306 (state_t): this structure.
7307 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7308 Adjust.
7309
7310 2001-11-19 Akim Demaille <akim@epita.fr>
7311
7312 * src/lalr.h (consistent): Removed array, whose contents is now
7313 a member of...
7314 (state_t): this structure.
7315 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7316 Adjust.
7317
7318 2001-11-19 Akim Demaille <akim@epita.fr>
7319
7320 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
7321 contents are now members of...
7322 (state_t): this structure.
7323 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7324 Adjust.
7325
7326 2001-11-19 Akim Demaille <akim@epita.fr>
7327
7328 * src/lalr.h (state_t): New.
7329 (state_table): Be a state_t * instead of a core **.
7330 (accessing_symbol): Remove, part of state_t.
7331 * src/lalr.c: Adjust.
7332 (set_accessing_symbol): Merge into...
7333 (set_state_table): this.
7334 * src/print_graph.c, src/conflicts.c: Adjust.
7335
7336 2001-11-14 Akim Demaille <akim@epita.fr>
7337
7338 * tests/calc.at, tests/output.at, tests/regression.at,
7339 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
7340 now the tests are run in private dirs, therefore AC_CLEANUP and
7341 family can be simplified to 0-ary.
7342 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
7343 use abs. path to find config.h.
7344 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
7345 stderr, there can be way too much random noise.
7346 Instead pass -Werror to GCC and rely on the exit status.
7347 Reported by Wolfram Wagner.
7348
7349 2001-11-14 Akim Demaille <akim@epita.fr>
7350
7351 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
7352 defined only if yyoverflow is defined, to avoid `warning: unused
7353 variable `yyvs1''.
7354 Reported by The Test Suite.
7355
7356 2001-11-14 Akim Demaille <akim@epita.fr>
7357
7358 * src/print.c: Include reduce.h.
7359 Reported by Hans Aberg.
7360
7361 2001-11-14 Akim Demaille <akim@epita.fr>
7362
7363 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
7364 Revert a previous patch: these are really const.
7365 * src/conflicts.c (conflict_report): Additional useless pair of
7366 braces to pacify GCC's warnings for `if () if () {} else {}'.
7367 * src/lex.c (parse_percent_token): Replace equal_offset with
7368 arg_offset.
7369 arg is const.
7370 Be sure to strdup `arg' when used, since there is no reason for
7371 token_buffer not to change.
7372
7373 2001-11-14 Akim Demaille <akim@epita.fr>
7374
7375 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
7376 definition.
7377 * src/main.c (main): Use them.
7378 Suggested by Hans Aberg.
7379
7380 2001-11-12 Akim Demaille <akim@epita.fr>
7381
7382 * src/system.h (ngettext): Now that we use ngettext, be sure to
7383 provide a default definition when NLS are not used.
7384
7385 2001-11-12 Akim Demaille <akim@epita.fr>
7386
7387 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
7388 Use @kbd to denote user input.
7389 (Language and Grammar): ANSIfy the example.
7390 Adjust its layout for info/notinfo.
7391 (Location Tracking Calc): Output error messages to stderr.
7392 Output locations in a more GNUtically correct way.
7393 Fix a couple of Englishos.
7394 Adjust @group/@end group pairs.
7395
7396 2001-11-12 Akim Demaille <akim@epita.fr>
7397
7398 %expect was not functioning at all.
7399
7400 * src/conflicts.c (expected_conflicts): Set to -1.
7401 (conflict_report): Use ngettext.
7402 (conflicts_print): Check %expect and make its violation an error.
7403 * doc/bison.texinfo (Expect Decl): Adjust.
7404 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
7405 * tests/regression.at (%expect not enough, %expect right)
7406 (%expect too much): New.
7407
7408 2001-11-12 Akim Demaille <akim@epita.fr>
7409
7410 * tests/regression.at (Conflicts): Rename as...
7411 (Unresolved SR Conflicts): this.
7412 (Solved SR Conflicts): New.
7413
7414 2001-11-12 Akim Demaille <akim@epita.fr>
7415
7416 * src/reduce.c (print_results): Rename as...
7417 (reduce_output): This.
7418 Output to OUT, passed as argument, instead of output_obstack.
7419 (dump_grammar): Likewise.
7420 (reduce_free): New.
7421 Also free V1.
7422 (reduce_grammar): No longer call reduce_output, since...
7423 * src/print.c (print_results): do it.
7424 * src/main.c (main): Call reduce_free;
7425
7426 2001-11-12 Akim Demaille <akim@epita.fr>
7427
7428 * src/conflicts.c (print_reductions): Accept OUT as argument.
7429 Output to it, not to output_obstack.
7430 * src/print.c (print_actions): Adjust.
7431
7432 2001-11-12 Akim Demaille <akim@epita.fr>
7433
7434 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
7435 the result instead of using...
7436 (src_total, rrc_total, src_count, rrc_count): Remove.
7437 (any_conflicts): Remove.
7438 (print_conflicts): Split into...
7439 (conflicts_print, conflicts_output): New.
7440 * src/conflicts.h: Adjust.
7441 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
7442 * src/print.c (print_grammar): Issue `\n' between two rules.
7443 * tests/regression.at (Conflicts): New.
7444 Reported by Tom Lane.
7445
7446 2001-11-12 Akim Demaille <akim@epita.fr>
7447
7448 * tests/regression.at (Invalid input): Remove, duplicate with
7449 ``Invalid input: 1''.
7450
7451 2001-11-12 Akim Demaille <akim@epita.fr>
7452
7453 * tests/torture.at (AT_DATA_STACK_TORTURE)
7454 (Exploding the Stack Size with Alloca)
7455 (Exploding the Stack Size with Malloc): New.
7456
7457 2001-11-12 Akim Demaille <akim@epita.fr>
7458
7459 * src/bison.simple (YYSTACK_REALLOC): New.
7460 (yyparse) [!yyoverflow]: Use it and free the old stack.
7461 Reported by Per Allansson.
7462
7463 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
7464
7465 * src/bison.simple: Define type yystype instead of YYSTYPE, and
7466 define CPP macro, which substitute YYSTYPE by yystype.
7467 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
7468 with yyltype/YYLTYPE. This allows inclusion of the generated
7469 header within the parser if the compiler, such as GGC, accepts
7470 multiple equivalent #defines.
7471 From Akim.
7472
7473 2001-11-05 Akim Demaille <akim@epita.fr>
7474
7475 * src/reader.c (symbols_output): New, extracted from...
7476 (packsymbols): here.
7477 (reader): Adjust.
7478
7479 2001-11-05 Akim Demaille <akim@epita.fr>
7480
7481 * src/lex.c (parse_percent_token): s/quotearg/quote/.
7482
7483 2001-11-05 Akim Demaille <akim@epita.fr>
7484
7485 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
7486 pattern.
7487
7488 2001-11-05 Akim Demaille <akim@epita.fr>
7489
7490 * src/options.h (struct option_table_struct): set_flags is void*.
7491 * src/options.c (longopts): Support `--output' and `%output'.
7492 (usage): Adjust.
7493 * src/lex.h (tok_setopt): Remove, replaced with...
7494 (tok_intopt, tok_stropt): these new guys.
7495 * src/lex.c (getopt.h): Not needed.
7496 (token_buffer, unlexed_token_buffer): Not const.
7497 (percent_table): Promote `-' over `_' in directive names.
7498 Active `%name-prefix', `file-prefix', and `output'.
7499 (parse_percent_token): Accept possible arguments to directives.
7500 Promote `-' over `_' in directive names.
7501
7502 2001-11-04 Akim Demaille <akim@epita.fr>
7503
7504 * doc/bison.texinfo (Decl Summary): Split the list into
7505 `directives for grammars' and `directives for bison'.
7506 Sort'em.
7507 Add description of `%name-prefix', `file-prefix', and `output'.
7508 Promote `-' over `_' in directive names.
7509 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
7510 Simplify the description of `--name-prefix'.
7511 Promote `-' over `_' in directive names.
7512 Promote `--output' over `--output-file'.
7513 Fix the description of `--defines'.
7514 * tests/output.at: Exercise %file-prefix and %output.
7515
7516 2001-11-02 Akim Demaille <akim@epita.fr>
7517
7518 * doc/refcard.tex: Update.
7519
7520 2001-11-02 Akim Demaille <akim@epita.fr>
7521
7522 * src/symtab.h (SUNDEF): New.
7523 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
7524 stand for `uninitialized', instead of 0.
7525 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
7526 * src/lex.c (lex): Adjust.
7527
7528 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
7529 Number it 0.
7530 Let yylex return it instead of a plain 0.
7531 Reported by Dick Streefland.
7532
7533 2001-11-02 Akim Demaille <akim@epita.fr>
7534
7535 * tests/regression.at (Mixing %token styles): New test.
7536
7537 2001-11-02 Akim Demaille <akim@epita.fr>
7538
7539 * src/reader.c (parse_thong_decl): Formatting changes.
7540 (token_translations_init): New, extracted from...
7541 (packsymbols): Here.
7542 Adjust.
7543
7544 2001-11-01 Akim Demaille <akim@epita.fr>
7545
7546 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
7547 Check that `9foo.y' produces correct cpp guards.
7548 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
7549 guards.
7550 Reported by Wwp.
7551
7552 2001-11-01 Akim Demaille <akim@epita.fr>
7553
7554 * tests/regression.at (Invalid input: 2): New.
7555 * src/lex.c (unlexed_token_buffer): New.
7556 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
7557 too.
7558 Reported by Wwp.
7559
7560 2001-11-01 Akim Demaille <akim@epita.fr>
7561
7562 * tests/calc.at: Catch up with 1.30.
7563 * configure.in: Bump to 1.49a.
7564 Adjust to newer Autotest.
7565
7566 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
7567
7568 * src/conflicts.c: Move global variables rrc_total and src_total ...
7569 (print_conflicts): here.
7570 * src/output.c (output): Free global variable user_toknums.
7571 * src/lex.c (token_obstack): Become static.
7572
7573 2001-10-18 Akim Demaille <akim@epita.fr>
7574
7575 * tests/atlocal.in (GCC): Add.
7576 * tests/calc.at: s/m4_match/m4_bmatch/.
7577 s/m4_patsubst/m4_bpatsubst/.
7578 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
7579 * configure.in: AC_SUBST(GCC).
7580
7581 2001-10-14 Marc Autret <autret_m@epita.fr>
7582
7583 * src/options.c (create_long_option_table): Fix.
7584
7585 2001-10-10 Akim Demaille <akim@epita.fr>
7586
7587 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
7588
7589 2001-10-04 Akim Demaille <akim@epita.fr>
7590
7591 * src/reader.c (parse_union_decl): Push the caracters in
7592 union_obstack, not attrs_obstack.
7593
7594 2001-10-04 Akim Demaille <akim@epita.fr>
7595
7596 Merge in the branch 1.29.
7597
7598 * src/reader.c (packsymbols): Use a temporary obstack for
7599 `%%tokendef', since output_stack is already used elsewhere.
7600
7601 2001-10-02 Akim Demaille <akim@epita.fr>
7602
7603 Bump 1.29d.
7604
7605 2001-10-02 Akim Demaille <akim@epita.fr>
7606
7607 Version 1.29c.
7608
7609 2001-10-02 Akim Demaille <akim@epita.fr>
7610
7611 * tests/regression.at (Invalid CPP headers): New.
7612 From Alexander Belopolsky.
7613 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
7614
7615 2001-10-02 Akim Demaille <akim@epita.fr>
7616
7617 * tests/regression.at (Invalid input): New.
7618 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
7619 Reported by Shura.
7620
7621 2001-10-02 Akim Demaille <akim@epita.fr>
7622
7623 * tests/calc.at: Now that --debug works, the tests must be adjusted.
7624
7625 2001-10-02 Akim Demaille <akim@epita.fr>
7626
7627 * src/output.c (output_parser): Assert `skeleton'.
7628 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
7629 systems.
7630 From Shura.
7631
7632 2001-10-01 Marc Autret <autret_m@epita.fr>
7633
7634 * src/lex.h: Echo modifications.
7635 * src/lex.c (unlex): Parameter is now token_t.
7636 From Hans Aberg.
7637
7638 2001-10-01 Marc Autret <autret_m@epita.fr>
7639
7640 * src/main.c: Include lex.h.
7641 From Hans Aberg.
7642
7643 2001-09-29 Akim Demaille <akim@epita.fr>
7644
7645 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
7646
7647 2001-09-28 Akim Demaille <akim@epita.fr>
7648
7649 * tests/testsuite.at: Update to newer Autotest.
7650 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
7651
7652 2001-09-27 Akim Demaille <akim@epita.fr>
7653
7654 Position independent wrapper.
7655
7656 * tests/bison: Remove.
7657 * tests/bison.in: New.
7658 * configure.in: Adjust.
7659
7660 2001-09-27 Paul Eggert <eggert@twinsun.com>
7661
7662 Port quotearg fixes from tar 1.13.24.
7663
7664 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
7665 tm to be declared.
7666 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
7667 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
7668
7669 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
7670 * m4/mbrtowc.m4: New file.
7671 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
7672 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
7673
7674 2001-09-27 Akim Demaille <akim@epita.fr>
7675
7676 Bump to 1.29c.
7677
7678 2001-09-27 Akim Demaille <akim@epita.fr>
7679
7680 Version 1.29b.
7681
7682 2001-09-25 Akim Demaille <akim@epita.fr>
7683
7684 * src/system.h: Include `xalloc.h'.
7685 Remove it from the C files.
7686 * src/files.c (output_files): Free the obstacks.
7687 * src/lex.c (init_lex): Rename as...
7688 (lex_init): this.
7689 (lex_free): New.
7690 * src/main.c (main): Use it.
7691
7692 2001-09-24 Marc Autret <autret_m@epita.fr>
7693
7694 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
7695 to output informations in fout (FILE*).
7696 (open_graph, close_graph): Likewise.
7697 (output_graph, output_edge, output_node): Likewise.
7698 * src/vcg.h: Update function prototypes.
7699 * src/print_graph.c (print_graph): Open output graph file.
7700 (print_actions): Adjust.
7701 * src/files.h: Remove extern declaration.
7702 * src/files.c: Remove graph_obstack declaration.
7703 (open_files): Remove graph_obstack initialization.
7704 (output_files): Remove graph_obstack saving.
7705
7706 2001-09-24 Marc Autret <autret_m@epita.fr>
7707
7708 * src/files.c (compute_output_file_names): Fix.
7709
7710 2001-09-24 Marc Autret <autret_m@epita.fr>,
7711 Akim Demaille <akim@epita.fr>
7712
7713 * src/reader.c (reader): Remove call to free_symtab ().
7714 * src/main.c (main): Call it here.
7715 Include symtab.h.
7716 * src/conflicts.c (initialize_conflicts): Rename as...
7717 (solve_conflicts): this.
7718 * src/print.c (print_core, print_actions, print_state)
7719 (print_grammar): Dump to a file instead a `output_obstack'.
7720 (print_results): Dump `output_obstack', and then proceed with the
7721 FILE *.
7722 * src/files.c (compute_output_file_names, close_files): New.
7723 (output_files): Adjust.
7724 * src/main.c (main): Adjust.
7725
7726 2001-09-23 Marc Autret <autret_m@epita.fr>
7727
7728 * src/files.c (compute_header_macro): Computes header macro name
7729 from spec_defines_file when given.
7730
7731 2001-09-23 Marc Autret <autret_m@epita.fr>
7732
7733 * src/files.c (output_files): Add default extensions.
7734
7735 2001-09-22 Akim Demaille <akim@epita.fr>
7736
7737 * src/conflicts.c (finalize_conflicts): Rename as...
7738 (free_conflicts): this.
7739
7740 2001-09-22 Akim Demaille <akim@epita.fr>
7741
7742 * src/gram.c (gram_free): Rename back as...
7743 (dummy): this.
7744 (output_token_translations): Free `token_translations'.
7745 * src/symtab.c (free_symtab): Free the tag field.
7746
7747 2001-09-22 Akim Demaille <akim@epita.fr>
7748
7749 Remove `translations' as it is always set to true.
7750
7751 * src/gram.h: Adjust.
7752 * src/reader.c (packsymbols, parse_token_decl): Adjust
7753 * src/print.c (print_grammar): Adjust.
7754 * src/output.c (output_token_translations): Adjust.
7755 * src/lex.c (lex): Adjust.
7756 * src/gram.c: Be sure the set pointers to NULL.
7757 (dummy): Rename as...
7758 (gram_free): this.
7759
7760 2001-09-22 Akim Demaille <akim@epita.fr>
7761
7762 * configure.in: Invoke AM_LIB_DMALLOC.
7763 * src/system.h: Use dmalloc.
7764 * src/LR0.c: Be sure to have pointers initialized to NULL.
7765 (allocate_itemsets): Allocate kernel_items only if needed.
7766
7767 2001-09-22 Akim Demaille <akim@epita.fr>
7768
7769 * configure.in: Bump to 1.29b.
7770 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
7771 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
7772 need xmalloc.c in calc.y.
7773 From Pascal Bart.
7774
7775 2001-09-21 Akim Demaille <akim@epita.fr>
7776
7777 Version 1.29a.
7778 * Makefile.maint, config/config.guess, config/config.sub,
7779 * config/missing: Update from masters.
7780 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
7781 upon package.m4.
7782 * configure.in (ALL_LINGUAS): Add `tr'.
7783
7784 2001-09-21 Akim Demaille <akim@epita.fr>
7785
7786 * tests/Makefile.am (package.m4): Move to...
7787 ($(srcdir)/$(TESTSUITE)): here.
7788
7789 2001-09-20 Akim Demaille <akim@epita.fr>
7790
7791 * src/complain.c: No longer try to be standalone: use system.h.
7792 Don't assume __STDC__ is defined to 1. Just test if it is defined.
7793 * src/complain.h: Likewise.
7794 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
7795 Remove the unused variable `n'.
7796 From Albert Chin-A-Young.
7797
7798 2001-09-18 Marc Autret <autret_m@epita.fr>
7799
7800 * doc/bison.1: Update.
7801 * doc/bison.texinfo (Bison Options): Update --defines and --graph
7802 descriptions.
7803 (Option Cross Key): Update.
7804 Add --graph.
7805
7806 2001-09-18 Marc Autret <autret_m@epita.fr>
7807
7808 * tests/regression.at: New test (comment in %union).
7809
7810 2001-09-18 Marc Autret <autret_m@epita.fr>
7811
7812 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
7813 do that.
7814 Reported by Keith Browne.
7815
7816 2001-09-18 Marc Autret <autret_m@epita.fr>
7817
7818 * tests/output.at: Add tests for --defines and --graph.
7819
7820 2001-09-18 Marc Autret <autret_m@epita.fr>
7821
7822 * tests/output.at: Removes tests of %{header,src}_extension features.
7823
7824 2001-09-18 Akim Demaille <akim@epita.fr>
7825
7826 * tests/Makefile.am (package.m4): New.
7827 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
7828 (_AT_CHECK_CALC_ERROR): Likewise.
7829 Factor the `, ' part of verbose error messages.
7830
7831 2001-09-18 Marc Autret <autret_m@epita.fr>
7832
7833 * src/getargs.c (longopts): Declare --defines and --graph as options
7834 with optional arguments.
7835 * src/files.h: Add extern declarations.
7836 * src/files.c (spec_graph_file, spec_defines_file): New.
7837 (output_files): Update.
7838 Remove CPP-outed code.
7839
7840 2001-09-18 Marc Autret <autret_m@epita.fr>
7841
7842 Turn off %{source,header}_extension feature.
7843
7844 * src/files.c (compute_exts_from_gf): Update.
7845 (compute_exts_from_src): Update.
7846 (output_files): CPP-out useless code.
7847 * src/files.h: Remove {header,source}_extension extern declarations.
7848 * src/reader.c (parse_dquoted_param): CPP-out.
7849 (parse_header_extension_decl): Remove.
7850 (parse_source_extension_decl): Remove.
7851 (read_declarations): Remove cases tok_{hdrext,srcext}.
7852 * src/lex.c (percent_table): Remove {header,source}_extension entries.
7853 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
7854
7855 2001-09-10 Akim Demaille <akim@epita.fr>
7856
7857 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
7858 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
7859 (AT_CHECK_OUTPUT): this.
7860 Merely check ls' exit status, its output is useless.
7861
7862 2001-09-10 Akim Demaille <akim@epita.fr>
7863
7864 * tests/calc.at: Use m4_match.
7865 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
7866
7867 2001-09-10 Marc Autret <autret_m@epita.fr>,
7868 Akim Demaille <akim@epita.fr>
7869
7870 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
7871 enum color_e.
7872 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
7873 to `normal'.
7874 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
7875 * src/lex.h: Adjust prototype.
7876 (token_t): Add `tok_undef'.
7877 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
7878 (parse_percent_token): Now returns token_t.
7879 Add default statement in switch.
7880 (lex): Separate `c' as an input variable, from the token_t result
7881 part.
7882 (unlexed): Is a token_t.
7883
7884 2001-09-10 Akim Demaille <akim@epita.fr>
7885
7886 * configure.in: Bump to 1.29a.
7887
7888 2001-09-07 Akim Demaille <akim@epita.fr>
7889
7890 Version 1.29.
7891
7892 2001-08-30 Akim Demaille <akim@epita.fr>
7893
7894 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
7895 * m4/atconfig.m4: Remove.
7896 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
7897 * tests/bison: New.
7898 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
7899 m4_if, m4_patsubst, and m4_regexp.
7900 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
7901 `input' file instead of echo.
7902
7903 2001-08-29 Akim Demaille <akim@epita.fr>
7904
7905 Bump to 1.28e.
7906
7907 2001-08-29 Akim Demaille <akim@epita.fr>
7908
7909 Version 1.28d.
7910
7911 2001-08-29 Paul Eggert <eggert@twinsun.com>
7912
7913 * src/bison.simple (yyparse): Don't take the address of an
7914 item before the start of an array, as that doesn't conform to
7915 the C Standard.
7916
7917 2001-08-29 Robert Anisko <anisko_r@epita.fr>
7918
7919 * doc/bison.texinfo (Location Tracking Calc): New node.
7920
7921 2001-08-29 Paul Eggert <eggert@twinsun.com>
7922
7923 * src/output.c (output): Do not define const, as this now
7924 causes more problems than it cures.
7925
7926 2001-08-29 Akim Demaille <akim@epita.fr>
7927
7928 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
7929 the nodes.
7930 Be sure to tag the `detailmenu'.
7931
7932 2001-08-29 Akim Demaille <akim@epita.fr>
7933
7934 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
7935 download in a tmp dir.
7936
7937 2001-08-28 Marc Autret <autret_m@epita.fr>
7938
7939 * config/depcomp: New file.
7940
7941 2001-08-28 Marc Autret <autret_m@epita.fr>
7942
7943 * doc/bison.1 (mandoc): Adjust.
7944 From Juan Manuel Guerrero.
7945
7946 2001-08-28 Marc Autret <autret_m@epita.fr>
7947
7948 * src/print_graph.c (print_state): Fix.
7949
7950 2001-08-27 Marc Autret <autret_m@epita.fr>
7951
7952 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
7953 char * members.
7954 Echo modifications to the functions prototypes.
7955 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
7956
7957 2001-08-27 Marc Autret <autret_m@epita.fr>
7958
7959 * src/vcg.c: Include `xalloc.h'.
7960 (add_colorentry): New.
7961 (add_classname): New.
7962 (add_infoname): New.
7963 * src/vcg.h: Add new prototypes.
7964
7965 2001-08-27 Akim Demaille <akim@epita.fr>
7966
7967 * Makefile.maint: Sync. again with CVS Autoconf.
7968
7969 2001-08-27 Akim Demaille <akim@epita.fr>
7970
7971 * Makefile.maint: Formatting changes.
7972 (po-update, cvs-update, update): New targets.
7973 (AMTAR): Remove.
7974
7975 2001-08-27 Akim Demaille <akim@epita.fr>
7976
7977 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
7978 * Makefile.maint: Sync. with CVS Autoconf.
7979
7980 2001-08-27 Marc Autret <autret_m@epita.fr>
7981
7982 * src/vcg.h (struct infoname_s): New.
7983 (struct colorentry_s): New.
7984 (graph_s): New fields {vertical,horizontal}_order in structure.
7985 Add `infoname' field.
7986 Add `colorentry' field;
7987 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
7988 (G_HORIZONTAL_ORDER): New.
7989 (G_INFONAME): New.
7990 (G_COLORENTRY): New.
7991 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
7992 Add output of `infoname'.
7993 Add output of `colorentry'.
7994
7995 2001-08-27 Marc Autret <autret_m@epita.fr>
7996
7997 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
7998 This one shadowed a global parameter.
7999
8000 2001-08-24 Marc Autret <autret_m@epita.fr>
8001
8002 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
8003 instead of `unsigned'.
8004 (print_state): Do not call obstack_object_size () in obstack_grow ()
8005 to avoid macro variables shadowing.
8006
8007 2001-08-23 Marc Autret <autret_m@epita.fr>
8008
8009 * src/lex.c (percent_table): Typo: s/naem/name/.
8010 Add graph option.
8011 Normalize new options declarations.
8012
8013 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
8014
8015 * tests/suite.at: Exercise %header_extension and %source_extension.
8016
8017 2001-08-16 Marc Autret <autret_m@epita.fr>
8018
8019 * src/reader.c (parse_dquoted_param): New.
8020 (parse_header_extension_decl): Use it.
8021 (parse_source_extension_decl): Likewise.
8022
8023 2001-08-16 Marc Autret <autret_m@epita.fr>
8024
8025 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
8026 (get_xxxx_str): Use assert () instead of complain ().
8027 Remove return invokations in default cases.
8028 (get_decision_str): Modify default behaviour. Remove second argument.
8029 Echo modifications on calls.
8030 (output_graph): Fix.
8031
8032 2001-08-16 Marc Autret <autret_m@epita.fr>
8033
8034 * src/getargs.c (usage): Update with ``-g, --graph''.
8035
8036 2001-08-16 Marc Autret <autret_m@epita.fr>
8037
8038 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
8039 (Option Cross Key): Likewise.
8040 * doc/bison.1: Update.
8041
8042 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
8043
8044 * src/output.c (output_master_parser): Don't finish action_obstack.
8045 (output_parser): Don't care about the muscle action, here.
8046 (prepare): Copy the action_obstack in the action muscle.
8047 (output): Free action_obstack.
8048
8049 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
8050
8051 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
8052 will contain `%union' declaration.
8053 (parse_union_decl): Delete #line directive output.
8054 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
8055 informations about %union.
8056 (parse_union_decl): Copy the union_obstack in the muscle stype.
8057 * src/bison.simple: Add new #line directive.
8058 Add typdef %%stype YYSTYPE.
8059
8060 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
8061
8062 * src/bison.simple: Add new `#line' directive.
8063
8064 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
8065
8066 * src/bison.simple: New `#line' directive.
8067 * src/output.c (output_parser): Support new dynamic muscle input_line.
8068
8069 2001-09-22 Marc Autret <autret_m@epita.fr>
8070
8071 * src/output.c (output_master_parser): New.
8072 (output_parser): Be more re-entrant.
8073
8074 2001-09-21 Marc Autret <autret_m@epita.fr>
8075
8076 * src/reader.c (copy_definition, parse_union_decl): Update and use
8077 `linef' muscle.
8078 (copy_action): Likewise.
8079 Use obstack_1grow ().
8080 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
8081
8082 2001-09-21 Marc Autret <autret_m@epita.fr>
8083
8084 * src/options.c (option_table): Adjust.
8085 * src/lex.c (parse_percent_token): Fix.
8086
8087 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
8088
8089 * src/options.c (symtab.h): Include it, need by lex.h.
8090
8091 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
8092
8093 * src/lex.c (parse_percent_token): Change type of variable `tx', which
8094 is now an option_table_struct*.
8095 (option_strcmp): New function option_strcmp.
8096 (parse_percent_token): Call option_strcmp.
8097 * src/getargs.c (xalloc.h, options.h): Include it.
8098 (getargs): Call create_long_option_table.
8099 (getargs): Free longopts at the end of the function.
8100 (shortopts): Move in options.c.
8101 * src/options.c (create_long_option_table): New function. Convert
8102 information from option_table to option structure.
8103 * src/reader.c (options.h): Include it.
8104
8105 * src/Makefile.am: Adjust.
8106 * src/options.c (option_table): Create from longopts and percent_table.
8107 * src/getargs.c (longopts): Delete.
8108 * src/lex.c (struct percent_table_struct): Delete.
8109 (percent_table): Delete.
8110 (options.h): Include it.
8111 * src/options.c: Create.
8112 * src/options.h: Create.
8113 Declare enum opt_access_e.
8114 Define struct option_table_struct.
8115
8116 2001-09-20 Marc Autret <autret_m@epita.fr>
8117
8118 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
8119 sections of Bison.
8120
8121 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
8122
8123 * src/bison.simple: s/%%filename/%%skeleton.
8124 * src/muscle_tab.c (getargs.h): Include it.
8125 (muscle_init): Insert new muscle skeleton.
8126
8127 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
8128
8129 * src/output.c (output_parser): Delete unused variable actions_dumped.
8130
8131 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
8132
8133 * src/output.c (output): Delete call to reader_output_yylsp.
8134 * src/reader.c (reader): Likewise.
8135 * src/reader.h: Delete declaration of reader_output_yylsp.
8136
8137 2001-09-02 Marc Autret <autret_m@epita.fr>
8138
8139 * src/reader.c: Include muscle_tab.h.
8140 (parse_union_decl): Update.
8141 (parse_macro_decl): Rename parse_muscle_decl.
8142 Update to use renamed functions and variable.
8143 (read_declarations, copy_action, read_additionnal_code, : Updated
8144 with correct variables and functions names.
8145 (packsymbols, reader): Likewise.
8146
8147 * src/reader.h (muscle_obstack): Extern declaration update.
8148
8149 * src/output.c: Include muscle_tab.h
8150 In all functions using macro_insert, change by using muscle_insert ().
8151 (macro_obstack): Rename muscle_obstack.
8152 Echo modifications in the whole file.
8153 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
8154 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
8155 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
8156
8157 * src/muscle_tab.h: Update double inclusion macros.
8158 (macro_entry_s): Rename muscle_entry_s.
8159 Update prototypes.
8160
8161 * src/muscle_tab.c: Include muscle_tab.h.
8162 Rename macro_tabble to muscle_table.
8163 (mhash1, mhash2, mcmp): Use muscle_entry.
8164 (macro_init): Rename muscle_init. Update.
8165 (macro_insert): Rename muscle_insert. Update.
8166 (macro_find): Rename muscle_find. Update.
8167
8168 * src/main.c: Include muscle_tab.h.
8169 (main): Call muscle_init ().
8170 * src/Makefile.am (bison_SOURCES): Echo modifications.
8171
8172 2001-09-02 Marc Autret <autret_m@epita.fr>
8173
8174 Now the files macro_tab.[ch] are named muscle_tab.[ch].
8175
8176 * src/muscle_tab.c, src/muscle_tab.h: Add files.
8177
8178 2001-09-02 Marc Autret <autret_m@epita.fr>
8179
8180 * src/macrotab.c, src/macrotab.h: Remove.
8181
8182 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
8183
8184 * src/reader.c (copy_guard): Use muscle to specify the `#line'
8185 filename.
8186
8187 2001-09-01 Marc Autret <autret_m@epita.fr>
8188
8189 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
8190 to an explicit value to activate the feature. We do it here.
8191
8192 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8193
8194 * src/output.c (prepare): Delete the `filename' muscule insertion.
8195 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
8196 (parse_union_decl): Likewise.
8197 * src/macrotab.c (macro_init): Initialize filename by infile.
8198
8199 2001-08-31 Marc Autret <autret_m@epita.fr>
8200
8201 * src/bison.simple (YYLSP_NEEDED): New definition.
8202 * src/output.c (prepare): Add macro insertion of `locations_flag'
8203
8204 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8205
8206 * src/output.c (prepare): Delete insertion of previous muscles,
8207 and insert the `prefix' muscles.
8208 * src/macrotab.c (macro_init): Likewise.
8209 (macro_init): Initialization prefix directive by `yy'.
8210 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
8211 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
8212 yylval, yydebug, yyerror, yynerrs and yyparse.
8213 New directive `#define' to substitute yydebug, ... with option
8214 name_prefix.
8215
8216 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8217
8218 * src/main.c (main): Standardize.
8219 * src/output.c (output_table_data, output_parser): Likewise.
8220 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
8221
8222 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
8223
8224 * src/reader.c (read_additionnal_code): Rename %%user_code to
8225 %%epilogue.
8226 * src/output.c (output): Rename %%declarations to %%prologue.
8227 * src/bison.simple: Echo modifications.
8228
8229 2001-08-31 Marc Autret <autret_m@epita.fr>
8230
8231 * src/reader.c (readgram): CleanUp.
8232 (output_token_defines): Likewise.
8233 (packsymbols): Likewise.
8234 (reader): Likewise.
8235 * src/output.c (output): CPP-out useless code.
8236
8237 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8238
8239 * src/reader.c (reader): Delete obsolete call to function
8240 output_trailers and output_headers.
8241 * src/output.h: Remove obsolete functions prototypes of output_headers
8242 and output_trailers.
8243
8244 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
8245
8246 * src/main.c: Include macrotab.h.
8247 * src/macrotab.h (macro_entry_s): Constify fields.
8248 Adjust functions prototypes.
8249 * src/macrotab.c (macro_insert): Constify key and value.
8250 (macro_find): Constify key.
8251 (macro_insert): Include 'xalloc.h'
8252 (macro_insert): Use XMALLOC.
8253 (macro_find): Constify return value.
8254 * src/output.c (output_table_data): Rename table to table_data.
8255 (output_parser): Constify macro_key, macro_value.
8256
8257 2001-08-30 Marc Autret <autret_m@epita.fr>
8258
8259 * src/reader.c (parse_skel_decl): New.
8260 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
8261 * src/lex.h (token_t): New token `tok_skel'.
8262 * src/lex.c (percent_table): Add skeleton option entry.
8263 Standardize.
8264
8265 2001-08-29 Marc Autret <autret_m@epita.fr>
8266
8267 * src/bison.simple: Add %%user_code directive at the end.
8268 * src/reader.c (read_additionnal_code): New.
8269 (reader): Use it.
8270 * src/output.c (output_program): Remove.
8271 (output): Update.
8272
8273 2001-08-28 Marc Autret <autret_m@epita.fr>
8274
8275 * src/output.c (output_actions): Clean up.
8276 (output_gram): CPP-out useless code.
8277 * src/reader.c (reader): Clean up, CPP-out useless code.
8278
8279 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
8280
8281 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
8282 directive.
8283 * src/bison.simple: Add `%%definitions'.
8284
8285 2001-08-28 Marc Autret <autret_m@epita.fr>
8286
8287 * config/depcomp: New file.
8288
8289 2001-08-27 Paul Eggert <eggert@twinsun.com>
8290
8291 * src/bison.simple (yyparse): Don't take the address of an
8292 item before the start of an array, as that doesn't conform to
8293 the C Standard.
8294
8295 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
8296
8297 * src/output.c (output): Remove the initialization of the macro
8298 obstack. It was done too late here.
8299
8300 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
8301 completely wrong.
8302 (reader): Initialize the macro obstack here, since we need it to grow
8303 '%define' directives.
8304
8305 * src/reader.h: Declare the macro obstack as extern.
8306
8307 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
8308
8309 * src/output.c (output_parser): Fix. Store single '%' characters in
8310 the output obstack instead of throwing them away.
8311
8312 2001-08-27 Akim Demaille <akim@epita.fr>
8313
8314 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8315
8316 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8317
8318 * lib/Makefile.am: Adjust.
8319
8320 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8321
8322 * src/bison.simple: Update and add '%%' directives.
8323
8324 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8325
8326 * src/reader.c (reader): Remove calls to 'output_headers' and
8327 'output_trailers'. Remove some C output.
8328 (readgram): Disable a piece of code that was writing a default
8329 definition for 'YYSTYPE'.
8330 (reader_output_yylsp): Remove.
8331 (packsymbols): Output token defintions to a macro.
8332 (copy_definition): Disable C output.
8333
8334 * src/reader.c (parse_macro_decl): New function used to parse macro
8335 declarations.
8336 (copy_string2): Put the body of copy_string into this new function.
8337 Add a parameter to let the caller choose whether he wants to copy the
8338 string delimiters or not.
8339 (copy_string): Be a simple call to copy_string2 with the last argument
8340 bound to true.
8341 (read_declarations): Add case for macro definition.
8342 (copy_identifier): New.
8343 (parse_macro_decl): Read macro identifiers using copy_identifier
8344 rather than lex.
8345
8346 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8347
8348 * src/output.c (prepare): Add prefixed names.
8349 (output_parser): Output semantic actions.
8350 (output_parser): Fix bug on '%%line' directives.
8351
8352 * src/output.c (output_headers): Remove. The C code printed by this
8353 function should now be in the skeletons.
8354 (output_trailers): Remove.
8355 (output): Disable call to 'reader_output_yylsp'.
8356 (output_rule_data): Do not output tables to the table obstack.
8357
8358 * src/output.c: Remove some C dedicated output.
8359 Improve the use of macro and output obstacks.
8360 (output_defines): Remove.
8361
8362 * src/output.c (output_token_translations): Associate 'translate'
8363 table with a macro. No output to the table obstack.
8364 (output_gram): Same for 'rhs' and 'prhs'.
8365 (output_stos): Same for 'stos'.
8366 (output_rule_data): Same for 'r1' and 'r2'.
8367 (token_actions): Same for 'defact'.
8368 (goto_actions): Same for 'defgoto'.
8369 (output_base): Same for 'pact' and 'pgoto'.
8370 (output_table): Same for 'table'.
8371 (output_check): Same for 'check'.
8372
8373 * src/output.c (output_table_data): New function.
8374 (output_short_table): Remove.
8375 (output_short_or_char_table): Remove.
8376
8377 * src/output.c (output_parser): Replace most of the skeleton copy code
8378 with something new. Skeletons are now processed character by character
8379 rather than line by line, and Bison looks for '%%' macros. This is the
8380 first step in making Bison's output process (a lot) more flexible.
8381 (output_parser): Use the macro table.
8382
8383 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8384
8385 * src/main.c (main): Initialize the macro table.
8386
8387 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8388
8389 * src/lex.c (percent_table): Add tok_define.
8390 * src/lex.h: Add tok_define.
8391
8392 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8393
8394 * src/macrotab.c: New file.
8395 * src/macrotab.h: New file.
8396 * src/Makefile.am: Update.
8397
8398 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8399
8400 * lib/hash.c: New file.
8401 * lib/hash.h: New file.
8402 * lib/Makefile.am: Update.
8403
8404 2001-08-15 Akim Demaille <akim@epita.fr>
8405
8406 Version 1.28c.
8407
8408 2001-08-15 Marc Autret <autret_m@epita.fr>
8409
8410 * src/reader.c (readgram): Indent output macro YYSTYPE.
8411 (packsymbols): Likewise.
8412 (output_token_defines): Likewise.
8413 * src/files.c: Standardize.
8414 (compute_header_macro): New.
8415 (defines_obstack_save): New. Use compute_header_macro.
8416 (output_files): Update. Use defines_obstack_save.
8417
8418 2001-08-15 Akim Demaille <akim@epita.fr>
8419
8420 * doc/bison.texinfo (Table of Symbols): Document
8421 YYSTACK_USE_ALLOCA.
8422
8423 2001-08-15 Akim Demaille <akim@epita.fr>
8424
8425 * missing: Update from CVS Automake.
8426 * config/config.guess, config/config.sub, config/texinfo.tex:
8427 Update from gnu.org.
8428
8429 2001-08-15 Akim Demaille <akim@epita.fr>
8430
8431 * Makefile.maint: Sync with CVS Autoconf.
8432
8433 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
8434
8435 * doc/bison.texinfo: Include GNU Free Documentation License from
8436 `fdl.texi'.
8437 * doc/fdl.texi: Add to package.
8438
8439 2001-08-14 Marc Autret <autret_m@epita.fr>
8440
8441 Turn on %{source,header}_extension features.
8442
8443 * src/lex.c (percent_table): Un-CPP out header_extension and
8444 source_extension.
8445 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
8446 (compute_exts_from_src): Remove conditions. It restores priorities
8447 between options.
8448
8449 2001-08-14 Marc Autret <autret_m@epita.fr>
8450
8451 * src/files.c (compute_base_names): Add extensions computing when
8452 `--file-prefix' used.
8453 Standardize function calls.
8454
8455 2001-08-13 Marc Autret <autret_m@epita.fr>
8456
8457 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
8458 defining it (defined but null disables alloca).
8459
8460 2001-08-13 Marc Autret <autret_m@epita.fr>
8461
8462 * src/bison.simple (_yy_memcpy): CPP reformat.
8463
8464 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
8465
8466 * tests/atconfig.in (CPPFLAGS): Fix.
8467
8468 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
8469
8470 * doc/bison.texinfo: Include GNU General Public License from
8471 `gpl.texi'.
8472 * doc/gpl.texi: Add to package.
8473
8474 2001-08-10 Marc Autret <autret_m@epita.fr>
8475
8476 * src/print_graph.h: Fix.
8477 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
8478
8479 2001-08-10 Akim Demaille <akim@epita.fr>
8480
8481 * src/system.h: Provide default declarations for stpcpy, strndup,
8482 and strnlen.
8483
8484 2001-08-10 Robert Anisko <anisko_r@epita.fr>
8485
8486 * doc/bison.texinfo (Locations): Update @$ stuff.
8487
8488 2001-08-09 Robert Anisko <anisko_r@epita.fr>
8489
8490 * src/bison.simple (YYLLOC_DEFAULT): Update.
8491 (yyparse): Adjust.
8492
8493 2001-08-08 Marc Autret <autret_m@epita.fr>
8494
8495 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
8496 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
8497 Reported by Fabrice Bauzac.
8498
8499 2001-08-08 Marc Autret <autret_m@epita.fr>
8500
8501 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
8502 * src/vcg.c (output_node): Fix.
8503 * src/vcg.h: Cleanup.
8504 * src/print_graph.c: Add comments.
8505 (node_output_size): New global variable. Simplify the formatting of
8506 the VCG graph output.
8507 (print_actions): Unused code is now used. It notifies the final state
8508 and no action states in the VCG graph. It also give the reduce actions.
8509 The `shift and goto' edges are red and the `go to state' edges are
8510 blue.
8511 Get the current node name and node_obstack by argument.
8512 (node_obstack): New variable.
8513 (print_state): Manage node_obstack.
8514 (print_core): Use node_obstack given by argument.
8515 A node is not only computed here but in print_actions also.
8516 (print_graph): CPP out useless code instead of commenting it.
8517
8518 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
8519
8520 * tests/atconfig.in (CPPFLAGS): Fix.
8521
8522 2001-08-07 Akim Demaille <akim@epita.fr>
8523
8524 * src/print_graph.c (quote): New.
8525 (print_core): Use it.
8526
8527 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
8528
8529 * src/vcg.c (complain.h): Include it.
8530 Unepitaize `return' invocations.
8531 [NDEBUG] (main): Remove.
8532 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
8533 * src/files.c (open_files): Initialize graph_obstack.
8534 * src/print_graph.c (print_actions): CPP out useless code.
8535 (print_core): Don't output the last `\n' in labels.
8536 Use `quote'.
8537 * src/files.c (output_files): Output the VCG file.
8538 * src/main.c (main): Invoke print_graph ();
8539
8540 2001-08-06 Marc Autret <autret_m@epita.fr>
8541
8542 Automaton VCG graph output.
8543 Using option ``-g'' or long option ``--graph'', you can generate
8544 a gram_filename.vcg file containing a VCG description of the LALR (1)
8545 automaton of your grammar.
8546
8547 * src/main.c: Call to print_graph() function.
8548 * src/getargs.h: Update.
8549 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
8550 (graph_flag): New flag.
8551 (longopts): Update.
8552 (getargs): Add case `g'.
8553 * src/files.c (graph_obstack): New obstack struct.
8554 (open_files): Initialize new obstack.
8555 (output_files): Saves graph_obstack if required.
8556 * src/files.h (graph_obstack): New extern declaration.
8557 * src/Makefile.am: Add new source files.
8558
8559 2001-08-06 Marc Autret <autret_m@epita.fr>
8560
8561 * src/print_graph.c, src/print_graph.h (graph): New.
8562 * src/vcg.h: New file.
8563 * src/vcg.c: New file, VCG graph handling.
8564
8565 2001-08-06 Marc Autret <autret_m@epita.fr>
8566
8567 Add of %source_extension and %header_extension which specify
8568 the source or/and the header output file extension.
8569
8570 * src/files.c (compute_base_names): Remove initialisation of
8571 src_extension and header_extension.
8572 (compute_exts_from_gf): Update.
8573 (compute_exts_from_src): Update.
8574 (output_files): Update.
8575 * src/reader.c (parse_header_extension_decl): New.
8576 (parse_source_extension_decl): New.
8577 (read_declarations): New case statements for the new tokens.
8578 * src/lex.c (percent_table): Add entries for %source_extension
8579 and %header_extension.
8580 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
8581
8582 2001-08-06 Marc Autret <autret_m@epita.fr>
8583
8584 * configure.in: Bump to 1.28c.
8585 * doc/bison.texinfo: Texinfo thingies.
8586
8587 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
8588
8589 * tests/atconfig.in (CPPFLAGS): Add.
8590 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
8591
8592 2001-08-03 Akim Demaille <akim@epita.fr>
8593
8594 Version 1.28b.
8595
8596 2001-08-03 Akim Demaille <akim@epita.fr>
8597
8598 * tests/Makefile.am (check-local): Ship testsuite.
8599 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
8600 Include `string.h'.
8601
8602 2001-08-03 Akim Demaille <akim@epita.fr>
8603
8604 * configure.in: Try using -Wformat when compiling.
8605
8606 2001-08-03 Akim Demaille <akim@epita.fr>
8607
8608 * configure.in: Bump to 1.28b.
8609
8610 2001-08-03 Akim Demaille <akim@epita.fr>
8611
8612 * src/complain.c: Adjust strerror_r portability issues.
8613
8614 2001-08-03 Akim Demaille <akim@epita.fr>
8615
8616 Version 1.28a.
8617
8618 2001-08-03 Akim Demaille <akim@epita.fr>
8619
8620 * src/getargs.c, src/getarg.h (skeleton)): Constify.
8621 * src/lex.c (literalchar): Avoid name clashes on `buf'.
8622 * src/getargs.c: Include complain.h.
8623 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
8624 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
8625
8626 2001-08-03 Akim Demaille <akim@epita.fr>
8627
8628 * src/reader.c (readgram): Display hidden chars in error messages.
8629
8630 2001-08-03 Akim Demaille <akim@epita.fr>
8631
8632 Update to gettext 0.10.39.
8633
8634 2001-08-03 Akim Demaille <akim@epita.fr>
8635
8636 * lib/strspn.c: New.
8637
8638 2001-08-01 Marc Autret <autret_m@epita.fr>
8639
8640 * doc/bison.texinfo: Update.
8641 * doc/bison.1 (mandoc): Update.
8642 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
8643 * src/files.c: Support output files extensions computing.
8644 (src_extension): New static variable.
8645 (header_extension): New static variable.
8646 (tr): New function.
8647 (get_extension_index): New function, gets the index of an extension
8648 filename in a string.
8649 (compute_exts_from_gf): New function, computes extensions from the
8650 grammar file extension.
8651 (compute_exts_from_src): New functions, computes extensions from the
8652 C source file extension, file given by ``-o'' option.
8653 (compute_base_names): Update.
8654 (output_files): Update.
8655
8656 2001-08-01 Robert Anisko <anisko_r@epita.fr>
8657
8658 * doc/bison.texi: Document @$.
8659 (Locations): New section.
8660
8661 2001-07-18 Akim Demaille <akim@epita.fr>
8662
8663 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
8664 * config/prev-version.txt, config/move-if-change: New.
8665 * Makefile.am: Adjust.
8666
8667 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
8668
8669 * src/bison.simple (yyparse): Suppress warning `comparaison
8670 between signed and unsigned'.
8671
8672 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
8673
8674 * src/getargs.h (raw_flag): Remove.
8675 * src/getargs.c: Die on `-r'/`--raw'.
8676 * src/lex.c (parse_percent_token): Die on `%raw'.
8677 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
8678 * tests/calc.at: Suppress test with option `--raw'.
8679
8680 2001-07-14 Akim Demaille <akim@epita.fr>
8681
8682 * config/: New.
8683 * configure.in: Require Autoconf 2.50.
8684 Update to gettext 0.10.38.
8685
8686 2001-03-16 Akim Demaille <akim@epita.fr>
8687
8688 * doc/bison.texinfo: ANSIfy the examples.
8689
8690 2001-03-16 Akim Demaille <akim@epita.fr>
8691
8692 * getargs.c (skeleton): New variable.
8693 (longopts): --skeleton is a new option.
8694 (shortopts, getargs): -S is a new option.
8695 * getargs.h: Declare skeleton.
8696 * output.c (output_parser): Use it.
8697
8698 2001-03-16 Akim Demaille <akim@epita.fr>
8699
8700 * m4/strerror_r.m4: New.
8701 * m4/error.m4: Run AC_FUNC_STRERROR_R.
8702 * lib/error.h, lib/error.c: Update.
8703
8704 2001-03-16 Akim Demaille <akim@epita.fr>
8705
8706 * src/getargs.c (longopts): Clean up.
8707
8708 2001-02-21 Akim Demaille <akim@epita.fr>
8709
8710 * src/reader.c (gensym): `gensym_count' is your own.
8711 Use a static buf to create the symbol name, as token_buffer is no
8712 longer a buffer.
8713
8714 2001-02-08 Akim Demaille <akim@epita.fr>
8715
8716 * src/conflicts.c (conflict_report): Be sure not to append to res
8717 between two calls, which could happen if both first sprintf were
8718 skipped, but not the first cp += strlen.
8719
8720 2001-02-08 Akim Demaille <akim@epita.fr>
8721
8722 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
8723 New, from fileutils 4.0.37.
8724 * configure.in: Require Autoconf 2.49c. I took some time before
8725 making this decision. This is the only way out for portability
8726 issues in Bison, it would mean way too much duplicate effort to
8727 import in Bison features implemented in 2.49c since 2.13.
8728 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
8729
8730 2001-02-02 Akim Demaille <akim@epita.fr>
8731
8732 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
8733 * lib/xalloc.h, lib/xmalloc.c: Update.
8734
8735 2001-01-19 Akim Demaille <akim@epita.fr>
8736
8737 Get rid of the ad hoc handling of token_buffer in the scanner: use
8738 the obstacks.
8739
8740 * src/lex.c (token_obstack): New.
8741 (init_lex): Initialize it. No longer call...
8742 (grow_token_buffer): this. Remove it.
8743 Adjust all the places which used it to use the obstack.
8744
8745 2001-01-19 Akim Demaille <akim@epita.fr>
8746
8747 * src/lex.h: Rename all the tokens:
8748 s/\bENDFILE\b/tok_eof/g;
8749 s/\bIDENTIFIER\b/tok_identifier/g;
8750 etc.
8751 Let them be enums, not #define, to ease debugging.
8752 Adjust all the code.
8753
8754 2001-01-18 Akim Demaille <akim@epita.fr>
8755
8756 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
8757 * src/lex.c (maxtoken, grow_token_buffer): Static.
8758
8759 2001-01-18 Akim Demaille <akim@epita.fr>
8760
8761 Since we now use obstacks, more % directives can be enabled.
8762
8763 * src/lex.c (percent_table): Also accept `%yacc',
8764 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
8765 `%debug'.
8766 Handle the actions for `%semantic_parser' and `%pure_parser' here,
8767 instead of returning a token.
8768 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
8769 * src/reader.c (read_declarations): Adjust.
8770 * src/files.c (open_files): Don't call `compute_base_names', don't
8771 compute `attrsfile' since they depend upon data which might be
8772 *in* the input file now.
8773 (output_files): Do it here.
8774 * src/output.c (output_headers): Document the fact that this patch
8775 introduces a guaranteed SEGV for semantic parsers.
8776 * doc/bison.texinfo: Document them.
8777 * tests/suite.at: Exercise these %options.
8778
8779 2000-12-20 Akim Demaille <akim@epita.fr>
8780
8781 Also handle the output file (--verbose) with obstacks.
8782
8783 * files.c (foutput): Remove.
8784 (output_obstack): New.
8785 Adjust all dependencies.
8786 * src/conflicts.c: Return a string.
8787 * src/system.h (obstack_grow_string): Rename as...
8788 (obstack_sgrow): this. Be ready to work with non literals.
8789 (obstack_fgrow4): New.
8790
8791 2000-12-20 Akim Demaille <akim@epita.fr>
8792
8793 * src/files.c (open_files): Fix the computation of short_base_name
8794 in the case of `-o foo.tab.c'.
8795
8796 2000-12-20 Akim Demaille <akim@epita.fr>
8797
8798 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
8799 (copy_dollar): Now that everything uses obstacks, get rid of the
8800 FILE * parameters.
8801
8802 2000-12-20 Akim Demaille <akim@epita.fr>
8803
8804 * src/files.c (open_files): Actually the `.output' file is based
8805 on the short_base_name, not base_name.
8806 * tests/suite.at (Checking output file names): Adjust.
8807
8808 2000-12-20 Akim Demaille <akim@epita.fr>
8809
8810 * src/bison.s1: Remove, we now use directly...
8811 * src/bison.simple: this.
8812 * src/Makefile.am: Use pkgdata instead of data.
8813
8814 2000-12-20 Akim Demaille <akim@epita.fr>
8815
8816 * src/files.c (guard_obstack): New.
8817 (open_files): Initialize it.
8818 (output_files): Dump it...
8819 * src/files.h: Export it.
8820 * src/reader.c (copy_guard): Use it.
8821
8822 2000-12-19 Akim Demaille <akim@epita.fr>
8823
8824 * src/files.c (outfile, defsfile, actfile): Removed as global
8825 vars.
8826 (open_files): Don't compute them.
8827 (output_files): Adjust.
8828 (base_name, short_base_name): Be global.
8829 Adjust dependencies.
8830
8831 2000-12-19 Akim Demaille <akim@epita.fr>
8832
8833 * src/files.c (strsuffix): New.
8834 (stringappend): Be just like strcat but allocate.
8835 (base_names): Eve out from open_files.
8836 Try to simplify the rather hairy computation of base_name and
8837 short_base_name.
8838 (open_files): Use it.
8839 * tests/suite.at (Checking output file names): New test.
8840
8841 2000-12-19 Akim Demaille <akim@epita.fr>
8842
8843 * src/system.h (obstack_grow_literal_string): Rename as...
8844 (obstack_grow_string): this.
8845 * src/output.c (output_parser): Recognize `%% actions' instead of
8846 `$'.
8847 * src/bison.s1: s/$/%% actions/.
8848 * src/bison.hairy: Likewise.
8849
8850 2000-12-19 Akim Demaille <akim@epita.fr>
8851
8852 * src/output.c (output_parser): Compute the `#line' lines when
8853 there are.
8854 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
8855 Suggested by Hans Aberg.
8856
8857 2000-12-19 Akim Demaille <akim@epita.fr>
8858
8859 Let the handling of the skeleton files be local to the procedures
8860 that use it.
8861
8862 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
8863 longer static.
8864 (fparser, open_extra_files): Remove.
8865 (open_files, output_files): Don't take care of fparser.
8866 * src/files.h: Adjust.
8867 * src/output.c (output_parser): Open and close the file to the
8868 skeleton.
8869 * src/reader.c (read_declarations): When %semantic_parser, open
8870 fguard.
8871
8872 2000-12-19 Akim Demaille <akim@epita.fr>
8873
8874 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
8875 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
8876
8877 2000-12-19 Akim Demaille <akim@epita.fr>
8878
8879 * src/files.c (open_files): Yipee! We no longer need all the code
8880 looking for `/tmp' since we have no tmp file.
8881
8882 2000-12-19 Akim Demaille <akim@epita.fr>
8883
8884 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
8885 New macros.
8886 * src/files.c (open_files): Less dependency on MSDOS etc.
8887
8888 2000-12-14 Akim Demaille <akim@epita.fr>
8889
8890 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
8891 Provide a default definition.
8892 Use it when executing the default @ action.
8893 * src/reader.c (reader_output_yylsp): No longer include
8894 `timestamp' and `text' in the default YYLTYPE.
8895
8896 2000-12-12 Akim Demaille <akim@epita.fr>
8897
8898 * src/reader.c (copy_definition, parse_union_decl, copy_action)
8899 (copy_guard): Quote the file names.
8900 Reported by Laurent Mascherpa.
8901
8902 2000-12-12 Akim Demaille <akim@epita.fr>
8903
8904 * src/output.c (output_headers, output_program, output): Be sure
8905 to escape special characters when outputting filenames.
8906 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
8907 (output_headers): Don't depend on them, Use ACTSTR.
8908
8909 2000-11-17 Akim Demaille <akim@epita.fr>
8910
8911 * lib/obstack.h: Formatting changes.
8912 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
8913 prevents type checking.
8914 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
8915 cast the value to (void *): assigning a `foo *' to a `void *'
8916 variable is valid.
8917 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
8918 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
8919 append characters.
8920
8921 2000-11-17 Akim Demaille <akim@epita.fr>
8922
8923 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
8924 as...
8925 (suite.m4, regression.m4, calc.m4): these.
8926 * tests/atgeneral.m4: Update from CVS Autoconf.
8927
8928 2000-11-17 Akim Demaille <akim@epita.fr>
8929
8930 * tests/regression.m4 (%union and --defines): New test,
8931 demonstrating a current bug in the obstack implementation.
8932
8933 2000-11-17 Akim Demaille <akim@epita.fr>
8934
8935 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
8936 macros.
8937 Use them to declare the variables which are global or local to
8938 `yyparse'.
8939
8940 2000-11-17 Akim Demaille <akim@epita.fr>
8941
8942 * acconfig.h: Remove, no longer used.
8943
8944 2000-11-07 Akim Demaille <akim@epita.fr>
8945
8946 * src: s/Copyright (C)/Copyright/g.
8947
8948 2000-11-07 Akim Demaille <akim@epita.fr>
8949
8950 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
8951 defining.
8952 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
8953
8954 2000-11-07 Akim Demaille <akim@epita.fr>
8955
8956 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
8957 Merge in a single CPP if/else.
8958
8959 2000-11-07 Akim Demaille <akim@epita.fr>
8960
8961 * src/output.c (output): Remove useless variables.
8962 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
8963 argument `data' for consistency with the prototypes.
8964 Qualify it `const'.
8965 (obstack_copy, obstack_copy0): Rename the second argument as
8966 `address' for consistency. Qualify it `const'.
8967 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
8968 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
8969 `const' their input argument (`data' or `address').
8970 Adjust the corresponding macros to include `const' in casts.
8971
8972 2000-11-03 Akim Demaille <akim@epita.fr>
8973
8974 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
8975 s/PFILE1/BISON_HAIRY/.
8976 Adjust dependencies.
8977
8978 2000-11-03 Akim Demaille <akim@epita.fr>
8979
8980 For some reason, this was not applied.
8981
8982 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
8983 `unlink': it's no longer used.
8984
8985 2000-11-03 Akim Demaille <akim@epita.fr>
8986
8987 * src/files.c (skeleton_find): New function, eved out of...
8988 (open_files, open_extra_files): here.
8989
8990 2000-11-03 Akim Demaille <akim@epita.fr>
8991
8992 Don't use `atexit'.
8993
8994 * src/files.c (obstack_save): New function.
8995 (done): Rename as...
8996 (output_files): this.
8997 Use `obstack_save'.
8998 * src/main.c (main): Don't use `atexit' to register `done', since
8999 it no longer has to remove tmp files, just call `output_files'
9000 when there are no errors.
9001
9002 2000-11-02 Akim Demaille <akim@epita.fr>
9003
9004 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9005 `unlink': it's no longer used.
9006 * src/files.h: Formatting changes.
9007
9008 2000-11-02 Akim Demaille <akim@epita.fr>
9009
9010 Remove the last uses of mktemp and unlink/delete.
9011
9012 * src/files.c (fdefines, ftable): Removed.
9013 (defines_ostack, table_obstack): New.
9014 Adjust dependencies of the former into uses of the latter.
9015 * src/output.c (output_short_or_char_table, output_short_table):
9016 Convert to using obstacks.
9017 * src/reader.c (copy_comment2): Accept one FILE * and two
9018 obstacks.
9019 (output_token_defines, reader_output_yylsp): Use obstacks.
9020 * src/system.h (obstack_fgrow3): New.
9021
9022 2000-11-01 Akim Demaille <akim@epita.fr>
9023
9024 Change each use of `fattrs' into a use of `attrs_obstack'.
9025
9026 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
9027 * src/files.c (fattrs): Remove.
9028 (attrs_obstack): New.
9029 Adjust all dependencies.
9030 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
9031
9032 2000-11-01 Akim Demaille <akim@epita.fr>
9033
9034 Introduce obstacks.
9035 Change each use of `faction' into a use of `action_obstack'.
9036
9037 * lib/obstack.h, lib/obstack.c: New files.
9038 * src/files.c (faction): Remove.
9039 (action_obstack): New.
9040 Adjust all dependencies.
9041
9042 2000-10-20 Akim Demaille <akim@epita.fr>
9043
9044 * lib/quote.h (PARAMS): New macro. Use it.
9045
9046 2000-10-16 Akim Demaille <akim@epita.fr>
9047
9048 * src/output.c (output_short_or_char_table): New function.
9049 (output_short_table, output_token_translations): Use it.
9050 (goto_actions): Use output_short_table.
9051
9052 2000-10-16 Akim Demaille <akim@epita.fr>
9053
9054 * src/symtab.c (bucket_new): New function.
9055 (getsym): Use it.
9056
9057 * src/output.c (output_short_table): New argument to display the
9058 comment associated with the table.
9059 Adjust dependencies.
9060 (output_gram): Use it.
9061 (output_rule_data): Nicer output layout for YYTNAME.
9062
9063 2000-10-16 Akim Demaille <akim@epita.fr>
9064
9065 * src/lex.c (read_typename): New function.
9066 (lex): Use it.
9067 * src/reader.c (copy_dollar): Likewise.
9068
9069 2000-10-16 Akim Demaille <akim@epita.fr>
9070
9071 * src/reader.c (copy_comment2): Expect the input stream to be on
9072 the `/' which is suspected to open a comment, instead of being
9073 called after `//' or `/*' was read.
9074 (copy_comment, copy_definition, parse_union_decl, copy_action)
9075 (copy_guard): Adjust.
9076
9077 2000-10-16 Akim Demaille <akim@epita.fr>
9078
9079 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
9080 `read_signed_integer'.
9081
9082 2000-10-16 Akim Demaille <akim@epita.fr>
9083
9084 * src/reader.c (copy_dollar): New function.
9085 (copy_guard, copy_action): Use it.
9086
9087 2000-10-16 Akim Demaille <akim@epita.fr>
9088
9089 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
9090 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
9091 New files, from Fileutils 4.0.27.
9092 * src/main.c (printable_version): Remove.
9093 * src/lex.c, src/reader.c: Use `quote'.
9094
9095 2000-10-04 Akim Demaille <akim@epita.fr>
9096
9097 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
9098
9099 2000-10-04 Akim Demaille <akim@epita.fr>
9100
9101 * doc/bison.texinfo: Various typos spotted by Neil Booth.
9102
9103 2000-10-04 Akim Demaille <akim@epita.fr>
9104
9105 When a literal string is used to define two different tokens,
9106 `bison -v' segfaults.
9107 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
9108
9109 * tests/regression.m4: New file.
9110 Include the core of the sample provided by Piotr Gackiewicz.
9111 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
9112 properly.
9113
9114 2000-10-04 Akim Demaille <akim@epita.fr>
9115
9116 * src/reader.c (parse_expect_decl): Keep `count' within the size
9117 of `buffer'.
9118 From Neil Booth.
9119
9120 2000-10-02 Paul Eggert <eggert@twinsun.com>
9121
9122 * bison.s1 (yyparse): Assign the default value
9123 unconditionally, to avoid a GCC warning and make the parser a
9124 tad smaller.
9125
9126 2000-10-02 Akim Demaille <akim@epita.fr>
9127
9128 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
9129 options.
9130
9131 2000-10-02 Akim Demaille <akim@epita.fr>
9132
9133 * src/derives.c, src/print.c, src/reduce.c: To ease the
9134 translation, move some `\n' out of the translated strings.
9135
9136 2000-10-02 Akim Demaille <akim@epita.fr>
9137
9138 The location tracking mechanism is precious for parse error
9139 messages. Nevertheless, it is enabled only when `@n' is used in
9140 the grammar, which is a different issue (you can use it in error
9141 message, but not in the grammar per se). Therefore, there should
9142 be another means to enable it.
9143
9144 * src/getargs.c (getargs): Support `--locations'.
9145 (usage): Report it.
9146 * src/getargs.h (locationsflag): Export it.
9147 * src/lex.c (percent_table): Support `%locations'.
9148 * src/reader.c (yylsp_needed): Remove this variable, now replaced
9149 with `locationsflag'.
9150 * doc/bison.texinfo: Document `--locations' and `%locations'.
9151 Sort the options.
9152 * tests/calc.m4: Test it.
9153
9154 For regularity of the names, replace each
9155 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
9156 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
9157 In addition replace each `flag' with `_flag'.
9158
9159 2000-10-02 Akim Demaille <akim@epita.fr>
9160
9161 Also test parse error messages, including with YYERROR_VERBOSE.
9162
9163 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
9164 associative).
9165 Use it to check the computations.
9166 Use it to check `nonassoc' is honored.
9167 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
9168 `--yyerror-verbose'.
9169 (_AT_CHECK_CALC): Adjust to this option.
9170 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
9171
9172 2000-10-02 Akim Demaille <akim@epita.fr>
9173
9174 Test also `--verbose', `--defines' and `--name-prefix'. Testing
9175 the latter demonstrates a flaw in the handling of non debugging
9176 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
9177 was used in order to simplify:
9178
9179 #if YYDEBUG
9180 if (yydebug)
9181 {
9182 ...
9183 }
9184 #endif
9185
9186 into
9187
9188 if (yydebug)
9189 {
9190 ...
9191 }
9192
9193 unfortunately this leads to a CPP conflict when
9194 `--name-prefix=foo' is used since it produces `#define yydebug
9195 foodebug'.
9196
9197 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
9198 (YYDPRINTF): New macro.
9199 Spread its use.
9200 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
9201 the bison options.
9202 Also test `--verbose', `--defines' and `--name-prefix'.
9203
9204 2000-10-02 Akim Demaille <akim@epita.fr>
9205
9206 Improve the readability of the produced parsers.
9207
9208 * src/bison.s1: Formatting changes.
9209 Improve the comment related to the `$' mark.
9210 (yydefault): Don't fall through to `yyresume': `goto' there.
9211 * src/output.c (output_parser): When the `$' is met, skip the end
9212 of its line.
9213 New variable, `number_of_dollar_signs', to check there's exactly
9214 one `$' in the parser skeleton.
9215
9216 2000-10-02 Akim Demaille <akim@epita.fr>
9217
9218 * lib/xstrdup.c: New file, from the fileutils.
9219 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
9220 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
9221 instead of strlen + xmalloc + strcpy.
9222 * src/symtab.c (copys): Remove, use xstrdup instead.
9223
9224 2000-10-02 Akim Demaille <akim@epita.fr>
9225
9226 * src/gram.h (associativity): New enum type which replaces the
9227 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
9228 `right_assoc', `left_assoc' and `non_assoc'.
9229 Adjust all dependencies.
9230 * src/reader.c: Formatting changes.
9231 (LTYPESTR): Don't define it, use it as a literal in
9232 `reader_output_yylsp'.
9233 * src/symtab.h (symbol_class): New enum type which replaces the
9234 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
9235 `sunknown', `stoken and `snterm'.
9236
9237 2000-10-02 Akim Demaille <akim@epita.fr>
9238
9239 * src/getargs.c (fixed_outfiles): Rename as...
9240 (yaccflag): for consistency and accuracy.
9241 Adjust dependencies.
9242
9243 2000-10-02 Akim Demaille <akim@epita.fr>
9244
9245 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
9246 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
9247 difficult and introduced a lot of core dump. It turns out that
9248 Bison used an implementation of `xmalloc' based on `calloc', and
9249 at various places it does depend upon the initialization to 0. I
9250 have not tried to isolate the pertinent places, and all the former
9251 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
9252 someone should address this issue.
9253
9254 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
9255 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
9256 files.
9257 Adjust dependencies.
9258 * src/warshall.h: New file.
9259 Propagate.
9260
9261 2000-10-02 Akim Demaille <akim@epita.fr>
9262
9263 Various anti-`extern in *.c' changes.
9264
9265 * src/system.h: Include `assert.h'.
9266
9267 2000-10-02 Akim Demaille <akim@epita.fr>
9268
9269 * src/state.h (nstates, final_state, first_state, first_shift)
9270 (first_reduction): Move their exportation from here...
9271 * src/LR0.h: to here.
9272 Adjust dependencies.
9273 * src/getargs.c (statisticsflag): New variable.
9274 Add support for `--statistics'.
9275 Adjust dependencies.
9276
9277 Remove a lot of now useless `extern' statements in most files.
9278
9279 2000-10-02 Akim Demaille <akim@epita.fr>
9280
9281 * src/LR0.h: New file.
9282 Propagate its use.
9283
9284 2000-10-02 Akim Demaille <akim@epita.fr>
9285
9286 * src/print.h: New file.
9287 Propagate its use.
9288 * src/print.c: Formatting and ordering changes.
9289 (verbose, terse): Replace with...
9290 (print_results): this new function.
9291 Adjust dependencies.
9292
9293 2000-10-02 Akim Demaille <akim@epita.fr>
9294
9295 * src/conflicts.c (conflict_report): New function.
9296 (conflict_log, verbose_conflict_log): Replace with...
9297 (print_conflicts): this function.
9298 Adjust dependencies.
9299 * src/conflicts.h: New file.
9300 Propagate its inclusion.
9301
9302 2000-10-02 Akim Demaille <akim@epita.fr>
9303
9304 * src/nullable.h: New file.
9305 Propagate its inclusion.
9306 * src/nullable.c: Formatting changes.
9307
9308 2000-10-02 Akim Demaille <akim@epita.fr>
9309
9310 * src/reduce.h: New file.
9311 Propagate its inclusion.
9312 * src/reduce.c: Topological sort and other formatting changes.
9313 (bool, TRUE, FALSE): Move their definition to...
9314 * src/system.h: here.
9315
9316 2000-10-02 Akim Demaille <akim@epita.fr>
9317
9318 * src/files.c: Formatting changes.
9319 (tryopen, tryclose, openfiles): Rename as...
9320 (xfopen, xfclose, open_files): this.
9321 (stringappend): static.
9322 * src/files.h: Complete the list of exported symbols.
9323 Propagate its use.
9324
9325 2000-10-02 Akim Demaille <akim@epita.fr>
9326
9327 * src/reader.h: New file.
9328 Propagate its use instead of tedious list of `extern' and
9329 prototypes.
9330 * src/reader.c: Formatting changes, topological sort,
9331 s/register//.
9332
9333 2000-10-02 Akim Demaille <akim@epita.fr>
9334
9335 * src/lex.h: Prototype `lex.c' exported functions.
9336 * src/reader.c: Adjust.
9337 * src/lex.c: Formatting changes.
9338 (safegetc): Rename as...
9339 (xgetc): this.
9340
9341 2000-10-02 Akim Demaille <akim@epita.fr>
9342
9343 * src/lalr.h: New file.
9344 Propagate its inclusion instead of prototypes and `extern'.
9345 * src/lalr.c: Formatting changes, topological sorting etc.
9346
9347 2000-10-02 Akim Demaille <akim@epita.fr>
9348
9349 * src/output.c (token_actions): Introduce a temporary array,
9350 YYDEFACT, that makes it possible for this function to use
9351 output_short_table.
9352
9353 2000-10-02 Akim Demaille <akim@epita.fr>
9354
9355 `user_toknums' is output as a `short[]' in `output.c', while it is
9356 defined as a `int[]' in `reader.c'. For consistency with the
9357 other output tables, `user_toknums' is now defined as a table of
9358 shorts.
9359
9360 * src/reader.c (user_toknums): Be a short table instead of an int
9361 table.
9362 Adjust dependencies.
9363
9364 Factor the short table outputs.
9365
9366 * src/output.c (output_short_table): New function.
9367 * src/output.c (output_gram, output_stos, output_rule_data)
9368 (output_base, output_table, output_check): Use it.
9369
9370 2000-10-02 Akim Demaille <akim@epita.fr>
9371
9372 * src/output.c (output): Topological sort of the functions, in
9373 order to get rid of the `static' prototypes.
9374 No longer use `register'.
9375 * src/output.h: New file.
9376 Propagate its inclusion in files explicitly prototyping functions
9377 from output.c.
9378
9379 2000-09-21 Akim Demaille <akim@epita.fr>
9380
9381 * src/atgeneral.m4: Update from Autoconf.
9382
9383 2000-09-21 Akim Demaille <akim@epita.fr>
9384
9385 * src/closure.h: New file.
9386 * src/closure.c: Formatting changes, topological sort over the
9387 functions, use of closure.h.
9388 (initialize_closure, finalize_closure): Rename as...
9389 (new_closure, free_closure): these. Adjust dependencies.
9390 * src/LR0.c: Formatting changes, topological sort, use of
9391 cloture.h.
9392 (initialize_states): Rename as...
9393 (new_states): this.
9394 * src/Makefile.am (noinst_HEADERS): Adjust.
9395
9396 2000-09-20 Akim Demaille <akim@epita.fr>
9397
9398 * src/acconfig.h: Don't protect config.h against multiple
9399 inclusion.
9400 Don't define PARAMS.
9401 * src/system.h: Define PARAMS.
9402 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
9403 purpose of config.h. system.h must not try to fix wrong
9404 definitions in config.h.
9405
9406 2000-09-20 Akim Demaille <akim@epita.fr>
9407
9408 * src/derives.h: New file.
9409 * src/main.c, src/derives.h: Use it.
9410 Formatting changes.
9411 * src/Makefile.am (noinst_HEADERS): Adjust.
9412
9413 2000-09-20 Akim Demaille <akim@epita.fr>
9414
9415 * tests/atgeneral.m4: Update from Autoconf.
9416 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
9417 (AT_CHECK_CALC): New macros.
9418 Use these macros to test bison with options `', `--raw',
9419 `--debug', `--yacc', `--yacc --debug'.
9420
9421 2000-09-19 Akim Demaille <akim@epita.fr>
9422
9423 * src/output.c: Formatting changes.
9424 * src/machine.h: Remove, leaving its contents in...
9425 * src/system.h: here.
9426 Include stdio.h.
9427 Adjust all dependencies on stdio.h and machine.h.
9428 * src/getargs.h: New file.
9429 Let all `extern' declarations about getargs.c be replaced with
9430 inclusion of `getargs.h'.
9431 * src/Makefile.am (noinst_HEADERS): Adjust.
9432
9433 * tests/calc.m4 (yyin): Be initialized in main, not on the global
9434 scope.
9435 (yyerror): Returns void, not int.
9436 * doc/bison.texinfo: Formatting changes.
9437
9438 2000-09-19 Akim Demaille <akim@epita.fr>
9439
9440 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
9441 portable.
9442
9443 2000-09-18 Akim Demaille <akim@epita.fr>
9444
9445 * configure.in: Append WARNING_CFLAGS to CFLAGS.
9446 * src/Makefile.am (INCLUDES): Don't.
9447 Be ready to fetch headers in lib/.
9448
9449 2000-09-18 Akim Demaille <akim@epita.fr>
9450
9451 * doc/bison.texinfo: Update the copyright.
9452 ANSIfy and GNUify the examples.
9453 Remove the old menu.
9454
9455 2000-09-18 Akim Demaille <akim@epita.fr>
9456
9457 First set of tests: use the `calc' example from the documentation.
9458
9459 * src/bison.s1 (yyparse): Condition the code using `yytname' which
9460 is defined only when YYDEBUG is.
9461 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
9462 * src/files.c (tryopen, tryclose): Formatting changes.
9463 Move to the top and be static.
9464 * src/reader.c (read_signed_integer): Likewise.
9465 * tests/calc.m4: New file.
9466 * Makefile.am, suite.m4: Adjust.
9467 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
9468
9469 2000-09-18 Akim Demaille <akim@epita.fr>
9470
9471 Add support for an Autotest test suite for Bison.
9472
9473 * m4/m4.m4, m4/atconfig.m4: New files.
9474 * m4/Makefile.am (EXTRA_DIST): Adjust.
9475 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
9476 files.
9477 * src/getargs.c: Display a more standard --version message.
9478 * src/reader.c (reader): Formatting changes.
9479 No longer depend upon VERSION_STRING.
9480 * configure.in: No longer use `dnl'.
9481 Set up the test suite and the new directory `tests/.
9482 (VERSION_STRING): Remove.
9483
9484 2000-04-14 Akim Demaille <akim@epita.fr>
9485
9486 * src/reader.c (copy_comment2): New function, same as former
9487 `copy_comment', but outputs into two FILE *.
9488 (copy_comment): Use it.
9489 (parse_union_decl): Use it.
9490 (get_type, parse_start_decl): Use the same `invalid' message.
9491 (parse_start_decl, parse_union_decl): Use the same `multiple'
9492 message.
9493 (parse_union_decl, copy_guard, copy_action): Use the same
9494 `unmatched' message.
9495 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
9496
9497 2000-03-31 Akim Demaille <akim@epita.fr>
9498
9499 * src/files.c (tryopen, tryclose): Move to the top.
9500 Be static.
9501
9502 2000-03-31 Akim Demaille <akim@epita.fr>
9503
9504 * src/main.c (main): Don't call `done', exit does it.
9505
9506 2000-03-31 Akim Demaille <akim@epita.fr>
9507
9508 * allocate.c: s/return (foo)/return foo/.
9509 * lalr.c: Likewise.
9510 * LR0.c: Likewise.
9511 * output.c: Likewise.
9512 * reader.c: Likewise.
9513 * symtab.c: Likewise.
9514 * vmsgetargs.c: Likewise.
9515
9516 2000-03-31 Akim Demaille <akim@epita.fr>
9517
9518 Clean up the error reporting functions.
9519
9520 * src/report.c: New file.
9521 * src/report.h: Likewise.
9522 * src/Makefile.am: Adjust.
9523 * m4/error.m4: New file.
9524 * m4/Makefile.am: Adjust.
9525 * configure.in (jm_PREREQ_ERROR): Call it.
9526 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
9527 Remove.
9528 (fatal, fatals): Remove. All callers use complain.c::fatal.
9529 (warn, warni, warns, warnss, warnss): Remove. All callers use
9530 complain.c::complain.
9531 (toomany): Remove, use fatal instead.
9532 * src/files.c (done): No argument, use complain_message_count.
9533 * src/main.c (main): Register `done' to `atexit'.
9534
9535 * src/getargs.c (usage): More `fputs', less `fprintf'.
9536
9537 2000-03-28 Akim Demaille <akim@epita.fr>
9538
9539 * lib/: New directory.
9540 * Makefile.am (SUBDIRS): Adjust.
9541 * configure.in: Adjust.
9542 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
9543 useless.
9544 * src/alloca.c: Moved to lib/.
9545 * src/getopt.c: Likewise.
9546 * src/getopt1.c: Likewise.
9547 * src/getopt.h: Likewise.
9548 * src/ansi2knr.c: Likewise.
9549 * src/ansi2knr.1: Likewise.
9550 * src/Makefile.am: Adjust.
9551 * lib/Makefile.am: New file.
9552
9553 2000-03-28 Akim Demaille <akim@epita.fr>
9554
9555 * src/getargs.c (usage): Refresh the help message.
9556
9557 2000-03-17 Akim Demaille <akim@epita.fr>
9558
9559 * src/getopt1.c: Updated from textutils 2.0e
9560 * src/getopt.c: Likewise.
9561 * src/getopt.h: Likewise.
9562
9563 2000-03-17 Akim Demaille <akim@epita.fr>
9564
9565 * src/Makefile.am (bison.simple): Fix the awk program: quote only
9566 the file name, not the whole `#line LINE FILE'.
9567
9568 2000-03-17 Akim Demaille <akim@epita.fr>
9569
9570 On syntax errors, report the token on which we choked.
9571
9572 * src/bison.s1 (yyparse): In the label yyerrlab, when
9573 YYERROR_VERBOSE, add yychar in msg.
9574
9575 2000-03-17 Akim Demaille <akim@epita.fr>
9576
9577 * src/reader.c (copy_at): New function.
9578 (copy_guard): Use it.
9579 (copy_action): Use it.
9580
9581 2000-03-17 Akim Demaille <akim@epita.fr>
9582
9583 Be kind to translators, save some useless translations.
9584
9585 * src/main.c (banner): New function.
9586 (fatal_banner): Use it.
9587 (warn_banner): Use it.
9588
9589 2000-03-17 Akim Demaille <akim@epita.fr>
9590
9591 * src/reader.c (copy_definition): Use copy_string and
9592 copy_comment. Removed now unused `match', `ended',
9593 `cplus_comment'.
9594 (copy_comment, copy_string): Moved, to be visible from
9595 copy_definition.
9596
9597 2000-03-17 Akim Demaille <akim@epita.fr>
9598
9599 * src/reader.c (copy_string): Declare `static inline'. No
9600 problems with inline, since it is checked by configure.
9601 (copy_comment): Likewise.
9602
9603 2000-03-17 Akim Demaille <akim@epita.fr>
9604
9605 * src/reader.c (packsymbols): Formatting changes.
9606
9607 2000-03-17 Akim Demaille <akim@epita.fr>
9608
9609 * src/reader.c (copy_comment): New function, factored out from:
9610 (copy_action): Use it. Removed now unused `match', `ended',
9611 `cplus_comment'.
9612 (copy_guard): Likewise.
9613
9614 2000-03-17 Akim Demaille <akim@epita.fr>
9615
9616 * src/reader.c (copy_string): New function, factored out from:
9617 (copy_action): Use it.
9618 (copy_guard): Likewise.
9619
9620 2000-03-17 Akim Demaille <akim@epita.fr>
9621
9622 Change the handling of @s so that they behave exactly like $s.
9623 There is now a pseudo variable @$ (readble and writable), location
9624 of the lhs of the rule (by default ranging from the location of
9625 the first symbol of the rhs, to the location of the last symbol,
9626 or, if the rhs is empty, YYLLOC).
9627
9628 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
9629 yyval.
9630 (yyparse): When providing a default semantic action, provide a
9631 default location action.
9632 (after the $): No longer change `*YYLSP', just stack YYLOC the
9633 same way you stack YYVAL.
9634 * src/reader.c (read_declarations): Use warns.
9635 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
9636 (copy_action, case '@'): Likewise.
9637 Use a standard error message, to save useless work from
9638 translators.
9639
9640 2000-03-17 Akim Demaille <akim@epita.fr>
9641
9642 * src/bison.s1: Formatting and cosmetics changes.
9643 * src/reader.c: Likewise.
9644 Update the Copyright notice.
9645
9646 2000-03-17 Akim Demaille <akim@epita.fr>
9647
9648 * src/bison.s1 (#line): All set to `#line' only, since the
9649 Makefile now handles them.
9650
9651 2000-03-16 Akim Demaille <akim@epita.fr>
9652
9653 * src/output.c (output_rule_data): Output the documentation of
9654 some of the tables.
9655 (Copyright notice): Update.
9656 Formatting changes.
9657
9658 2000-03-16 Akim Demaille <akim@epita.fr>
9659
9660 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
9661 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
9662 One `#if YYDEBUG' remains, since it uses variables which are
9663 defined only if `YYDEBUG != 0'.
9664
9665 2000-03-16 Akim Demaille <akim@epita.fr>
9666
9667 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
9668 and related variables so that the similarities are highlighted.
9669
9670 2000-03-16 Akim Demaille <akim@epita.fr>
9671
9672 * src/bison.s1: Properly indent CPP directives.
9673
9674 2000-03-16 Akim Demaille <akim@epita.fr>
9675
9676 * src/bison.s1: Properly indent the `alloca' CPP section.
9677
9678 2000-03-16 Akim Demaille <akim@epita.fr>
9679
9680 Do not hard code values of directories in `configure.in'.
9681 Update the `configure' tool chain.
9682
9683 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
9684 src/makefile.am.
9685 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
9686 (AC_OUTPUT): Add m4/Makefile.
9687 Bump to bison 1.28a, 1.29 has never been released.
9688 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
9689 handled via src/Makefile.am.
9690 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
9691 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
9692 autoheader.
9693 * Makefile.am (SUBDIRS): Add m4.
9694 (ACLOCAL_AM_FLAGS): New variable.
9695 (AUTOMAKE_OPTIONS): Add check-news.
9696 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
9697 the proper line number and file name.
9698 (DEFS): Propagate the location of bison library files and of the
9699 locale files.
9700 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
9701 builddir.
9702 * acinclude.m4: Remove, replaced by the directory m4.
9703 * m4/Makefile.am (EXTRA_DIST): New variable.
9704 * m4/gettext.m4: New file, from the fileutils.
9705 * m4/lcmessage.m4: Likewise
9706 * m4/progtest.m4: Likewise.
9707 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
9708
9709 2000-03-10 Akim Demaille <akim@epita.fr>
9710
9711 * src/closure.c:
9712 Formatting changes of various comments.
9713 Respect the GNU coding standards at various places.
9714 Don't use `_()' when no translation is needed.
9715
9716 1999-12-13 Jesse Thilo <jthilo@gnu.org>
9717
9718 * src/files.c:
9719 OS/2 honors TMPDIR environment variable.
9720
9721 1999-12-13 Jesse Thilo <jthilo@gnu.org>
9722
9723 * doc/bison.texinfo: Tweaked spelling and grammar.
9724 Updated ISBN.
9725 Removed reference to price of printed copy.
9726 Mention BISON_SIMPLE and BISON_HAIRY.
9727
9728 1999-12-13 Jesse Thilo <jthilo@gnu.org>
9729
9730 * configure.in, NEWS:
9731 Bison 1.29 released.
9732
9733 1999-10-27 Jesse Thilo <jthilo@gnu.org>
9734
9735 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
9736 Added reference card.
9737
9738 1999-07-26 Jesse Thilo <jthilo@gnu.org>
9739
9740 * po/ru.po: Added Russian translation.
9741
9742 1999-07-26 Jesse Thilo <jthilo@gnu.org>
9743
9744 * configure.in: Added Russian translation.
9745
9746 1999-07-06 Jesse Thilo <jthilo@gnu.org>
9747
9748 * configure.in, NEWS, README:
9749 Released version 1.28.
9750
9751 1999-06-14 Jesse Thilo <jthilo@gnu.org>
9752
9753 * src/system.h:
9754 Squashed redefinition warning on some systems.
9755
9756 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
9757 Have configure build version string instead of relying on ANSI string
9758 concatentation.
9759
9760 1999-06-14 Jesse Thilo <jthilo@gnu.org>
9761
9762 * po/POTFILES.in: Got rid of version.c.
9763
9764 1999-06-14 Jesse Thilo <jthilo@gnu.org>
9765
9766 * acconfig.h, configure.in:
9767 Have configure build version string instead of relying on ANSI string
9768 concatentation.
9769
9770 1999-06-08 Jesse Thilo <jthilo@gnu.org>
9771
9772 * doc/bison.1:
9773 Dropped mention of `+' for long-named options.
9774
9775 1999-05-30 Jesse Thilo <jthilo@gnu.org>
9776
9777 * src/files.c: Added <unistd.h> for unlink().
9778
9779 * src/Makefile.am, src/system.h:
9780 I18n fixes.
9781
9782 1999-05-30 Jesse Thilo <jthilo@gnu.org>
9783
9784 * README: Added a FAQ list.
9785
9786 * configure.in, acconfig.h:
9787 I18n fixes.
9788
9789 1999-05-30 Jesse Thilo <jthilo@gnu.org>
9790
9791 * doc/FAQ, doc/Makefile.am:
9792 Added a FAQ list.
9793
9794 1999-05-19 Jesse Thilo <jthilo@gnu.org>
9795
9796 * src/alloc.h, src/symtab.h, src/version.c:
9797 Protected inclusion of "config.h" with HAVE_CONFIG_H.
9798
9799 1999-04-18 Jesse Thilo <jthilo@gnu.org>
9800
9801 * src/.cvsignore, src/Makefile.am:
9802 Reorganized: sources in `src', documentation in `doc'.
9803
9804 * src/lex.c (literalchar):
9805 fixed the code for escaping double quotes (thanks
9806 Jonathan Czisny.)
9807
9808 1999-04-18 Jesse Thilo <jthilo@gnu.org>
9809
9810 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
9811 Adjusted paths to reflect directory reorganization.
9812
9813 1999-04-18 Jesse Thilo <jthilo@gnu.org>
9814
9815 * doc/.cvsignore, doc/Makefile.am:
9816 Reorganized: sources in `src', documentation in `doc'.
9817
9818 1999-04-18 Jesse Thilo <jthilo@gnu.org>
9819
9820 * configure.in:
9821 Updated AC_INIT file to reflect directory reorganization.
9822
9823 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
9824 Reorganized: sources in `src', documentation in `doc'.
9825
9826 1999-04-13 Jesse Thilo <jthilo@gnu.org>
9827
9828 * src/allocate.c:
9829 Don't declare calloc() and realloc() if not necessary.
9830
9831 1999-04-13 Jesse Thilo <jthilo@gnu.org>
9832
9833 * configure.in, acconfig.h, acinclude.m4:
9834 Don't declare calloc() and realloc() if not necessary.
9835
9836 1999-03-23 Jesse Thilo <jthilo@gnu.org>
9837
9838 * po/.cvsignore: Added i18n support.
9839
9840 1999-03-23 Jesse Thilo <jthilo@gnu.org>
9841
9842 * acconfig.h, configure.in, Makefile.am:
9843 Added i18n support.
9844
9845 1999-03-22 Jesse Thilo <jthilo@gnu.org>
9846
9847 * src/bison.s1: Fixed #line numbers.
9848
9849 1999-03-15 Jesse Thilo <jthilo@gnu.org>
9850
9851 * po/es.po, po/fr.po, po/nl.po, po/de.po:
9852 Added PO files from Translation Project.
9853
9854 1999-03-03 Jesse Thilo <jthilo@gnu.org>
9855
9856 * Makefile.am:
9857 Added support for non-ANSI compilers (ansi2knr).
9858
9859 1999-02-16 Jesse Thilo <jthilo@gnu.org>
9860
9861 * configure.in: Bumped version number to 1.27.
9862
9863 * Makefile.am:
9864 Added `bison.simple' to list of files removed by `make distclean'.
9865
9866 1999-02-12 Jesse Thilo <jthilo@gnu.org>
9867
9868 * src/files.c, src/files.h:
9869 Defined locations of parser files in config.h instead of Makefile.
9870
9871 1999-02-12 Jesse Thilo <jthilo@gnu.org>
9872
9873 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
9874 Defined locations of parser files in config.h instead of Makefile.
9875
9876 1999-02-09 Jesse Thilo <jthilo@gnu.org>
9877
9878 * Makefile.am:
9879 Removed inappropriate use of $< macro.
9880
9881 1999-02-05 Jesse Thilo <jthilo@gnu.org>
9882
9883 * po/Makefile.in.in, po/POTFILES.in:
9884 Add `po' directory skeleton.
9885
9886 1999-01-27 Jesse Thilo <jthilo@gnu.org>
9887
9888 * README: Document help-bison list.
9889
9890 * configure.in: Add check for mkstemp().
9891
9892 1999-01-20 Jesse Thilo <jthilo@gnu.org>
9893
9894 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
9895 Hush a few compiler warnings.
9896
9897 * src/files.c:
9898 Add tryclose(), which verifies that fclose was successful.
9899 Hush a couple of compiler warnings.
9900
9901 1999-01-20 Jesse Thilo <jthilo@gnu.org>
9902
9903 * Makefile.am, OChangeLog:
9904 ChangeLog is now automatically generated. Include the old version as
9905 OChangeLog.
9906
9907 1999-01-14 Jesse Thilo <jthilo@gnu.org>
9908
9909 * src/gram.h, src/lalr.c, src/lex.c, src/lex.h, src/machine.h, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/state.h, src/symtab.c, src/symtab.h, src/types.h, src/vmsgetargs.c, src/warshall.c, src/allocate.c, src/alloc.h, src/bison.s1, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/files.h, src/getargs.c, src/gram.c, src/LR0.c:
9910 Update FSF address.
9911
9912 1999-01-14 Jesse Thilo <jthilo@gnu.org>
9913
9914 * doc/bison.texinfo: Fix formatting glitch.
9915
9916 * doc/bison.texinfo: Update FSF address.
9917
9918 1999-01-14 Jesse Thilo <jthilo@gnu.org>
9919
9920 * acconfig.h: Update FSF address.
9921
9922 1999-01-08 Jesse Thilo <jthilo@gnu.org>
9923
9924 * src/system.h:
9925 Don't define PACKAGE here, since config.h defines it.
9926
9927 1998-12-30 Jesse Thilo <jthilo@gnu.org>
9928
9929 * src/reader.c: Update copyright date.
9930
9931 * src/main.c:
9932 Ditch sprintf to statically-sized buffers in fatal/warn functions in
9933 favor of output directly to stderr (avoids buffer overruns).
9934
9935 * src/reader.c: Some checks for premature EOF.
9936
9937 * src/allocate.c, src/alloc.h, src/closure.c, src/conflicts.c, src/derives.c, src/getargs.c, src/gram.c, src/lalr.c, src/lex.c, src/LR0.c, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reduce.c, src/symtab.c, src/symtab.h, src/warshall.c:
9938 Use prototypes if the compiler understands them.
9939
9940 * src/files.c: Honor TMPDIR on Unix hosts.
9941 Use prototypes if the compiler understands them.
9942
9943 * src/reader.c:
9944 Fix a couple of buffer overrun bugs.
9945 Use prototypes if the compiler understands them.
9946
9947 * src/system.h: Include unistd.h and ctype.h.
9948 Use #ifdef instead of #if for NLS symbols.
9949
9950 1998-12-30 Jesse Thilo <jthilo@gnu.org>
9951
9952 * doc/bison.texinfo:
9953 Delete comment "consider using @set for edition number, etc..." since
9954 we now are doing so.
9955
9956 1998-12-30 Jesse Thilo <jthilo@gnu.org>
9957
9958 * configure.in:
9959 Use prototypes if the compiler understands them.
9960
9961 * NEWS: Document 1.26 highlights.
9962
9963 * Makefile.am: Require Automake 1.3 or later.
9964
9965 * acconfig.h:
9966 Use prototypes if the compiler understands them.
9967
9968 1998-12-29 Jesse Thilo <jthilo@gnu.org>
9969
9970 * src/version.c:
9971 Use VERSION symbol from automake for version number.
9972
9973 1998-12-29 Jesse Thilo <jthilo@gnu.org>
9974
9975 * acconfig.h, configure.in, version.cin:
9976 Use VERSION symbol from automake for version number.
9977
9978 1998-11-28 Jesse Thilo <jthilo@gnu.org>
9979
9980 * Makefile.am:
9981 Distribute original version of simple parser (bison.s1), not built
9982 version (bison.simple).
9983
9984 1998-11-28 Jesse Thilo <jthilo@gnu.org>
9985
9986 * doc/bison.texinfo: Add info dir entry.
9987
9988 * doc/bison.texinfo:
9989 Let automake put version number into documentation.
9990
9991 1998-11-26 Jesse Thilo <jthilo@gnu.org>
9992
9993 * src/bison.cld, src/build.com, src/vmshlp.mar:
9994 Add non-RCS files from /gd/gnu/bison.
9995
9996 1998-11-26 Jesse Thilo <jthilo@gnu.org>
9997
9998 * doc/bison.1:
9999 Document the BISON_HAIRY and BISON_SIMPLE variables.
10000
10001 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10002
10003 * src/version.c: Build version.c automatically.
10004
10005 * src/reader.c:
10006 Fix token numbering (used to start at 258, not 257).
10007
10008 * src/system.h: Include config.h.
10009
10010 * src/getargs.c: Update bug report address.
10011
10012 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
10013 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
10014
10015 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10016
10017 * Makefile.am:
10018 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10019
10020 * configure.in, version.cin:
10021 Build version.c automatically.
10022
10023 * AUTHORS: Add AUTHORS file.
10024
10025 * README: Update bug report address.
10026
10027 * bison.simple:
10028 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10029
10030 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
10031 Add automake stuff.
10032
10033 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10034
10035 * doc/bison.texinfo: Clean up some formatting.
10036
10037 1998-05-05 Richard Stallman <rms@gnu.org>
10038
10039 * doc/bison.texinfo:
10040 Explain better why to make a pure parser.
10041
10042 1998-01-05 Richard Stallman <rms@gnu.org>
10043
10044 * src/files.c (openfiles):
10045 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
10046 find a temporary directory, if possible. Do not unlink files while
10047 they are open.
10048
10049 1997-08-25 Richard Stallman <rms@gnu.org>
10050
10051 * src/reader.c (stack_offset;):
10052 Change some warni to warns.
10053
10054 * src/lex.c (literalchar): Use warns, not warni.
10055
10056 1997-06-28 Richard Stallman <rms@gnu.org>
10057
10058 * src/bison.s1: Add a Bison version comment.
10059
10060 * src/main.c (fatal, warn, berror):
10061 Use program_name.
10062
10063 1997-06-28 Richard Stallman <rms@gnu.org>
10064
10065 * Makefile.in (bison_version): New variable.
10066 (dist): Use that variable.
10067 (bison.s1): Substitute the Bison version into bison.simple.
10068
10069 * bison.simple: Add a Bison version comment.
10070
10071 1997-06-18 Richard Stallman <rms@gnu.org>
10072
10073 * src/main.c (fatal, warn, berror):
10074 Make error messages standard.
10075 (toomany): Improve error message text.
10076
10077 * src/LR0.c, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/lalr.c, src/lex.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/symtab.c:
10078 new.h renamed to alloc.h.
10079
10080 1997-06-18 Richard Stallman <rms@gnu.org>
10081
10082 * Makefile.in: new.h renamed to alloc.h.
10083
10084 1997-05-24 Richard Stallman <rms@gnu.org>
10085
10086 * src/lex.c (literalchar):
10087 Fix the code for escaping \, " and '.
10088
10089 (lex): Avoid trouble when there are many chars
10090 to discard in a char literal with just several chars in it.
10091
10092 1997-05-17 Richard Stallman <rms@gnu.org>
10093
10094 * src/bison.s1:
10095 Use malloc, if using alloca is troublesome.
10096 (YYSTACK_USE_ALLOCA): New flag macro.
10097 Define it for some systems and compilers.
10098 (YYSTACK_ALLOC): New macro.
10099 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10100 If it was malloc'd, free it.
10101
10102 1997-05-17 Richard Stallman <rms@gnu.org>
10103
10104 * bison.simple:
10105 Use malloc, if using alloca is troublesome.
10106 (YYSTACK_USE_ALLOCA): New flag macro.
10107 Define it for some systems and compilers.
10108 (YYSTACK_ALLOC): New macro.
10109 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10110 If it was malloc'd, free it.
10111
10112 1997-04-23 Richard Stallman <rms@gnu.org>
10113
10114 * src/bison.s1:
10115 (alloca) [__hpux]: Always define as __builtin_alloca.
10116
10117 1997-04-23 Richard Stallman <rms@gnu.org>
10118
10119 * bison.simple:
10120 (alloca) [__hpux]: Always define as __builtin_alloca.
10121
10122 1997-04-22 Richard Stallman <rms@gnu.org>
10123
10124 * src/bison.s1:
10125 [__hpux]: Include alloca.h (right for HPUX 10)
10126 instead of declaring alloca (right for HPUX 9).
10127
10128 * src/bison.s1 (__yy_memcpy):
10129 Declare arg `count' as unsigned int.
10130 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10131
10132 1997-04-22 Richard Stallman <rms@gnu.org>
10133
10134 * bison.simple:
10135 [__hpux]: Include alloca.h (right for HPUX 10)
10136 instead of declaring alloca (right for HPUX 9).
10137
10138 * bison.simple (__yy_memcpy):
10139 Declare arg `count' as unsigned int.
10140 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10141
10142 1997-01-03 Richard Stallman <rms@gnu.org>
10143
10144 * src/allocate.c: [__STDC__ or _MSC_VER]:
10145 Declare calloc and realloc to return void *.
10146
10147 1997-01-02 Richard Stallman <rms@gnu.org>
10148
10149 * src/system.h:
10150 [_MSC_VER]: Include stdlib.h and process.h.
10151 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
10152
10153 * src/main.c (main): Return FAILURE as a value.
10154 (printable_version): Declare arg as int, not char.
10155
10156 1997-01-02 Richard Stallman <rms@gnu.org>
10157
10158 * Makefile.in (dist):
10159 Explicitly check for symlinks, and copy them.
10160
10161 1996-12-19 Richard Stallman <rms@gnu.org>
10162
10163 * src/files.c:
10164 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
10165
10166 1996-12-18 Paul Eggert <eggert@gnu.org>
10167
10168 * src/bison.s1 (yyparse):
10169 If __GNUC__ and YYPARSE_PARAM are both defined,
10170 declare yyparse to have a void * argument.
10171
10172 1996-12-18 Paul Eggert <eggert@gnu.org>
10173
10174 * bison.simple (yyparse):
10175 If __GNUC__ and YYPARSE_PARAM are both defined,
10176 declare yyparse to have a void * argument.
10177
10178 1996-12-17 Richard Stallman <rms@gnu.org>
10179
10180 * src/reduce.c (nbits): Add some casts.
10181
10182 1996-08-12 Richard Stallman <rms@gnu.org>
10183
10184 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
10185
10186 1996-08-12 Richard Stallman <rms@gnu.org>
10187
10188 * bison.simple: Test _MSDOS as well as _MSDOS_.
10189
10190 1996-07-31 Richard Stallman <rms@gnu.org>
10191
10192 * src/bison.s1:
10193 [__sun && __i386]: Include alloca.h.
10194
10195 1996-07-31 Richard Stallman <rms@gnu.org>
10196
10197 * bison.simple:
10198 [__sun && __i386]: Include alloca.h.
10199
10200 1996-07-30 Richard Stallman <rms@gnu.org>
10201
10202 * src/bison.s1: Comment change.
10203
10204 * src/bison.s1: Test _MSDOS_, not MSDOS.
10205
10206 1996-07-30 Richard Stallman <rms@gnu.org>
10207
10208 * bison.simple: Comment change.
10209
10210 * bison.simple: Test _MSDOS_, not MSDOS.
10211
10212 1996-06-01 Richard Stallman <rms@gnu.org>
10213
10214 * src/reduce.c, src/reader.c, src/print.c, src/output.c, src/nullable.c, src/lex.c, src/lalr.c, src/getargs.c, src/derives.c, src/conflicts.c, src/closure.c, src/allocate.c:
10215 Insert `_' macro around many string constants.
10216
10217 * src/main.c:
10218 Insert `_' macro around many string constants.
10219
10220 (main): Call setlocale, bindtextdomain and textdomain.
10221
10222 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
10223 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
10224 [ENABLE_NLS]: Include libintl.h.
10225 [ENABLE_NLS] (gettext): Define.
10226 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
10227 (N_, PACKAGE, LOCALEDIR): New macros.
10228
10229 1996-06-01 Richard Stallman <rms@gnu.org>
10230
10231 * POTFILES.in: New file.
10232
10233 * Makefile.in (allocate.o):
10234 Define target explicitly.
10235
10236 * Makefile.in (CFLAGS): Set to @CFLAGS@.
10237 (LDFLAGS): Set to @LDFLAGS@.
10238 (configure): Run autoconf only if preceding `cd' succeeds.
10239 (bison.s1): Redirect output to temporary file then move the
10240 temporary to the target, rather than redirecting directly to bison.s1.
10241 (clean): Remove config.status and config.log.
10242 (distclean): Don't remove config.status here.
10243
10244 1996-05-12 Richard Stallman <rms@gnu.org>
10245
10246 * src/bison.s1:
10247 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10248
10249 1996-05-12 Richard Stallman <rms@gnu.org>
10250
10251 * bison.simple:
10252 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10253
10254 1996-05-11 Richard Stallman <rms@gnu.org>
10255
10256 * src/bison.s1 (__yy_memcpy):
10257 Really reorder the args, as was supposedly done on Feb 14 1995.
10258 (yyparse): Calls changed accordingly.
10259
10260 1996-05-11 Richard Stallman <rms@gnu.org>
10261
10262 * Makefile.in (dist): Don't use $(srcdir).
10263
10264 * bison.simple (__yy_memcpy):
10265 Really reorder the args, as was supposedly done on Feb 14 1995.
10266 (yyparse): Calls changed accordingly.
10267
10268 1996-01-27 Richard Stallman <rms@gnu.org>
10269
10270 * src/output.c (output_rule_data):
10271 Test YYERROR_VERBOSE in the conditional
10272 around the definition of ttyname.
10273
10274 1995-12-29 Richard Stallman <rms@gnu.org>
10275
10276 * src/bison.s1:
10277 Fix line numbers in #line commands.
10278
10279 1995-12-29 Richard Stallman <rms@gnu.org>
10280
10281 * bison.simple:
10282 Fix line numbers in #line commands.
10283
10284 1995-12-27 Richard Stallman <rms@gnu.org>
10285
10286 * src/bison.s1 (YYPARSE_PARAM_DECL):
10287 In C++, make it always null.
10288 (YYPARSE_PARAM_ARG): New macro.
10289 (yyparse): Use YYPARSE_PARAM_ARG.
10290
10291 1995-12-27 Richard Stallman <rms@gnu.org>
10292
10293 * bison.simple (YYPARSE_PARAM_DECL):
10294 In C++, make it always null.
10295 (YYPARSE_PARAM_ARG): New macro.
10296 (yyparse): Use YYPARSE_PARAM_ARG.
10297
10298 1995-11-29 Richard Stallman <rms@gnu.org>
10299
10300 * doc/bison.texinfo:
10301 Describe literal string tokens, %raw, %no_lines, %token_table.
10302
10303 1995-11-29 Daniel Hagerty <hag@gnu.org>
10304
10305 * doc/bison.texinfo: Fixed update date
10306
10307 1995-10-16 Richard Stallman <rms@gnu.org>
10308
10309 * src/version.c: Version 1.25.
10310
10311 1995-10-16 Richard Stallman <rms@gnu.org>
10312
10313 * NEWS: *** empty log message ***
10314
10315 1995-10-16 Richard Stallman <rms@gnu.org>
10316
10317 * doc/bison.1, doc/bison.rnh:
10318 Add new options.
10319
10320 1995-10-15 Richard Stallman <rms@gnu.org>
10321
10322 * src/vmsgetargs.c, src/getargs.c:
10323 Added -n, -k, and -raw switches.
10324 (noparserflag, toknumflag, rawtoknumflag): New variables.
10325
10326 * src/symtab.h (SALIAS):
10327 New #define for adding aliases to %token.
10328 (struct bucket): Added `alias' field.
10329
10330 * src/reduce.c (reduce_grammar):
10331 Revise error message.
10332 (print_notices): Remove final `.' from error message.
10333
10334 * src/reader.c (reader_output_yylsp):
10335 New function.
10336 (readgram): Use `#if 0' around code that accepted %command
10337 inside grammar rules: The documentation doesn't allow it,
10338 and it will fail since the %command processors scan for the next %.
10339 (parse_token_decl): Extended the %token
10340 declaration to allow a multi-character symbol as an alias.
10341 (parse_thong_decl): New function.
10342 (read_declarations): Added %thong declarations.
10343 (read_declarations): Handle NOOP to deal with allowing
10344 % declarations as another means to specify the flags.
10345 (readgram): Allow %prec prior to semantics embedded in a rule.
10346 (skip_to_char, read_declarations, copy_definition)
10347 (parse_token_decl, parse_start_decl, parse_type_decl)
10348 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
10349 (get_type_name, copy_guard, copy_action, readgram)
10350 (get_type, packsymbols): Revised most error messages.
10351 Changed `fatal' to `warnxxx' to avoid aborting for error.
10352 Revised and use multiple warnxxx functions to avoid using VARARGS1.
10353 (read_declarations): Improve the error message for
10354 an invalid character. Do not abort.
10355 (read_declarations, copy_guard, copy_action): Use
10356 printable_version to avoid unprintable characters in printed output.
10357 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
10358 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
10359 Allow the type of a non-terminal can be given
10360 more than once, as long as all specifications give the same type.
10361
10362 * src/output.c:
10363 (output_headers, output_trailers, output, output_gram)
10364 (output_rule_data): Implement noparserflag variable.
10365 Implement toknumflag variable.
10366 (output): Call reader_output_yylsp to output LTYPESTR.
10367
10368 * src/main.c (main):
10369 If reader sees an error, don't process the grammar.
10370 (fatals): Updated to not use VARARGS1.
10371 (printable_version, int_to_string, warn, warni, warns, warnss)
10372 (warnsss): New error reporting functions. Avoid abort for error.
10373
10374 * src/lex.h:
10375 Added THONG and NOOP for alias processing.
10376 Added SETOPT for the new code that allows setting options with %flags.
10377
10378 * src/lex.c:
10379 Include getopt.h. Add some extern decls.
10380 (safegetc): New function to deal with EOF gracefully.
10381 (literalchar); new function to deal with reading \ escapes.
10382 (lex): Use literalchar.
10383 (lex): Implemented "..." tokens.
10384 (literalchar, lex, parse_percent_token): Made tokenbuffer
10385 always contain the token. This includes growing the token
10386 buffer while reading an integer.
10387 (parse_percent_token): Replaced if-else statement with percent_table.
10388 (parse_percent_token): Added % declarations as another
10389 way to specify the flags -n, -l, and -r. Also added hooks for
10390 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
10391 major changes to files.c.
10392 (lex) Retain in the incoming stream a character following
10393 an incorrect '/'.
10394 (skip_white_space, lex): Revised most error messages
10395 and changed fatal to warn to avoid aborting.
10396 (percent_table): Added %thong declarations.
10397
10398 * src/gram.h: Comment changes.
10399
10400 * src/files.c (openfiles, open_extra_files, done):
10401 Add faction flag
10402 and actfile file. Handle noparserflag. Both for -n switch.
10403
10404 * src/conflicts.c (resolve_sr_conflict):
10405 Remove use of alloca.
10406
10407 1995-06-01 Jim Meyering <meyering@gnu.org>
10408
10409 * doc/bison.texinfo: *** empty log message ***
10410
10411 1995-05-06 Richard Stallman <rms@gnu.org>
10412
10413 * src/bison.s1: Comment change.
10414
10415 1995-05-06 Richard Stallman <rms@gnu.org>
10416
10417 * bison.simple: Comment change.
10418
10419 1995-05-03 Richard Stallman <rms@gnu.org>
10420
10421 * src/version.c: Version now 1.24.
10422
10423 * src/bison.s1: Change distribution terms.
10424
10425 * src/version.c: Version now 1.23.
10426
10427 1995-05-03 Richard Stallman <rms@gnu.org>
10428
10429 * doc/bison.texinfo:
10430 Rewrite "Conditions for Using Bison".
10431 Update version to 1.24.
10432
10433 1995-05-03 Richard Stallman <rms@gnu.org>
10434
10435 * bison.simple: Change distribution terms.
10436
10437 1995-02-23 Richard Stallman <rms@gnu.org>
10438
10439 * src/files.c: Test __VMS_POSIX as well as VMS.
10440
10441 1995-02-14 Jim Meyering <meyering@gnu.org>
10442
10443 * src/bison.s1 (__yy_memcpy):
10444 Renamed from __yy_bcopy to avoid
10445 confusion. Reverse FROM and TO arguments to be consistent with
10446 those of memcpy.
10447
10448 1995-02-14 Jim Meyering <meyering@gnu.org>
10449
10450 * bison.simple (__yy_memcpy):
10451 Renamed from __yy_bcopy to avoid
10452 confusion. Reverse FROM and TO arguments to be consistent with
10453 those of memcpy.
10454
10455 1994-11-10 David J. MacKenzie <djm@gnu.org>
10456
10457 * NEWS: reformat
10458
10459 * NEWS: New file.
10460
10461 * Makefile.in (DISTFILES): Include NEWS.
10462
10463 * Makefile.in (DISTFILES):
10464 Include install-sh, not install.sh.
10465
10466 * configure.in: Update to Autoconf v2 macro names.
10467
10468 1994-10-05 David J. MacKenzie <djm@gnu.org>
10469
10470 * Makefile.in: fix typo
10471
10472 * Makefile.in (prefix, exec_prefix):
10473 Let configure set them.
10474
10475 1994-09-28 David J. MacKenzie <djm@gnu.org>
10476
10477 * Makefile.in: Set datadir to $(prefix)/share.
10478
10479 1994-09-15 Richard Stallman <rms@gnu.org>
10480
10481 * src/bison.s1:
10482 Update copyright notice and GPL version.
10483
10484 1994-09-15 Richard Stallman <rms@gnu.org>
10485
10486 * bison.simple:
10487 Update copyright notice and GPL version.
10488
10489 1994-07-12 Richard Stallman <rms@gnu.org>
10490
10491 * src/reduce.c, src/reader.c:
10492 entered into RCS
10493
10494 1994-05-05 David J. MacKenzie <djm@gnu.org>
10495
10496 * Makefile.in: entered into RCS
10497
10498 1994-03-26 Richard Stallman <rms@gnu.org>
10499
10500 * src/bison.s1: entered into RCS
10501
10502 1994-03-26 Richard Stallman <rms@gnu.org>
10503
10504 * bison.simple: entered into RCS
10505
10506 1994-03-25 Richard Stallman <rms@gnu.org>
10507
10508 * src/main.c: entered into RCS
10509
10510 1994-03-24 Richard Stallman <rms@gnu.org>
10511
10512 * src/conflicts.c: entered into RCS
10513
10514 1994-01-02 Richard Stallman <rms@gnu.org>
10515
10516 * Makefile.in: *** empty log message ***
10517
10518 1993-11-21 Richard Stallman <rms@gnu.org>
10519
10520 * src/bison.s1: *** empty log message ***
10521
10522 1993-11-21 Richard Stallman <rms@gnu.org>
10523
10524 * doc/bison.texinfo: entered into RCS
10525
10526 * doc/bison.texinfo: *** empty log message ***
10527
10528 1993-11-21 Richard Stallman <rms@gnu.org>
10529
10530 * bison.simple: *** empty log message ***
10531
10532 1993-10-25 David J. MacKenzie <djm@gnu.org>
10533
10534 * doc/bison.texinfo: *** empty log message ***
10535
10536 1993-10-19 Richard Stallman <rms@gnu.org>
10537
10538 * src/bison.s1: *** empty log message ***
10539
10540 1993-10-19 Richard Stallman <rms@gnu.org>
10541
10542 * bison.simple: *** empty log message ***
10543
10544 1993-10-14 Richard Stallman <rms@gnu.org>
10545
10546 * src/bison.s1: *** empty log message ***
10547
10548 1993-10-14 Richard Stallman <rms@gnu.org>
10549
10550 * bison.simple: *** empty log message ***
10551
10552 1993-09-14 David J. MacKenzie <djm@gnu.org>
10553
10554 * doc/bison.texinfo: *** empty log message ***
10555
10556 1993-09-13 Noah Friedman <friedman@gnu.org>
10557
10558 * Makefile.in: *** empty log message ***
10559
10560 1993-09-10 Richard Stallman <rms@gnu.org>
10561
10562 * src/conflicts.c: *** empty log message ***
10563
10564 * src/system.h: entered into RCS
10565
10566 1993-09-10 Richard Stallman <rms@gnu.org>
10567
10568 * doc/bison.1: entered into RCS
10569
10570 1993-09-06 Noah Friedman <friedman@gnu.org>
10571
10572 * src/version.c: entered into RCS
10573
10574 1993-09-06 Noah Friedman <friedman@gnu.org>
10575
10576 * Makefile.in: *** empty log message ***
10577
10578 1993-07-30 David J. MacKenzie <djm@gnu.org>
10579
10580 * Makefile.in: *** empty log message ***
10581
10582 1993-07-24 Richard Stallman <rms@gnu.org>
10583
10584 * src/bison.s1: *** empty log message ***
10585
10586 1993-07-24 Richard Stallman <rms@gnu.org>
10587
10588 * bison.simple: *** empty log message ***
10589
10590 1993-07-08 David J. MacKenzie <djm@gnu.org>
10591
10592 * Makefile.in: *** empty log message ***
10593
10594 1993-07-04 Richard Stallman <rms@gnu.org>
10595
10596 * src/bison.s1: *** empty log message ***
10597
10598 1993-07-04 Richard Stallman <rms@gnu.org>
10599
10600 * bison.simple: *** empty log message ***
10601
10602 1993-06-26 David J. MacKenzie <djm@gnu.org>
10603
10604 * src/getargs.c: entered into RCS
10605
10606 1993-06-26 David J. MacKenzie <djm@gnu.org>
10607
10608 * doc/bison.texinfo: *** empty log message ***
10609
10610 * doc/bison.1: New file.
10611
10612 1993-06-25 Richard Stallman <rms@gnu.org>
10613
10614 * src/getargs.c: New file.
10615
10616 1993-06-16 Richard Stallman <rms@gnu.org>
10617
10618 * src/bison.s1: *** empty log message ***
10619
10620 1993-06-16 Richard Stallman <rms@gnu.org>
10621
10622 * bison.simple: *** empty log message ***
10623
10624 1993-06-03 Richard Stallman <rms@gnu.org>
10625
10626 * src/bison.s1: New file.
10627
10628 1993-06-03 Richard Stallman <rms@gnu.org>
10629
10630 * doc/bison.texinfo: *** empty log message ***
10631
10632 1993-06-03 Richard Stallman <rms@gnu.org>
10633
10634 * bison.simple: New file.
10635
10636 1993-05-19 Richard Stallman <rms@gnu.org>
10637
10638 * doc/bison.texinfo: New file.
10639
10640 1993-05-07 Noah Friedman <friedman@gnu.org>
10641
10642 * Makefile.in: *** empty log message ***
10643
10644 1993-04-28 Noah Friedman <friedman@gnu.org>
10645
10646 * src/reader.c: *** empty log message ***
10647
10648 1993-04-23 Noah Friedman <friedman@gnu.org>
10649
10650 * src/alloc.h: entered into RCS
10651
10652 1993-04-20 David J. MacKenzie <djm@gnu.org>
10653
10654 * src/version.c: *** empty log message ***
10655
10656 * src/files.c, src/allocate.c:
10657 entered into RCS
10658
10659 * src/reader.c: *** empty log message ***
10660
10661 * src/lex.c: entered into RCS
10662
10663 * src/conflicts.c: New file.
10664
10665 * src/symtab.c: entered into RCS
10666
10667 * src/alloc.h: New file.
10668
10669 * src/LR0.c: entered into RCS
10670
10671 1993-04-18 Noah Friedman <friedman@gnu.org>
10672
10673 * src/reader.c: New file.
10674
10675 * src/version.c: *** empty log message ***
10676
10677 1993-04-18 Noah Friedman <friedman@gnu.org>
10678
10679 * Makefile.in: *** empty log message ***
10680
10681 1993-04-17 Noah Friedman <friedman@gnu.org>
10682
10683 * Makefile.in: *** empty log message ***
10684
10685 1993-04-15 Richard Stallman <rms@gnu.org>
10686
10687 * src/main.c, src/files.c:
10688 New file.
10689
10690 1993-04-15 Noah Friedman <friedman@gnu.org>
10691
10692 * configure.in: entered into RCS
10693
10694 * configure.in: *** empty log message ***
10695
10696 * configure.in: New file.
10697
10698 1993-04-14 Richard Stallman <rms@gnu.org>
10699
10700 * Makefile.in: New file.
10701
10702 1993-04-13 Richard Stallman <rms@gnu.org>
10703
10704 * src/version.c: New file.
10705
10706 1993-03-25 Richard Stallman <rms@gnu.org>
10707
10708 * src/output.c: entered into RCS
10709
10710 1992-09-25 Richard Stallman <rms@gnu.org>
10711
10712 * configure.bat: entered into RCS
10713
10714 1992-06-22 Richard Stallman <rms@gnu.org>
10715
10716 * src/vmsgetargs.c: entered into RCS
10717
10718 1992-06-22 Richard Stallman <rms@gnu.org>
10719
10720 * doc/bison.rnh: entered into RCS
10721
10722 1992-04-20 David J. MacKenzie <djm@gnu.org>
10723
10724 * README: entered into RCS
10725
10726 1992-01-22 Richard Stallman <rms@gnu.org>
10727
10728 * src/machine.h: entered into RCS
10729
10730 1991-12-21 Richard Stallman <rms@gnu.org>
10731
10732 * src/lalr.c, src/closure.c:
10733 entered into RCS
10734
10735 1991-12-20 Richard Stallman <rms@gnu.org>
10736
10737 * src/state.h: entered into RCS
10738
10739 1991-12-18 Richard Stallman <rms@gnu.org>
10740
10741 * src/print.c, src/nullable.c, src/derives.c:
10742 entered into RCS
10743
10744 1991-11-03 David J. MacKenzie <djm@gnu.org>
10745
10746 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
10747 entered into RCS
10748
10749 1988-09-09 Richard Stallman <rms@gnu.org>
10750
10751 * src/bison.hairy: entered into RCS
10752
10753 1987-12-16 Richard Stallman <rms@gnu.org>
10754
10755 * REFERENCES: entered into RCS
10756
10757 -----
10758
10759 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
10760 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
10761
10762 This file is part of Bison, the GNU Compiler Compiler.
10763
10764 Bison is free software; you can redistribute it and/or modify
10765 it under the terms of the GNU General Public License as published by
10766 the Free Software Foundation; either version 2, or (at your option)
10767 any later version.
10768
10769 Bison is distributed in the hope that it will be useful,
10770 but WITHOUT ANY WARRANTY; without even the implied warranty of
10771 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10772 GNU General Public License for more details.
10773
10774 You should have received a copy of the GNU General Public License
10775 along with Bison; see the file COPYING. If not, write to
10776 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
10777 Boston, MA 02111-1307, USA.