1 2002-03-04 Akim Demaille <akim@epita.fr>
3 * src/print.c: Convert to use bitset.h, not hand coded iterations
7 2002-03-04 Akim Demaille <akim@epita.fr>
9 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
11 2002-03-04 Akim Demaille <akim@epita.fr>
13 * src/closure.c (ruleset): Be a bitset.
14 (rulesetsize): Remove.
17 2002-03-04 Akim Demaille <akim@epita.fr>
19 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
20 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
21 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
22 * src/closure.c (fderives): Be an array of bitsets.
24 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
26 * data/bison.c++: Merge the two generated headers. Insert a copyright
27 notice in each output file.
29 2002-02-28 Akim Demaille <akim@epita.fr>
31 * data/bison.c++: Copy the prologue of bison.simple to fetch
32 useful M4 definitions, such as b4_header_guard.
34 2002-02-25 Akim Demaille <akim@epita.fr>
36 * src/getargs.c (version): Give the name of the authors, and use a
37 translator friendly scheme for the bgr
40 2002-02-25 Akim Demaille <akim@epita.fr>
42 * src/output.c (header_output): Remove, now handled completely via
45 2002-02-25 Akim Demaille <akim@epita.fr>
47 * m4/m4.m4: New, from CVS Autoconf.
48 * configure.in: Invoke it.
49 * src/output.c (output_skeleton): Use its result instead of the
52 2002-02-25 Akim Demaille <akim@epita.fr>
54 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
56 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
57 * src/output.c (output_skeleton): Use mkstemp to create a real
59 Move the filling of `skeleton' and its muscle to...
61 (output): Move the definition of the prologue muscle to...
63 * src/system.h (DEFAULT_TMPDIR): New.
65 2002-02-14 Paul Eggert <eggert@twinsun.com>
67 Remove the support for C++ namespace cleanliness; it was
68 causing more problems than it was curing, since it didn't work
69 properly on some nonstandard C++ compilers. This can wait
70 for a proper C++ parser.
72 * NEWS: Document this.
73 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
74 of C++, as it's treated like C now.
75 * src/bison.simple (YYSTD): Remove.
76 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
77 Treat C++ just like Standard C instead of trying to support
78 namespace cleanliness.
80 2002-02-14 Akim Demaille <akim@epita.fr>
82 * tests/regression.at (else): Adjust to Andreas' change.
84 2002-02-14 Akim Demaille <akim@epita.fr>
86 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
88 2002-02-13 Andreas Schwab <schwab@suse.de>
90 * src/output.c (output_rule_data): Don't output NULL, it might
93 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
95 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
96 (Copyright notice): Update.
98 2002-02-11 Akim Demaille <akim@epita.fr>
100 * tests/regression.at (%nonassoc and eof): Don't include
103 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
105 * data/bison.c++: Correct error recovery. Make the user able to
106 initialize the starting location.
108 2002-02-07 Akim Demaille <akim@epita.fr>
110 * tests/input.at: New.
112 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
114 * data/bison.c++: Replace some direct m4 expansions by constants. Be
115 more consistent when naming methods and variables. Put preprocessor
116 directives around tables only needed for debugging.
118 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
120 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
122 (yy::b4_name::parse): Use print_.
124 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
126 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
128 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
130 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
132 (yy::b4_name::parse): Build verbose error messages, and use error_.
134 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
136 * data/bison.c++: Fix m4 quoting in comments.
138 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
140 * data/bison.c++: Adjust the parser code. Fix some muscles that were
143 2002-02-05 Akim Demaille <akim@epita.fr>
145 * data/bison.c++: Adjust to the M4 back end.
146 More is certainly needed.
148 2002-02-05 Akim Demaille <akim@epita.fr>
150 Give a try to M4 as a back end.
152 * lib/readpipe.c: New, from wdiff.
153 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
155 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
156 specific values. Now it is m4 that performs the lookup.
157 * src/parse-skel.y: Remove.
158 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
159 * src/output.c (actions_output, guards_output)
160 (token_definitions_output): No longer keeps track of the output
161 line number, hence remove the second argument.
162 (guards_output): Check against the guard member of a rule, not the
165 (output_skeleton): Don't look for the skeleton location, let m4 do
167 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
169 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
170 (prepare): Given that for the time being changesyntax is not
171 usable in M4, rename the muscles using `-' to `_'.
172 Define `defines_flag', `output_parser_name' and `output_header_name'.
173 * src/output.h (actions_output, guards_output)
174 (token_definitions_output): Adjust prototypes.
175 * src/scan-skel.l: Instead of scanning the skeletons, it now
176 processes the output of m4: `__oline__' and `#output'.
177 * data/bison.simple: Adjust to be used by M4(sugar).
178 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
180 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
181 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
182 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
183 shamelessly stolen from CVS Autoconf.
185 2002-02-05 Akim Demaille <akim@epita.fr>
187 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
188 * configure.in: Check for the declarations of free and malloc.
189 * src/muscle_tab.c: Adjust.
191 2002-02-05 Akim Demaille <akim@epita.fr>
193 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
194 which have no values.
196 2002-02-05 Akim Demaille <akim@epita.fr>
198 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
201 2002-01-29 Paul Eggert <eggert@twinsun.com>
203 * src/bison.simple (YYSIZE_T): Do not define merely because
204 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
205 On some platforms, <alloca.h> does not declare YYSTD (size_t).
207 2002-01-27 Akim Demaille <akim@epita.fr>
209 Fix `%nonassoc and eof'.
211 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
212 which were not properly copied! Replace
213 memcpy (res->errs, src->errs, src->nerrs);
215 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
217 * tests/regression.at (%nonassoc and eof): Adjust to newest
218 Autotest: `.' is not in the PATH.
220 2002-01-27 Akim Demaille <akim@epita.fr>
222 * tests/sets.at (AT_EXTRACT_SETS): New.
226 2002-01-26 Akim Demaille <akim@epita.fr>
228 * tests/actions.at, tests/calc.at, tests/headers.at,
229 * tests/torture.at: Adjust to the newest Autotest which no longer
230 forces `.' in the PATH.
232 2002-01-25 Akim Demaille <akim@epita.fr>
234 * tests/regression.at (%nonassoc and eof): New.
235 Suggested by Robert Anisko.
237 2002-01-24 Akim Demaille <akim@epita.fr>
239 Bison dumps core when trying to complain about broken input files.
240 Reported by Cris van Pelt.
242 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
243 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
245 (Invalid inputs): Strengthen: exercise parse_percent_token.
247 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
249 * src/Makefile.am: Add bison.c++.
250 * src/bison.c++: New skeleton.
252 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
256 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
258 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
260 2002-01-20 Marc Autret <marc@gnu.org>
262 * src/files.c (compute_output_file_names): Fix
264 2002-01-20 Marc Autret <marc@gnu.org>
266 * tests/output.at: New test.
267 * src/files.c (compute_base_names): Don't map extensions when
268 the YACC flag is set, use defaults.
269 Reported by Evgeny Stambulchik.
271 2002-01-20 Marc Autret <marc@gnu.org>
273 * src/system.h: Need to define __attribute__ away for non-GCC
274 compilers as well (i.e. the vendor C compiler).
275 Suggested by Albert Chin-A-Young.
277 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
279 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
280 canonical definition.
281 * src/system.h: Use the canonical definition for PARAMS (avoids
282 a conflict with the macro from lib/hash.h).
284 2002-01-11 Akim Demaille <akim@epita.fr>
286 * configure.in: Use AC_FUNC_STRNLEN.
287 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
289 2002-01-09 Akim Demaille <akim@epita.fr>
291 * src/files.c, src/files.h (output_infix): New.
292 (tab_extension): Remove.
293 (compute_base_names): Compute the former, drop the latter.
294 * src/output.c (prepare): Insert the muscles `output-infix', and
296 * src/parse-skel.y (string, string.1): New.
297 (section.header): Use it.
298 (section.yacc): Remove.
299 (prefix): Remove too.
300 * src/scan-skel.l: Adjust.
301 * src/bison.simple, src/bison.hairy: Adjust.
303 2002-01-09 Akim Demaille <akim@epita.fr>
305 * configure.in (WERROR_CFLAGS): Compute it.
306 * src/Makefile.am (CFLAGS): Pass it.
307 * tests/atlocal.in (CFLAGS): Idem.
308 * src/files.c: Fix a few warnings.
309 (get_extension_index): Remove, unused.
311 2002-01-08 Akim Demaille <akim@epita.fr>
313 * src/getargs.c (AS_FILE_NAME): New.
314 (getargs): Use it to convert DOSish file names.
315 * src/files.c (base_name): Rename as full_base_name to avoid
316 clashes with `base_name ()'.
317 (filename_split): New.
318 (compute_base_names): N-th rewrite, using filename_split.
320 2002-01-08 Akim Demaille <akim@epita.fr>
322 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
323 New, stolen from the Fileutils 4.1.
324 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
325 * configure.in: Check for the presence of memrchr, and of its
328 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
330 * lib/hash.h (__P): Added definition for this macro.
331 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
332 BUILT_SOURCES, to ensure they are generated first.
333 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
334 %error-verbose to allow bootstrapping with bison 1.30x.
336 2002-01-06 Akim Demaille <akim@epita.fr>
338 * src/reader.c (parse_braces): Don't fetch the next char, the
339 convention is to fetch on entry.
340 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
341 'switch' without a following semicolon.
342 * tests/regression.at (braces parsing): New.
344 2002-01-06 Akim Demaille <akim@epita.fr>
346 Bison is dead wrong in its RR conflict reports.
348 * tests/torture.at (GNU Cim Grammar): New.
349 * src/conflicts.c (count_rr_conflicts): Fix.
351 2002-01-06 Akim Demaille <akim@epita.fr>
353 Creating package.m4 from configure.ac causes too many problems.
355 * tests/Makefile.am (package.m4): Create it by hand,
356 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
358 2002-01-06 Akim Demaille <akim@epita.fr>
360 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
363 2002-01-04 Paul Eggert <eggert@twinsun.com>
365 * doc/bison.texinfo (Debugging):
366 Remove YYSTDERR; it's no longer defined or used.
367 Also, s/cstdio.h/cstdio/.
369 2002-01-03 Akim Demaille <akim@epita.fr>
371 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
373 2002-01-03 Akim Demaille <akim@epita.fr>
375 * src/parse-skel.y (process_skeleton): Don't bind the parser's
376 tracing code to --trace, wait for a better --trace option, with
379 2002-01-03 Akim Demaille <akim@epita.fr>
381 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
382 The ISO C++ standard is extremely clear about it: stderr is
383 considered a macro, not a regular symbol (see table 94 `Header
384 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
385 Therefore std:: does not apply to it. It still does with fprintf.
386 Also, s/cstdio.h/cstdio/.
388 2002-01-03 Akim Demaille <akim@epita.fr>
390 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
391 for non system headers.
393 2002-01-02 Akim Demaille <akim@epita.fr>
395 Equip the skeleton chain with location tracking, runtime trace,
396 pure parser and scanner.
398 * src/parse-skel.y: Request a pure parser, locations, and prefix
400 (%union): Having several members with the same type does not help
401 type mismatches, simplify.
402 (YYPRINT, yyprint): New.
403 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
406 * src/scan-skel.l: Adjust to these changes.
407 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
408 (LOCATION_PRINT, skel_control_t): New.
410 2001-12-30 Akim Demaille <akim@epita.fr>
412 * src/parse-skel.y: Get rid of the shift/reduce conflict:
413 replace `gb' with BLANKS.
414 * src/scan-skel.l: Adjust.
416 2001-12-30 Akim Demaille <akim@epita.fr>
418 * src/system.h: We don't need nor want bcopy.
419 Throw away MS-DOS crap: we don't need getpid.
420 * configure.in: We don't need strndup. It was even causing
421 problems: because Flex includes the headers *before* us,
422 _GNU_SOURCE is not defined by config.h, and therefore strndup was
424 * lib/xstrndup.c: New.
425 * src/scan-skel.l: Use it.
426 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
427 * src/parse-skel.y: Use %directives instead of #defines.
429 2001-12-30 Akim Demaille <akim@epita.fr>
431 * src/skeleton.h: New.
432 * src/output.c (output_parser, output_master_parser): Remove, dead
434 * src/output.h (get_lines_number, actions_output, guards_output)
435 (token_definitions_output): Prototype them.
436 * src/parse-skel.y: Add the license notice.
437 Include output.h and skeleton.h.
438 (process_skeleton): Returns void, and takes a single parameter.
439 * src/scan-skel.l: Add the license notice.
441 Don't use %option yylineno: it seems that then Flex imagines
442 REJECT has been used, and therefore it won't reallocate its
443 buffers (which makes no other sense to me than a bug). It results
444 in warnings for `unused: yy_flex_realloc'.
446 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
448 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
449 (MUSCLE_INSERT_PREFIX): ...to there.
450 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
451 (MUSCLE_INSERT_PREFIX): Move from here...
453 * src/bison.hairy: Add a section directive. Put braces around muscle
454 names. This parser skeleton is still broken, but Bison should not
455 choke on a bad muscle 'syntax'.
456 * src/bison.simple: Add a section directive. Put braces around muscle
459 * src/files.h (strsuffix, stringappend): Add declarations.
460 (tab_extension): Add declaration.
461 (short_base_name): Add declaration.
463 * src/files.c (strsuffix, stringappend): No longer static. These
464 functions are used in the skeleton parser.
465 (tab_extension): New.
466 (compute_base_names): Use the computations done in this function
467 to guess if the generated parsers should have '.tab' in their
469 (short_base_name): No longer static.
471 * src/output.c (output_skeleton): New.
472 (output): Disable call to output_master_parser, and give a try to
473 a new skeleton handling system.
474 (guards_output, actions_output): No longer static.
475 (token_definitions_output, get_lines_number): No longer static.
477 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
479 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
482 * src/parse-skel.y: New file.
483 * src/scan-skel.l: New file.
485 2001-12-29 Akim Demaille <akim@epita.fr>
487 %name-prefix is broken.
489 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
490 Adjust all dependencies.
491 * tests/headers.at (export YYLTYPE): Strengthen this test: use
494 Renaming yylval but not yylloc is not consistent. Now we do.
496 * src/bison.simple: Prefix yylloc if used.
497 * doc/bison.texinfo (Decl Summary): Document that.
499 2001-12-29 Akim Demaille <akim@epita.fr>
501 * doc/bison.texinfo: Promote `%long-directive' over
503 Remove all references to fixed-output-files, yacc is enough.
505 2001-12-29 Akim Demaille <akim@epita.fr>
507 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
508 user prologue. These are defaults.
509 * tests/actions.at (Mid-rule actions): Make sure the user can
510 define YYDEBUG and YYERROR_VERBOSE.
512 2001-12-29 Akim Demaille <akim@epita.fr>
514 * src/output.c (header_output): Don't forget to export YYLTYPE and
516 * tests/headers.at (export YYLTYPE): New, make sure it does.
517 * tests/regression.at (%union and --defines, Invalid CPP headers):
519 * tests/headers.at: here.
521 2001-12-29 Akim Demaille <akim@epita.fr>
523 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
525 2001-12-29 Akim Demaille <akim@epita.fr>
527 * tests/actions.at (Mid-rule actions): Output on a single line
530 2001-12-29 Akim Demaille <akim@epita.fr>
532 * doc/bison.texinfo: Formatting changes.
534 2001-12-29 Akim Demaille <akim@epita.fr>
536 Don't store the token defs in a muscle, just be ready to output it
537 on command. Now possible via `symbols'. Fixes a memory leak.
539 * src/output.c (token_definitions_output): New.
540 (output_parser, header_output): Use it.
541 * src/reader.c (symbols_save): Remove.
543 2001-12-29 Akim Demaille <akim@epita.fr>
545 * src/bison.simple: Do not provide a default for YYSTYPE and
546 YYLTYPE before the user's prologue. Otherwise it's hardly... a
549 2001-12-29 Akim Demaille <akim@epita.fr>
551 Mid-rule actions are simply... ignored!
553 * src/reader.c (readgram): Be sure to attach mid-rule actions to
554 the empty-rule associated to the dummy symbol, not to the host
556 * tests/actions.at (Mid-rule actions): New.
558 2001-12-29 Akim Demaille <akim@epita.fr>
562 * src/reader.c (reader): Free grammar.
564 2001-12-29 Akim Demaille <akim@epita.fr>
568 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
569 since it allocates it for each state, although only one is needed.
570 (allocate_storage): Do it here.
572 2001-12-29 Akim Demaille <akim@epita.fr>
574 * src/options.h, src/options.c (create_long_option_table): Rename
576 (long_option_table_new): this, with a clearer prototype.
577 (percent_table): Remove, unused,
578 * src/getargs.c (getargs): Adjust.
580 2001-12-29 Akim Demaille <akim@epita.fr>
582 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
583 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
586 2001-12-29 Akim Demaille <akim@epita.fr>
588 * src/lalr.c (build_relations): Rename `states' as `states1'.
589 Sorry, I don't understand exactly what it is, no better name...
591 2001-12-29 Akim Demaille <akim@epita.fr>
593 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
594 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
595 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
598 2001-12-29 Akim Demaille <akim@epita.fr>
600 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
603 2001-12-29 Akim Demaille <akim@epita.fr>
605 * src/reader.c, src/reader.h (user_toknums): Remove.
606 Adjust all users to use symbols[i]->user_token_number.
608 2001-12-29 Akim Demaille <akim@epita.fr>
610 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
611 Adjust all users to use symbols[i]->prec or ->assoc.
613 2001-12-29 Akim Demaille <akim@epita.fr>
615 * src/reader.c, src/reader.h (tags): Remove.
616 Adjust all users to use symbols[i]->tag.
618 2001-12-29 Akim Demaille <akim@epita.fr>
620 * src/gram.h, src/gram.c (symbols): New, similar to state_table
622 * src/reader.c (packsymbols): Fill this table.
624 * src/conflicts.c (resolve_sr_conflict): Adjust.
625 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
627 Use symbols[i]->tag instead of tags[i].
629 2001-12-29 Akim Demaille <akim@epita.fr>
631 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
632 In addition, put a comment in there, to replace...
633 * tests/regression.at (%union and C comments): Remove.
635 2001-12-29 Akim Demaille <akim@epita.fr>
637 * tests/regression.at (Web2c Actions): Blindly move the actual
638 output as expected output. The contents *seem* right to me, but I
639 can't pretend reading perfectly parser tables... Nonetheless, all
640 the other tests pass correctly, the table look OK, even though the
641 presence of `$axiom' is to be noted: AFAICS it is useless (but
644 2001-12-29 Akim Demaille <akim@epita.fr>
646 * src/reader.c (readgram): Don't add the rule 0 if there were no
647 rules read. In other words, add it _after_ having performed
648 grammar sanity checks.
649 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
651 2001-12-29 Akim Demaille <akim@epita.fr>
653 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
654 visible, and some states have now a different number.
656 2001-12-29 Akim Demaille <akim@epita.fr>
658 * src/reader.c (readgram): Bind the initial rule's lineno to that
660 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
661 (Solved SR Conflicts): Adjust rule 0's line number.
663 2001-12-29 Akim Demaille <akim@epita.fr>
665 Fix the `GAWK Grammar' failure.
667 * src/LR0.c (final_state): Initialize to -1 so that we do compute
668 the reductions of the first state which was mistakenly confused
669 with the final state because precisely final_state was initialized
671 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
672 now noticed by Bison.
673 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
674 have a reduction on $default.
676 2001-12-29 Akim Demaille <akim@epita.fr>
678 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
680 * src/closure.c (print_closure): Likewise.
681 * src/derives.c (print_derives): Likewise.
682 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
685 2001-12-29 Akim Demaille <akim@epita.fr>
687 * src/lalr.c (lookaheads_print): New.
688 (lalr): Call it when --trace-flag.
689 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
692 2001-12-29 Akim Demaille <akim@epita.fr>
694 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
695 when walking through ritem, even via rule->rhs.
696 * src/reduce.c (dump_grammar, useful_production, reduce_output)
697 (useful_production, useless_nonterminals): Likewise.
698 (reduce_grammar_tables): Likewise, plus update nritems.
699 * src/nullable.c (set_nullable): Likewise.
700 * src/lalr.c (build_relations): Likewise.
701 * tests/sets.at (Nullable): Adjust.
702 Fortunately, now, the $axiom is no longer nullable.
704 2001-12-29 Akim Demaille <akim@epita.fr>
706 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
708 * src/gram.c (ritem_longest_rhs): Likewise.
709 * src/reduce.c (nonterminals_reduce): Likewise.
710 * src/print_graph.c (print_graph): Likewise.
711 * src/output.c (output_rule_data): Likewise.
712 * src/nullable.c (set_nullable): Likewise.
714 2001-12-29 Akim Demaille <akim@epita.fr>
716 * src/output.c: Comment changes.
718 2001-12-27 Paul Eggert <eggert@twinsun.com>
720 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
721 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
722 Sparc, as they were causing more porting problems than the
723 (minor) performance improvement was worth.
725 Also, catch up with 1.31's YYSTD.
727 2001-12-27 Akim Demaille <akim@epita.fr>
729 * src/output.c (output_gram): Rely on nritems, not the
730 0-sentinel. See below.
731 Use -1 as separator, not 0.
732 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
733 Rely on -1 as separator in yyrhs, instead of 0.
734 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
735 twice `Now at end of input', therefore there are two lines less to
738 2001-12-27 Akim Demaille <akim@epita.fr>
740 * tests/regression.at (Unresolved SR Conflicts):
741 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
744 2001-12-27 Akim Demaille <akim@epita.fr>
746 * src/LR0.c (new_state): Recognize the final state by the fact it
747 is reached by eoftoken.
748 (insert_start_shifting_state, insert_eof_shifting_state)
749 (insert_accepting_state, augment_automaton): Remove, since now
750 these states are automatically computed from the initial state.
751 (generate_states): Adjust.
752 * src/print.c: When reporting a rule number to the user, substract
753 1, so that the axiom rule is rule 0, and the first user rule is 1.
754 * src/reduce.c: Likewise.
755 * src/print_graph.c (print_core): For the time being, just as for
756 the report, depend upon --trace-flags to dump the full set of
758 * src/reader.c (readgram): Once the grammar read, insert the rule
759 0: `$axiom: START-SYMBOL $'.
760 * tests/set.at: Adjust: rule 0 is now displayed, and since the
761 number of the states has changed (the final state is no longer
762 necessarily the last), catch up.
764 2001-12-27 Akim Demaille <akim@epita.fr>
766 Try to make the use of the eoftoken valid. Given that its value
767 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
768 is used instead of > 0 where appropriate, (ii), depend upon nritems
769 instead of the 0-sentinel.
771 * src/gram.h, src/gram.c (nritems): New.
772 Expected to be duplication of nitems, but for the time being...
773 * src/reader.c (packgram): Assert nritems and nitems are equal.
774 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
775 * src/closure.c (print_closure, print_fderives): Likewise.
776 * src/gram.c (ritem_print): Likewise.
777 * src/print.c (print_core, print_grammar): Likewise.
778 * src/print_graph.c: Likewise.
780 2001-12-27 Akim Demaille <akim@epita.fr>
782 * src/main.c (main): If there are complains after grammar
783 reductions, then output the report anyway if requested, then die.
784 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
785 * src/reader.c (eoftoken): New.
786 (parse_token_decl): If the token being defined has value `0', it
788 (packsymbols): No longer hack `tags' to insert `$' by hand.
789 Be sure to preserve the value of the eoftoken.
790 (reader): Make sure eoftoken is defined.
791 Initialize nsyms to 0: now eoftoken is created just like the others.
792 * src/print.c (print_grammar): Don't special case the eof token.
793 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
794 lie anyway, albeit pleasant.
795 * tests/calc.at: Exercise error messages with eoftoken.
796 Change the grammar so that empty input is invalid.
798 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
800 2001-12-27 Akim Demaille <akim@epita.fr>
802 * configure.in: Check the protos of strchr ans strspn.
803 Replace strchr if needed.
804 * src/system.h: Provide the protos of strchr, strspn and memchr if
807 * src/reader.c (symbols_save): Use strchr.
809 2001-12-27 Akim Demaille <akim@epita.fr>
811 * src/print.c, src/print_graph.c (escape): New.
812 Use it to quote the TAGS outputs.
813 * src/print_graph.c (print_state): Now errors are in red, and
815 Prefer high to wide: output the state number on a line of its own.
817 2001-12-27 Akim Demaille <akim@epita.fr>
819 * src/state.h, src/state.c (reductions_new): New.
820 * src/LR0.c (set_state_table): Let all the states have a
821 `reductions', even if reduced to 0.
822 (save_reductions): Adjust.
823 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
824 * src/print.c (print_reductions, print_actions): Adjust.
825 * src/output.c (action_row): Adjust.
827 2001-12-27 Akim Demaille <akim@epita.fr>
829 * src/state.h, src/state.c (errs_new, errs_dup): New.
830 * src/LR0.c (set_state_table): Let all the states have an errs,
831 even if reduced to 0.
832 * src/print.c (print_errs, print_reductions): Adjust.
833 * src/output.c (output_actions, action_row): Adjust.
834 * src/conflicts.c (resolve_sr_conflict): Adjust.
836 2001-12-27 Akim Demaille <akim@epita.fr>
838 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
840 2001-12-27 Akim Demaille <akim@epita.fr>
842 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
844 (lookaheadset, shiftset): New, used as additional storage by
846 (print_results): Adjust.
847 (print_shifts, print_gotos, print_errs): New, extracted from...
848 (print_actions): here.
849 * src/print_graph.c (print_actions): Remove dead code.
851 2001-12-27 Akim Demaille <akim@epita.fr>
853 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
856 2001-12-27 Akim Demaille <akim@epita.fr>
858 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
859 (build_relations): Adjust.
861 2001-12-27 Akim Demaille <akim@epita.fr>
863 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
866 2001-12-27 Akim Demaille <akim@epita.fr>
868 * src/reader.c (packgram): Catch nitems overflows.
870 2001-12-27 Akim Demaille <akim@epita.fr>
872 * src/files.c, src/files.h (guard_obstack): Remove.
873 * src/output.c (output): Adjust.
874 * src/reader.c (parse_braces): New, factoring...
875 (copy_action, copy_guard): these two which are renamed as...
876 (parse_action, parse_guard): these.
877 As a voluntary consequence, using braces around guards is now
880 2001-12-27 Akim Demaille <akim@epita.fr>
882 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
883 * src/reader.c (symbol_list): `guard' and `guard_line' are new
885 (symbol_list_new): Adjust.
886 (copy_action): action_line is the first line, not the last.
887 (copy_guard): Just as for actions, store the `action' only, not
888 the switch/case/break flesh.
889 Don't parse the user action that might follow the guard, let...
890 (readgram): do it, i.e., now, there can be an action after a
892 In other words the guard is just explicitly optional.
894 * src/output.c (guards_output): New.
895 (output_parser): Call it when needed.
896 (output): Also free the guard and attrs obstacks.
897 * src/files.c, src/files.h (obstack_save): Remove.
898 (output_files): Remove.
899 As a result, if one needs the former `.act' file, using an
900 appropriate skeleton which requires actions and guards is now
902 * src/main.c (main): Adjust.
903 * tests/semantic.at: New.
904 * tests/regression.at: Use `input.y' as input file name.
905 Avoid 8+3 problems by requiring input.c when the test needs the
908 2001-12-27 Akim Demaille <akim@epita.fr>
910 * src/reader.c (symbol_list_new): Be sure to initialize all the
913 2001-12-27 Akim Demaille <akim@epita.fr>
915 All the hacks using a final pseudo state are now useless.
917 * src/LR0.c (set_state_table): state_table holds exactly nstates.
918 * src/lalr.c (nLA): New.
919 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
920 instead of lookaheadsp from the pseudo state (nstate + 1).
922 2001-12-27 Akim Demaille <akim@epita.fr>
924 * src/output.c (action_row, token_actions): Use a state_t instead
925 of a integer, and nlookaheads instead of the following state's
928 2001-12-27 Akim Demaille <akim@epita.fr>
930 * src/conflicts.c (log_resolution, flush_shift)
931 (resolve_sr_conflict, set_conflicts, solve_conflicts)
932 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
933 (conflicts_print, print_reductions): Use a state_t instead of an
934 integer when referring to a state.
935 As much as possible, depend upon nlookaheads, instead of the
936 `lookaheadsp' member of the following state (since lookaheads of
937 successive states are successive, the difference between state n + 1
938 and n served as the number of lookaheads for state n).
939 * src/lalr.c (add_lookback_edge): Likewise.
940 * src/print.c (print_core, print_actions, print_state)
941 (print_results): Likewise.
942 * src/print_graph.c (print_core, print_actions, print_state)
943 (print_graph): Likewise.
944 * src/conflicts.h: Adjust.
946 2001-12-27 Akim Demaille <akim@epita.fr>
948 * src/bison.hairy: Formatting/comment changes.
950 Remove `register' indications.
951 Add plenty of `static'.
953 2001-12-27 Akim Demaille <akim@epita.fr>
955 * src/output.c (prepare): Drop the muscle `ntbase' which
957 * src/bison.simple: Formatting/comment changes.
958 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
959 is an undocumented synonym.
961 2001-12-22 Akim Demaille <akim@epita.fr>
963 * src/output.c (output_table_data): Change the prototype to use
964 `int' for array ranges: some invocations do pass an int, not a
966 Reported by Wayne Green.
968 2001-12-22 Akim Demaille <akim@epita.fr>
970 Some actions of web2c.y are improperly triggered.
971 Reported by Mike Castle.
973 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
974 * tests/regression.at (Web2c): Rename as...
975 (Web2c Report): this.
976 (Web2c Actions): New.
978 2001-12-22 Akim Demaille <akim@epita.fr>
980 Reductions in web2c.y are improperly reported.
981 Reported by Mike Castle.
983 * src/conflicts.c (print_reductions): Fix.
984 * tests/regression.at (Web2c): New.
986 2001-12-18 Akim Demaille <akim@epita.fr>
988 Some host fail on `assert (!"foo")', which expands to
989 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
990 Reported by Nelson Beebee.
992 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
993 `#define it_succeeded 0' and `assert (it_succeeded)'.
995 2001-12-17 Marc Autret <autret_m@epita.fr>
997 * src/bison.simple: Don't hard code the skeleton line and filename.
998 * src/output.c (output_parser): Rename 'line' as 'output_line'.
999 New line counter 'skeleton_line' (skeleton-line muscle).
1001 2001-12-17 Paul Eggert <eggert@twinsun.com>
1003 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
1004 YYDEBUG must be defined to a nonzero value.
1006 * src/bison.simple (yytname): Do not assume that the user defines
1007 YYDEBUG to a properly parenthesized expression.
1009 2001-12-17 Akim Demaille <akim@epita.fr>
1011 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
1012 nlookaheads is a new member.
1014 * src/lalr.h (nlookaheads): Remove this orphan declaration.
1015 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
1018 2001-12-17 Akim Demaille <akim@epita.fr>
1020 * src/files.h, src/files.c (open_files, close_files): Remove.
1021 * src/main.c (main): Don't open/close files, nor invoke lex_free,
1023 * src/reader.c (reader): Do it.
1025 2001-12-17 Akim Demaille <akim@epita.fr>
1027 * src/conflicts.c (print_reductions): Formatting changes.
1029 2001-12-17 Akim Demaille <akim@epita.fr>
1031 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
1032 (flush_reduce): New.
1033 (resolve_sr_conflict): Adjust.
1035 2001-12-17 Akim Demaille <akim@epita.fr>
1037 * src/output.c (output_obstack): Be static and rename as...
1038 (format_obstack): this, to avoid any confusion with files.c's
1040 * src/reader.h (muscle_obstack): Move to...
1041 * src/output.h: here, since it's defined in output.c.
1043 2001-12-17 Akim Demaille <akim@epita.fr>
1045 * src/output.c (action_row, save_column, default_goto)
1046 (sort_actions, matching_state, pack_vector): Better variable
1049 2001-12-17 Akim Demaille <akim@epita.fr>
1051 * src/output.c: Various formatting changes.
1053 2001-12-17 Akim Demaille <akim@epita.fr>
1055 * src/files.c (output_files): Free the output_obstack.
1056 * src/main.c (main): Call print and print_graph conditionally.
1057 * src/print.c (print): Work unconditionally.
1058 * src/print_graph.c (print_graph): Work unconditionally.
1059 * src/conflicts.c (log_resolution): Output only if verbose_flag.
1061 2001-12-16 Marc Autret <autret_m@epita.fr>
1063 * src/output.c (actions_output): Fix. When we use %no-lines,
1064 there is one less line per action.
1066 2001-12-16 Marc Autret <autret_m@epita.fr>
1068 * src/bison.simple: Remove a useless #line directive.
1069 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
1070 * src/output.c (get_lines_number): New.
1071 (output_parser): Adjust, now takes care about the lines of a
1074 (actions_output): Computes the number of lines taken by actions.
1075 (output_master_parser): Insert new skeleton which is the name of
1076 the output parser file name.
1078 2001-12-15 Marc Autret <autret_m@epita.fr>
1080 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
1082 2001-12-15 Marc Autret <autret_m@epita.fr>
1084 * src/output.c (output_gram): Keep track of the hairy one.
1086 2001-12-15 Akim Demaille <akim@epita.fr>
1088 Make `make distcheck' work.
1090 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
1091 system.h which uses libgettext.h.
1093 2001-12-15 Akim Demaille <akim@epita.fr>
1095 * src/nullable.c (set_nullable): Useless rules must be skipped,
1096 otherwise, since we range over their symbols, we might look at a
1097 nonterminal which no longer ``exists'', i.e., it is not counted in
1098 `nvars', hence we overflow our arrays.
1100 2001-12-15 Akim Demaille <akim@epita.fr>
1102 The header can also be produced directly, without any obstack!
1105 * src/files.c, src/files.h (defines_obstack): Remove.
1106 (compute_header_macro): Global.
1107 (defines_obstack_save): Remove.
1108 * src/reader.c (parse_union_decl): No longer output to
1109 defines_obstack: its content can be found in the `stype' muscle
1111 (output_token_translations): Merge into...
1112 (symbols_output): this.
1114 (symbols_save): this.
1116 * src/output.c (header_output): New.
1119 2001-12-15 Akim Demaille <akim@epita.fr>
1121 * src/reader.c (parse_union_decl): Instead of handling two obstack
1122 simultaneously, use one to define the `stype' muscle, and use the
1123 value of the latter to fill defines_obstack.
1124 (copy_comment): Remove.
1125 (copy_comment2): Work for a single obstack.
1127 (copy_comment): this.
1129 2001-12-15 Akim Demaille <akim@epita.fr>
1131 * src/lex.c, src/lex.h (xgetc): No longer static.
1132 * src/reader.c (parse_union_decl): Revamp.
1134 2001-12-15 Akim Demaille <akim@epita.fr>
1136 Still making progress in separating Bison into (i) input, (ii)
1137 process, (iii) output: now we can directly output the parser file
1138 without using table_obstack at all.
1140 * src/files.c, src/files.h (table_obstack): Bye bye.
1141 (parser_file_name): New.
1142 * src/files.c (compute_output_file_names): Compute it.
1143 * src/output.c (actions_output, output_parser)
1144 (output_master_parser): To a file instead of an obstack.
1146 2001-12-15 Akim Demaille <akim@epita.fr>
1148 Attach actions to rules, instead of pre-outputting them to
1151 * src/gram.h (rule_t): action and action_line are new members.
1152 * src/reader.c (symbol_list): Likewise.
1153 (copy_action): Save the actions within the rule.
1154 (packgram): Save them in rule_table.
1155 * src/output.c (actions_output): New.
1156 (output_parser): Use it on `%%actions'.
1157 (output_rule_data): Don't free rule_table.
1159 (prepare): Don't save the `action' muscle.
1160 * src/bison.simple: s/%%action/%%actions/.
1162 2001-12-15 Akim Demaille <akim@epita.fr>
1164 * src/reader.c (copy_action): When --yacc, don't append a `;'
1165 to the user action: let it fail if lacking.
1166 Suggested by Arnold Robbins and Tom Tromey.
1168 2001-12-14 Akim Demaille <akim@epita.fr>
1170 * src/lex.c (literalchar): Simply return the char you decoded, non
1171 longer mess around with obstacks and int pointers.
1174 2001-12-14 Akim Demaille <akim@epita.fr>
1176 * src/lex.c (literalchar): Don't escape the special characters,
1177 just decode them, and keep them as char (before, eol was output as
1178 the 2 char string `\n' etc.).
1179 * src/output.c (output_rule_data): Use quotearg to output the
1182 2001-12-13 Paul Eggert <eggert@twinsun.com>
1184 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
1185 Do not infringe on the global user namespace when using C++.
1186 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
1187 All uses of `fprintf' and `stderr' changed.
1189 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
1191 2001-12-13 Akim Demaille <akim@epita.fr>
1193 The computation of nullable is broken: it doesn't handle empty
1196 * tests/torture.at (GNU AWK Grammar): New.
1197 * tests/sets.at (Nullable): New.
1198 * src/nullable.c (set_nullable): Instead of blindly looping over
1199 `ritems', loop over the rules, and then over their rhs's.
1201 Work around Autotest bugs.
1203 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
1204 frame, because Autotest understand lines starting with a `+' as
1205 traces from the shell. Then, they are not processed properly.
1206 Admittedly an Autotest bug, but we don't have time to wait for
1207 Autotest to catch up.
1208 * tests/regression.at (Broken Closure): Adjust to the new table
1211 * tests/sets.at: here.
1213 2001-12-13 Akim Demaille <akim@epita.fr>
1215 * src/closure.c (closure): Use nrules instead of playing tricks
1218 2001-12-13 Akim Demaille <akim@epita.fr>
1220 * src/print.c (print_actions): Output the handling of `$' as the
1221 traces do: shifting the token EOF. Before EOF was treated as a
1223 * tests/regression.at: Adjust some tests.
1224 * src/print_graph.c (print_core): Complete the set of items via
1225 closure. The next-to-final and final states are still unsatisfying,
1226 but that's to be addressed elsewhere.
1227 No longer output the rule numbers, but do output the state number.
1228 A single loop for the shifts + gotos is enough, but picked a
1229 distinct color for each.
1230 (print_graph): Initialize and finalize closure.
1232 2001-12-13 Akim Demaille <akim@epita.fr>
1234 * src/reader.c (readgram): Remove dead code, an strip useless
1236 (get_type): Remove, unused.
1238 2001-12-12 Akim Demaille <akim@epita.fr>
1240 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
1241 on that of lib/error.c.
1243 2001-12-12 Akim Demaille <akim@epita.fr>
1245 Some hosts don't like `/' in includes.
1247 * src/system.h: Include libgettext.h without qualifying the path.
1248 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
1251 2001-12-11 Marc Autret <autret_m@epita.fr>
1253 * src/output.c (output_parser): Remove useless muscle.
1255 2001-12-11 Marc Autret <autret_m@epita.fr>
1257 * src/bison.simple: Remove #line just before %%epilogue. It
1258 is now handled in ...
1259 * src/reader.c (read_additionnal_code): Add the output of a
1260 #line for the epilogue.
1262 2001-12-10 Marc Autret <autret_m@epita.fr>
1264 * src/reader.c (copy_definition): Re-use CPP-outed code which
1265 replace precedent remove.
1266 * src/bison.simple: Remove #line before %%prologue because
1267 %%input-line is wrong at this time.
1269 2001-12-10 Marc Autret <autret_m@epita.fr>
1271 * src/reader.c (symbols_output): Clean up.
1272 * src/output.c (output_gram, output): Clean up.
1274 2001-12-10 Akim Demaille <akim@epita.fr>
1276 * src/lalr.c (initialize_lookaheads): New. Extracted from...
1277 * src/LR0.c (set_state_table): here.
1278 * src/lalr.c (lalr): Call it.
1280 2001-12-10 Akim Demaille <akim@epita.fr>
1282 * src/state.h (shifts): Remove the `number' member: shifts are
1283 attached to state, hence no longer need to be labelled with a
1286 2001-12-10 Akim Demaille <akim@epita.fr>
1288 Now that states have a complete set of members, the linked list of
1289 shifts is useless: just fill directly the state's shifts member.
1291 * src/state.h (shifts): Remove the `next' member.
1292 * src/LR0.c (first_state, last_state): Remove.
1294 (augment_automaton): Don't look for the shifts that must be added
1295 a shift on EOF: it is those of the state we looked for! But now,
1296 since shifts are attached, it is no longer needed to looking
1297 merely by its id: its number.
1299 2001-12-10 Akim Demaille <akim@epita.fr>
1301 * src/LR0.c (augment_automaton): Better variable locality.
1302 Remove an impossible branch: if there is a state corresponding to
1303 the start symbol being shifted, then there is shift for the start
1304 symbol from the initial state.
1306 2001-12-10 Akim Demaille <akim@epita.fr>
1308 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
1309 only when appropriate: when insert_start_shifting_state' is not
1311 * tests/regression.at (Rule Line Numbers): Adjust.
1313 2001-12-10 Akim Demaille <akim@epita.fr>
1315 * src/LR0.c (augment_automaton): Now that all states have shifts,
1316 merge the two cases addition shifts to the initial state.
1318 2001-12-10 Akim Demaille <akim@epita.fr>
1320 * src/lalr.c (set_state_table): Move to...
1322 * src/lalr.c (lalr): Don't call it...
1323 * src/LR0.c (generate_states): do it.
1324 * src/LR0.h (first_state): Remove, only the table is used.
1326 2001-12-10 Akim Demaille <akim@epita.fr>
1328 * src/LR0.h (first_shift, first_reduction): Remove.
1329 * src/lalr.c: Don't use first_shift: find shifts through the
1332 2001-12-10 Akim Demaille <akim@epita.fr>
1334 * src/LR0.c: Attach shifts to states as soon as they are
1336 * src/lalr.c (set_state_table): Instead of assigning shifts to
1337 state, just assert that the mapping was properly done.
1339 2001-12-10 Akim Demaille <akim@epita.fr>
1341 * src/LR0.c (insert_start_shift): Rename as...
1342 (insert_start_shifting_state): this.
1343 (insert_eof_shifting_state, insert_accepting_state): New.
1344 (augment_automaton): Adjust.
1345 Better locality of the variables.
1346 When looking if the start_symbol is shifted from the initial
1347 state, using `while (... symbol != start_symbol ...)' sounds
1348 better than `while (... symbol < start_symbol ...)': If fail
1349 to see how the order between symbols could be relevant!
1351 2001-12-10 Akim Demaille <akim@epita.fr>
1353 * src/getargs.h: Don't declare `spec_name_prefix' and
1354 `spec_file_prefix', declared by src/files.h.
1355 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
1356 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
1357 * src/output.c (prepare): Adjust.
1358 * src/reader.c (symbols_output): Likewise.
1359 * src/vmsgetargs.c: Vaguely adjust, but who cares?
1361 2001-12-10 Akim Demaille <akim@epita.fr>
1363 * src/muscle_tab.c (muscle_init): NULL is a better default than
1366 2001-12-10 Akim Demaille <akim@epita.fr>
1368 * src/reader.c (reader): Calling symbols_output once is enough.
1370 2001-12-10 Akim Demaille <akim@epita.fr>
1372 Now that states have a complete set of members, the linked list of
1373 reductions is useless: just fill directly the state's reductions
1376 * src/state.h (struct reductions): Remove member `number' and
1378 * src/LR0.c (first_reduction, last_reduction): Remove.
1379 (save_reductions): Don't link the new reductions, store them in
1381 * src/lalr.c (set_state_table): No need to attach reductions to
1382 states, it's already done.
1383 * src/output.c (output_actions): No longer free the shifts, then
1384 the reductions, then the states: free all the states and their
1387 2001-12-10 Akim Demaille <akim@epita.fr>
1389 * src/options.c (OPTN, DRTV, BOTH): New.
1390 (option_table): Use them.
1392 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
1393 the job of system.h.
1394 * src/options.c: Don't include stdio.h and xalloc.h for the same
1397 2001-12-10 Akim Demaille <akim@epita.fr>
1399 * src/output.c (output, prepare): Make sure the values of the
1400 muscles `action' and `prologue' are 0-terminated.
1402 2001-12-10 Akim Demaille <akim@epita.fr>
1404 Clean up GCC warnings.
1406 * src/reader.c (copy_action): `buf' is not used.
1407 (parse_skel_decl): Be static.
1408 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
1409 * src/options.h (create_long_option_table): Have a real prototype.
1410 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
1411 (hash_delete_at): Return const void *.
1412 Adjust casts to preserve the const.
1414 2001-12-10 Akim Demaille <akim@epita.fr>
1416 * configure.in: Require 2.52g.
1417 M4 is not needed, but AUTOM4TE is.
1419 * tests/Makefile.am: Adjust.
1421 2001-12-10 Akim Demaille <akim@epita.fr>
1423 One structure for states is enough, even though theoretically
1424 there are LR(0) states and LALR(1) states.
1426 * src/lalr.h (state_t): Remove.
1427 (state_table): Be state_t **, not state_t *.
1428 * src/state.h (core, CORE_ALLOC): Rename as...
1429 (state_t, STATE_ALLOC): this.
1430 Add the LALR(1) members: shifts, reductions, errs.
1431 * src/LR0.c (state_table): Rename as...
1432 (state_hash): this, to avoid name clashes with the global
1434 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
1435 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
1437 2001-12-10 Akim Demaille <akim@epita.fr>
1439 Bison dumps core on bash.y.
1440 Reported by Pascal Bart.
1442 * src/warshall.c (bitmatrix_print): New.
1444 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
1445 j must be the outer loop.
1446 * tests/regression.at (Broken Closure): New.
1448 2001-12-05 Akim Demaille <akim@epita.fr>
1450 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
1452 Reported by Peter Hámorský.
1454 2001-12-05 Akim Demaille <akim@epita.fr>
1456 * src/conflicts.c (err_table): Remove.
1457 (resolve_sr_conflict): Adjust.
1458 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
1460 (state_t.reductions, state_t.shifts): this.
1462 2001-12-05 Akim Demaille <akim@epita.fr>
1464 * src/reduce.c (reduce_grammar_tables): No longer disable the
1465 removal of useless rules via CPP but via `if (0)', so that the
1466 compiler still check the code is valid.
1467 For instance, it should have noticed `rline' no longer exists: use
1468 the `line' member of rule_t.
1469 * src/gram.c (dummy, rline): Remove, unused.
1471 2001-12-05 Akim Demaille <akim@epita.fr>
1473 * src/output.c (pack_vector): Use assert, not berror.
1474 * src/main.c (berror): Remove, unused.
1476 2001-12-05 Akim Demaille <akim@epita.fr>
1478 New experimental feature: if --verbose --trace output all the
1479 items of a state, not only its kernel.
1481 * src/print.c (print_core): If `trace_flag', then invoke closure
1482 before outputting the items of the state (print_core is no longer
1483 a correct name them).
1484 (print_results): Invoke new_closure/free_closure if needed.
1486 2001-12-05 Akim Demaille <akim@epita.fr>
1488 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
1489 * src/closure.c, src/closure.h (itemsetsize): Rename as...
1490 (nitemset): for consistency with the rest of the project.
1492 2001-12-05 Akim Demaille <akim@epita.fr>
1494 * src/closure.c (print_closure): Improve.
1495 (closure): Use it for printing input and output.
1497 2001-12-05 Akim Demaille <akim@epita.fr>
1499 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
1500 indexed by nonterminals.
1502 2001-12-05 Akim Demaille <akim@epita.fr>
1504 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
1506 * src/warshall.h: Remove accidental duplication of the content.
1508 2001-12-05 Akim Demaille <akim@epita.fr>
1510 * src/closure.c (set_fderives): De-obfuscate.
1512 2001-12-05 Akim Demaille <akim@epita.fr>
1514 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
1516 2001-12-05 Akim Demaille <akim@epita.fr>
1518 * src/closure.c (set_firsts): De-obfuscate.
1520 2001-12-05 Akim Demaille <akim@epita.fr>
1522 * src/output.c (action_row): De-obfuscate
1523 using the good o' techniques: arrays not pointers, variable
1524 locality, BITISSET, RESETBIT etc.
1526 2001-12-05 Akim Demaille <akim@epita.fr>
1528 Pessimize the code to simplify it: from now on, all the states
1529 have a valid SHIFTS, which NSHIFTS is possibly 0.
1531 * src/LR0.c (shifts_new): Be global and move to..
1532 * src/state.c, src/state.h: here.
1533 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
1534 * src/print_graph: Adjust.
1536 2001-12-05 Akim Demaille <akim@epita.fr>
1538 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
1539 * src/conflicts.c: Use it.
1540 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
1541 incorrectly ``simplified''.
1543 2001-12-05 Akim Demaille <akim@epita.fr>
1545 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
1546 using the good o' techniques: arrays not pointers, variable
1547 locality, BITISSET, RESETBIT etc.
1549 2001-12-05 Akim Demaille <akim@epita.fr>
1551 * src/state.h (SHIFT_SYMBOL): New.
1552 * src/conflicts.c: Use it to deobfuscate.
1554 2001-12-05 Akim Demaille <akim@epita.fr>
1556 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
1557 (print_reductions): De-obfuscate using the good o' techniques:
1558 arrays not pointers, variable locality, BITISSET.
1560 2001-12-05 Akim Demaille <akim@epita.fr>
1562 * src/conflicts.c (print_reductions): Arrays, not pointers.
1565 2001-12-05 Akim Demaille <akim@epita.fr>
1567 * src/conflicts.c (print_reductions): Pessimize, but clarify.
1569 2001-12-05 Akim Demaille <akim@epita.fr>
1571 * src/conflicts.c (print_reductions): Improve variable locality.
1573 2001-12-05 Akim Demaille <akim@epita.fr>
1575 * src/conflicts.c (print_reductions): Pessimize, but clarify.
1577 2001-12-05 Akim Demaille <akim@epita.fr>
1579 * src/conflicts.c (print_reductions): Improve variable locality.
1581 2001-12-05 Akim Demaille <akim@epita.fr>
1583 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
1584 * src/lalr.c: Use them.
1586 2001-12-05 Akim Demaille <akim@epita.fr>
1588 * src/LR0.c (augment_automaton): Formatting changes.
1589 Better variable locality.
1591 2001-12-05 Akim Demaille <akim@epita.fr>
1593 * src/lalr.c (matrix_print): New.
1594 (transpose): Use it.
1595 Use arrays instead of pointers.
1597 2001-12-05 Akim Demaille <akim@epita.fr>
1599 * src/lalr.c (maxrhs): Move to...
1600 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
1601 * src/lalr.c (build_relations): Adjust.
1603 2001-12-05 Akim Demaille <akim@epita.fr>
1605 * src/lalr.c (transpose): Free the memory allocated to the
1606 argument, as it is replaced by the results by the unique caller.
1607 (build_relations): Merely invoke transpose: it handles the memory
1609 Improve variable locality.
1610 Avoid variables used as mere abbreviations.
1611 (compute_lookaheads): Use arrays instead of pointers.
1613 2001-12-05 Akim Demaille <akim@epita.fr>
1615 * src/lalr.c (initialize_F): Improve variable locality.
1616 Avoid variables used as mere abbreviations.
1618 2001-12-05 Akim Demaille <akim@epita.fr>
1620 * src/derives.c (print_derives): Display the ruleno.
1621 * src/lalr.c (initialize_F, transpose): Better variable locality
1622 to improve readability.
1623 Avoid variables used as mere abbreviations.
1625 2001-12-05 Akim Demaille <akim@epita.fr>
1627 * src/lalr.c (traverse): Use arrays instead of pointers.
1629 2001-12-05 Akim Demaille <akim@epita.fr>
1631 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
1632 the handling of squeue.
1633 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
1635 2001-12-05 Akim Demaille <akim@epita.fr>
1637 Because useless nonterminals are now kept alive (instead of being
1638 `destroyed'), we now sometimes examine them, and store information
1639 related to them. Hence we need to know their number, and adjust
1642 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
1644 * src/LR0.c (allocate_itemsets): The memory allocated to
1645 `symbol_count' was used for two different purpose: once to count
1646 the number of occurrences of each symbol, and later reassigned to
1647 `shift_symbol', containing the symbol that can be shifted from a
1649 Deobfuscate, i.e., allocate, use and free `symbol_count' here
1651 (new_itemsets): Allocate `shift_symbol' here.
1652 (allocate_itemsets): symbol_count includes useless nonterminals.
1654 (free_storage): Use `free', not `XFREE', for pointers that cannot
1657 2001-12-05 Akim Demaille <akim@epita.fr>
1659 * src/nullable.c (set_nullable): Deobfuscate the handling of
1661 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
1663 2001-12-05 Akim Demaille <akim@epita.fr>
1665 * src/gram.c, src/gram.h (ritem_print): New.
1666 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
1667 (This useless function was defined only to work around VMS linkers
1668 that can't handle compilation units with variables only).
1669 * src/reduce.c (dump_grammar): Use it to trace the construction of
1672 2001-12-04 Paul Eggert <eggert@twinsun.com>
1674 * src/bison.simple (union yyalloc): Change member names
1675 to be the same as the stack names.
1676 (yyparse): yyptr is now union yyalloc *, not char *.
1677 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
1678 and may generate better code on some machines.
1679 (yystpcpy): Use prototype if __STDC__ is defined, not just
1680 if __cplusplus is defined.
1682 2001-11-30 Akim Demaille <akim@epita.fr>
1684 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
1685 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
1686 Gettext doesn't compile cleanly, and dies with -Werror.
1687 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
1688 Include WARNING_CFLAGS here.
1689 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
1690 before being defined.
1692 2001-11-27 Paul Eggert <eggert@twinsun.com>
1694 * lib/quotearg.h (quotearg_n, quotearg_n_style):
1695 First arg is int, not unsigned.
1696 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
1697 (SIZE_MAX, UINT_MAX): New macros.
1698 (quotearg_n_options): Abort if N is negative.
1699 Avoid overflow check on hosts where size_t is 64 bits and int
1700 is 32 bits, as overflow is impossible there.
1701 Fix off-by-one typo that caused unnecessary reallocation.
1703 2001-11-29 Paul Eggert <eggert@twinsun.com>
1705 Name space cleanup in generated parser.
1707 * doc/bison.texinfo (Bison Parser): Discuss system headers
1708 and their effect on the user name space.
1711 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
1712 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
1713 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
1715 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
1716 on user names when possible.
1718 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
1719 Simplify test for whather <alloca.h> exists.
1721 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
1723 (<stdio.h>): Include if YYDEBUG.
1725 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
1726 ! defined (yyoverflow) && ! defined (yymemcpy).
1728 (yymemcpy, yyparse): Rename local variables as needed so that
1729 they all begin with 'yy'.
1731 (yystrlen, yystpcpy): New functions.
1733 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
1736 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
1737 instead of relying on string.h functions. Use YYSTACK_ALLOC
1738 and YYSTACK_FREE instead of malloc and free.
1740 2001-11-30 Akim Demaille <akim@epita.fr>
1742 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
1743 before their first uses.
1744 (YYBISON, YYPURE): Move to the top of the output.
1746 2001-11-30 Akim Demaille <akim@epita.fr>
1748 * tests/reduce.at (Useless Nonterminals): Fix.
1750 2001-11-30 Akim Demaille <akim@epita.fr>
1752 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
1753 if body instead of `;' to pacify GCC's warnings.
1755 2001-11-30 Akim Demaille <akim@epita.fr>
1757 Instead of mapping the LHS of unused rules to -1, keep the LHS
1758 valid, but flag the rules as invalid.
1760 * src/gram.h (rule_t): `useful' is a new member.
1761 * src/print.c (print_grammar): Adjust.
1762 * src/derives.c (set_derives): Likewise.
1763 * src/reader.c (packgram, reduce_output): Likewise.
1764 * src/reduce.c (reduce_grammar_tables): Likewise.
1765 * tests/reduce.at (Underivable Rules, Useless Rules): New.
1767 2001-11-30 Akim Demaille <akim@epita.fr>
1769 * src/reduce.c (reduce_output): Formatting changes.
1770 * src/print.c (print_results, print_grammar): Likewise.
1771 * tests/regression.at (Rule Line Numbers)
1772 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
1774 2001-11-30 Akim Demaille <akim@epita.fr>
1776 * src/reduce.c (nonterminals_reduce): Instead of throwing away
1777 useless nonterminals, move them at the end of the symbol arrays.
1778 (reduce_output): Adjust.
1779 * tests/reduce.at (Useless Nonterminals): Adjust.
1781 2001-11-30 Akim Demaille <akim@epita.fr>
1783 * src/reduce.c: Various comment/formatting changes.
1784 (nonterminals_reduce): New, extracted from...
1785 (reduce_grammar_tables): here.
1786 (reduce_grammar): Call nonterminals_reduce.
1788 2001-11-29 Paul Eggert <eggert@twinsun.com>
1790 * src/bison.simple (YYSTACK_REALLOC): Remove.
1791 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
1792 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
1794 (union yyalloc): New type.
1795 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
1796 an arbitrary restriction on hosts where size_t is wider than int.
1798 (yyparse): Don't dump core if alloca or malloc fails; instead, report
1799 a parser stack overflow. Allocate just one block of memory for all
1800 three stacks, instead of allocating three blocks; this typically is
1801 faster and reduces fragmentation.
1803 Do not limit the number of items in the stack to a value that fits
1804 in 'int', as this is an arbitrary limit on hosts with 64-bit
1805 size_t and 32-bit int.
1807 2001-11-29 Marc Autret <autret_m@epita.fr>
1809 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
1810 of defining YYERROR_VERBOSE.
1811 [AT_DATA]: $4 is now out of C declarations in the prologue.
1813 2001-11-28 Marc Autret <autret_m@epita.fr>
1815 * src/reader.c (parse_dquoted_param): New.
1816 (parse_skel_decl): Use it.
1817 * src/lex.h: Add its prototype.
1818 * src/lex.c (literalchar): Become not static.
1820 2001-11-28 Marc Autret <autret_m@epita.fr>
1822 * src/output.h: And put its extern declaration here.
1823 * src/output.c (error_verbose): Define here.
1824 (prepare): Echo name modification.
1825 * src/getargs.h: Clean its extern declaration.
1826 * src/getargs.c (error_verbose_flag): Remove.
1827 (getargs): Remove case 'e'.
1828 * src/options.c (option_table): 'error-verbose' is now seen as simple
1832 * src/reader.c (read_declarations): Remove case tok_include.
1833 (parse_include_decl): Remove.
1834 * src/lex.h (token_t): Remove tok_include.
1835 * src/options.c (option_table): 'include' is now a simple command line
1838 2001-11-28 Marc Autret <autret_m@epita.fr>
1840 * src/bison.simple: Adjust muscle names.
1841 * src/muscle_tab.c (muscle_init): Also rename the muscles.
1842 * src/output.c (prepare): s/_/-/ for the muscles names.
1843 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
1845 2001-11-28 Marc Autret <autret_m@epita.fr>
1847 * src/bison.simple: Fix debug.
1848 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
1850 2001-11-28 Akim Demaille <akim@epita.fr>
1852 * src/LR0.c (shifts_new): New.
1853 (save_shifts, insert_start_shift, augment_automaton): Use it.
1855 2001-11-28 Akim Demaille <akim@epita.fr>
1857 * src/closure.c (closure): `b' and `ruleno' denote the same value:
1860 2001-11-28 Akim Demaille <akim@epita.fr>
1862 * src/closure.c (closure): Instead of looping over word in array
1863 then bits in words, loop over bits in array.
1865 2001-11-28 Akim Demaille <akim@epita.fr>
1867 * src/closure.c (closure): No longer optimize the special case
1868 where all the bits of `ruleset[r]' are set to 0, to make the code
1871 2001-11-28 Akim Demaille <akim@epita.fr>
1873 * src/closure.c (closure): `r' and `c' are new variables, used to
1874 de-obfuscate accesses to RULESET and CORE.
1876 2001-11-28 Akim Demaille <akim@epita.fr>
1878 * src/reduce.c (reduce_print): Use ngettext.
1879 (dump_grammar): Improve the trace accuracy.
1881 2001-11-28 Akim Demaille <akim@epita.fr>
1883 * src/reduce.c (dump_grammar): Don't translate trace messages.
1885 2001-11-28 Akim Demaille <akim@epita.fr>
1887 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
1888 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
1889 as all tags are free'ed afterwards.
1892 2001-11-27 Paul Eggert <eggert@twinsun.com>
1894 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
1895 use alloca when we didn't want to, and vice versa.
1897 2001-11-27 Marc Autret <autret_m@epita.fr>
1899 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
1901 * src/output.c (prepare): Remove its update.
1903 2001-11-27 Marc Autret <autret_m@epita.fr>
1905 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
1908 2001-11-27 Marc Autret <autret_m@epita.fr>
1910 * src/bison.simple: Remove YYERROR_VERBOSE using.
1911 Use %%error_verbose.
1912 (yyparse): Likewise.
1913 * src/output.c (prepare): Give its final value.
1914 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
1915 * src/getargs.h: Add its extern declaration.
1916 * src/getargs.c (error_verbose_flag): New int.
1917 (getargs): Update to catch new case.
1918 * src/options.c (option_table): 'error-verbose' is a new option.
1919 (shortopts): Update.
1921 2001-11-27 Akim Demaille <akim@epita.fr>
1923 * src/system.h: Use intl/libgettext.h.
1924 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
1926 2001-11-27 Akim Demaille <akim@epita.fr>
1928 * tests/torture.at (Exploding the Stack Size with Malloc):
1929 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
1931 2001-11-27 Akim Demaille <akim@epita.fr>
1933 * src/files.c: Include error.h.
1934 Reported by Hans Aberg.
1936 2001-11-26 Marc Autret <autret_m@epita.fr>
1938 * src/reader.c (parse_include_decl): New, not yet implemented.
1939 (read_declarations): Add case tok_include.
1940 * src/getargs.h (include): Add its extern definition.
1941 * src/getargs.c (include): New const char *.
1942 (getargs): Add case '-I'.
1943 * src/options.c (option_table): Add include as command line and
1945 * src/lex.h (token_t): Add tok_include.
1947 2001-11-26 Akim Demaille <akim@epita.fr>
1949 * src/reader.c (readgram): Make sure rules for mid-rule actions
1950 have a lineno equal to that of their host rule.
1951 Reported by Hans Aberg.
1952 * tests/regression.at (Rule Line Numbers): New.
1954 2001-11-26 Akim Demaille <akim@epita.fr>
1956 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
1959 2001-11-26 Akim Demaille <akim@epita.fr>
1961 * src/complain.c, src/complain.h (error): Remove, provided by
1964 2001-11-26 Akim Demaille <akim@epita.fr>
1966 * src/reader.c (read_declarations): Don't abort on tok_illegal,
1967 issue an error message.
1968 * tests/regression.at (Invalid %directive): New.
1969 Reported by Hans Aberg.
1971 2001-11-26 Akim Demaille <akim@epita.fr>
1973 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
1974 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
1976 2001-11-26 Akim Demaille <akim@epita.fr>
1978 * src/conflicts.c (conflicts_print): Don't complain at all when
1979 there are no reduce/reduce conflicts, and as many shift/reduce
1980 conflicts as expected.
1981 * tests/regression.at (%expect right): Adjust.
1983 2001-11-23 Akim Demaille <akim@epita.fr>
1985 * lib/alloca.c: Update, from fileutils.
1987 2001-11-23 Akim Demaille <akim@epita.fr>
1989 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
1991 2001-11-23 Akim Demaille <akim@epita.fr>
1993 * src/system.h: Include alloca.h.
1994 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
1996 2001-11-23 Akim Demaille <akim@epita.fr>
1998 * src/print_graph.c (print_actions): Remove `rule', unused.
1999 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
2000 pacify GCC's signed < unsigned warnings.
2001 * src/closure.c (itemsetsize): Likewise.
2002 * src/reader.c (symbol_list_new): Static.
2004 2001-11-23 Akim Demaille <akim@epita.fr>
2006 Attaching lineno to buckets is stupid, since only one copy of each
2007 symbol is kept, only the line of the first occurrence is kept too.
2009 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
2010 * src/reader.c (rline_allocated): Remove, unused.
2011 (symbol_list): Have a `line' member.
2012 (symbol_list_new): New.
2014 * src/print.c (print_grammar): Output the rule line numbers.
2015 * tests/regression.at (Solved SR Conflicts)
2016 (Unresolved SR Conflicts): Adjust.
2017 Reported by Hans Aberg.
2019 2001-11-22 Marc Autret <autret_m@epita.fr>
2021 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
2023 2001-11-22 Marc Autret <autret_m@epita.fr>
2025 * src/muscle_tab.c (muscle_init): Remove initialization of
2027 * src/output.c (output_master_parser): Do it here.
2029 2001-11-20 Akim Demaille <akim@epita.fr>
2032 * configure.in (ALL_LINGUAS): Adjust.
2033 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
2034 longer contains strings to translate.
2036 2001-11-19 Akim Demaille <akim@epita.fr>
2038 * src/conflicts.c (conflicts_print): Add a missing \n.
2040 2001-11-19 Akim Demaille <akim@epita.fr>
2042 * src/nullable.c (nullable_print): New.
2043 (set_nullable): Call it when tracing.
2044 Better locality of variables.
2046 2001-11-19 Akim Demaille <akim@epita.fr>
2048 * src/print.c (print_actions): Better locality of variables.
2050 2001-11-19 Akim Demaille <akim@epita.fr>
2052 * src/derives.c (print_derives): Fix and enrich.
2053 * src/closure.c (print_fderives): Likewise.
2055 2001-11-19 Akim Demaille <akim@epita.fr>
2057 * src/closure.c (itemsetend): Remove, replaced with...
2060 2001-11-19 Akim Demaille <akim@epita.fr>
2062 * src/LR0.c (kernel_end): Remove, replaced with...
2065 2001-11-19 Akim Demaille <akim@epita.fr>
2067 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
2070 2001-11-19 Akim Demaille <akim@epita.fr>
2072 * src/closure.c (closure): Use arrays instead of pointers to clarify.
2074 2001-11-19 Akim Demaille <akim@epita.fr>
2076 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
2078 * src/LR0.c: Likewise.
2079 (allocate_itemsets): Use arrays instead of pointers to clarify.
2081 2001-11-19 Akim Demaille <akim@epita.fr>
2083 * src/getargs.c (statistics_flag): Replace with...
2085 (longopts): Accept --trace instead of --statistics.
2086 * src/getargs.h, src/options.c: Adjust.
2087 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
2088 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
2090 2001-11-19 Akim Demaille <akim@epita.fr>
2092 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
2093 pointers to clarify the code.
2094 (save_reductions, save_shifts): Factor common parts of alternatives.
2096 2001-11-19 Akim Demaille <akim@epita.fr>
2098 * src/LR0.c (new_state, get_state): Complete TRACE code.
2099 * src/closure.c: Include `reader.h' to get `tags', needed by the
2101 Rename the conditional DEBUG as TRACE.
2102 Output consistently TRACEs to stderr, not stdout.
2103 * src/derives.c: Likewise.
2104 * src/reduce.c: (inaccessable_symbols): Using if is better style
2106 Use `#if TRACE' instead of `#if 0' for tracing code.
2108 2001-11-19 Akim Demaille <akim@epita.fr>
2110 * src/system.h (LIST_FREE, shortcpy): New.
2111 * src/LR0.c: Use them.
2112 * src/output.c (free_itemsets, free_reductions, free_shifts):
2113 Remove, replaced by LIST_FREE.
2115 2001-11-19 Akim Demaille <akim@epita.fr>
2117 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
2118 (REDUCTIONS_ALLOC): New.
2119 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
2122 2001-11-19 Akim Demaille <akim@epita.fr>
2124 * src/LR0.c (new_state): Complete trace code.
2125 * src/nullable.c (set_nullable): Don't translate traces.
2127 2001-11-19 Akim Demaille <akim@epita.fr>
2129 * src/print_graph.c (print_core): Better locality of variables.
2130 * src/print.c (print_core): Likewise.
2132 2001-11-19 Akim Demaille <akim@epita.fr>
2134 * src/vcg.c: You do the output, so you are responsible of the
2135 handling of VCG syntax, in particular: use quotearg.
2136 * src/print_graph.c: Don't.
2137 (print_actions): Don't output the actions as part of the nodes,
2138 since that's the job of the edges.
2139 (print_state): Don't output by hand: fill the node description,
2140 and ask for its output.
2142 2001-11-19 Akim Demaille <akim@epita.fr>
2144 * src/bison.simple (yyparse): When verbosely reporting an error,
2145 no longer put additional quotes around token names.
2146 * tests/calc.at: Adjust.
2148 2001-11-19 Akim Demaille <akim@epita.fr>
2150 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
2151 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
2152 * src/output.c: Adjust.
2154 2001-11-19 Akim Demaille <akim@epita.fr>
2156 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
2158 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
2160 2001-11-19 Akim Demaille <akim@epita.fr>
2162 * src/gram.h (rule_t): New.
2164 (rrhs, rlhs): Remove, part of state_t.
2165 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
2166 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
2167 * src/reader.c, src/reduce.c: Adjust.
2169 2001-11-19 Akim Demaille <akim@epita.fr>
2171 * src/reader.c (symbols_output): New, extracted from...
2172 (packsymbols): Here.
2175 2001-11-19 Akim Demaille <akim@epita.fr>
2177 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
2178 (maxrhs): this new function.
2180 2001-11-19 Akim Demaille <akim@epita.fr>
2182 * src/lalr.c (F): New macro to access the variable F.
2185 2001-11-19 Akim Demaille <akim@epita.fr>
2187 * src/lalr.h (LA): New macro to access the variable LA.
2188 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
2189 * src/lalr.c: Adjust.
2191 2001-11-19 Akim Demaille <akim@epita.fr>
2193 * src/lalr.c (initialize_LA): Only initialize LA. Let...
2194 (set_state_table): handle the `lookaheads' members.
2196 2001-11-19 Akim Demaille <akim@epita.fr>
2198 * src/lalr.h (lookaheads): Removed array, whose contents is now
2200 (state_t): this structure.
2201 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
2204 2001-11-19 Akim Demaille <akim@epita.fr>
2206 * src/lalr.h (consistent): Removed array, whose contents is now
2208 (state_t): this structure.
2209 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
2212 2001-11-19 Akim Demaille <akim@epita.fr>
2214 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
2215 contents are now members of...
2216 (state_t): this structure.
2217 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
2220 2001-11-19 Akim Demaille <akim@epita.fr>
2222 * src/lalr.h (state_t): New.
2223 (state_table): Be a state_t * instead of a core **.
2224 (accessing_symbol): Remove, part of state_t.
2225 * src/lalr.c: Adjust.
2226 (set_accessing_symbol): Merge into...
2227 (set_state_table): this.
2228 * src/print_graph.c, src/conflicts.c: Adjust.
2230 2001-11-14 Akim Demaille <akim@epita.fr>
2232 * tests/calc.at, tests/output.at, tests/regression.at,
2233 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
2234 now the tests are run in private dirs, therefore AC_CLEANUP and
2235 family can be simplified to 0-ary.
2236 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
2237 use abs. path to find config.h.
2238 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
2239 stderr, there can be way too much random noise.
2240 Instead pass -Werror to GCC and rely on the exit status.
2241 Reported by Wolfram Wagner.
2243 2001-11-14 Akim Demaille <akim@epita.fr>
2245 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
2246 defined only if yyoverflow is defined, to avoid `warning: unused
2248 Reported by The Test Suite.
2250 2001-11-14 Akim Demaille <akim@epita.fr>
2252 * src/print.c: Include reduce.h.
2253 Reported by Hans Aberg.
2255 2001-11-14 Akim Demaille <akim@epita.fr>
2257 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
2258 Revert a previous patch: these are really const.
2259 * src/conflicts.c (conflict_report): Additional useless pair of
2260 braces to pacify GCC's warnings for `if () if () {} else {}'.
2261 * src/lex.c (parse_percent_token): Replace equal_offset with
2264 Be sure to strdup `arg' when used, since there is no reason for
2265 token_buffer not to change.
2267 2001-11-14 Akim Demaille <akim@epita.fr>
2269 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
2271 * src/main.c (main): Use them.
2272 Suggested by Hans Aberg.
2274 2001-11-12 Akim Demaille <akim@epita.fr>
2276 * src/system.h (ngettext): Now that we use ngettext, be sure to
2277 provide a default definition when NLS are not used.
2279 2001-11-12 Akim Demaille <akim@epita.fr>
2281 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
2282 Use @kbd to denote user input.
2283 (Language and Grammar): ANSIfy the example.
2284 Adjust its layout for info/notinfo.
2285 (Location Tracking Calc): Output error messages to stderr.
2286 Output locations in a more GNUtically correct way.
2287 Fix a couple of Englishos.
2288 Adjust @group/@end group pairs.
2290 2001-11-12 Akim Demaille <akim@epita.fr>
2292 %expext was not functioning at all.
2294 * src/conflicts.c (expected_conflicts): Set to -1.
2295 (conflict_report): Use ngettext.
2296 (conflicts_print): Check %expect and make its violation an error.
2297 * doc/bison.texinfo (Expect Decl): Adjust.
2298 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
2299 * tests/regression.at (%expect not enough, %expect right)
2300 (%expect too much): New.
2302 2001-11-12 Akim Demaille <akim@epita.fr>
2304 * tests/regression.at (Conflicts): Rename as...
2305 (Unresolved SR Conflicts): this.
2306 (Solved SR Conflicts): New.
2308 2001-11-12 Akim Demaille <akim@epita.fr>
2310 * src/reduce.c (print_results): Rename as...
2311 (reduce_output): This.
2312 Output to OUT, passed as argument, instead of output_obstack.
2313 (dump_grammar): Likewise.
2316 (reduce_grammar): No longer call reduce_output, since...
2317 * src/print.c (print_results): do it.
2318 * src/main.c (main): Call reduce_free;
2320 2001-11-12 Akim Demaille <akim@epita.fr>
2322 * src/conflicts.c (print_reductions): Accept OUT as argument.
2323 Output to it, not to output_obstack.
2324 * src/print.c (print_actions): Adjust.
2326 2001-11-12 Akim Demaille <akim@epita.fr>
2328 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
2329 the result instead of using...
2330 (src_total, rrc_total, src_count, rrc_count): Remove.
2331 (any_conflicts): Remove.
2332 (print_conflicts): Split into...
2333 (conflicts_print, conflicts_output): New.
2334 * src/conflicts.h: Adjust.
2335 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
2336 * src/print.c (print_grammar): Issue `\n' between two rules.
2337 * tests/regression.at (Conflicts): New.
2338 Reported by Tom Lane.
2340 2001-11-12 Akim Demaille <akim@epita.fr>
2342 * tests/regression.at (Invalid input): Remove, duplicate with
2343 ``Invalid input: 1''.
2345 2001-11-12 Akim Demaille <akim@epita.fr>
2347 * tests/torture.at (AT_DATA_STACK_TORTURE)
2348 (Exploding the Stack Size with Alloca)
2349 (Exploding the Stack Size with Malloc): New.
2351 2001-11-12 Akim Demaille <akim@epita.fr>
2353 * src/bison.simple (YYSTACK_REALLOC): New.
2354 (yyparse) [!yyoverflow]: Use it and free the old stack.
2355 Reported by Per Allansson.
2357 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
2359 * src/bison.simple: Define type yystype instead of YYSTYPE, and
2360 define CPP macro, which substitute YYSTYPE by yystype.
2361 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
2362 with yyltype/YYLTYPE. This allows inclusion of the generated
2363 header within the parser if the compiler, such as GGC, accepts
2364 multiple equivalent #defines.
2367 2001-11-05 Akim Demaille <akim@epita.fr>
2369 * src/reader.c (symbols_output): New, extracted from...
2370 (packsymbols): here.
2373 2001-11-05 Akim Demaille <akim@epita.fr>
2375 * src/lex.c (parse_percent_token): s/quotearg/quote/.
2377 2001-11-05 Akim Demaille <akim@epita.fr>
2379 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
2382 2001-11-05 Akim Demaille <akim@epita.fr>
2384 * src/options.h (struct option_table_struct): set_flags is void*.
2385 * src/options.c (longopts): Support `--output' and `%output'.
2387 * src/lex.h (tok_setopt): Remove, replaced with...
2388 (tok_intopt, tok_stropt): these new guys.
2389 * src/lex.c (getopt.h): Not needed.
2390 (token_buffer, unlexed_token_buffer): Not const.
2391 (percent_table): Promote `-' over `_' in directive names.
2392 Active `%name-prefix', `file-prefix', and `output'.
2393 (parse_percent_token): Accept possible arguments to directives.
2394 Promote `-' over `_' in directive names.
2396 2001-11-04 Akim Demaille <akim@epita.fr>
2398 * doc/bison.texinfo (Decl Summary): Split the list into
2399 `directives for grammars' and `directives for bison'.
2401 Add description of `%name-prefix', `file-prefix', and `output'.
2402 Promote `-' over `_' in directive names.
2403 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
2404 Simplify the description of `--name-prefix'.
2405 Promote `-' over `_' in directive names.
2406 Promote `--output' over `--output-file'.
2407 Fix the description of `--defines'.
2408 * tests/output.at: Exercise %file-prefix and %output.
2410 2001-11-02 Akim Demaille <akim@epita.fr>
2412 * doc/refcard.tex: Update.
2414 2001-11-02 Akim Demaille <akim@epita.fr>
2416 * src/symtab.h (SUNDEF): New.
2417 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
2418 stand for `uninitialized', instead of 0.
2419 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
2420 * src/lex.c (lex): Adjust.
2422 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
2424 Let yylex return it instead of a plain 0.
2425 Reported by Dick Streefland.
2427 2001-11-02 Akim Demaille <akim@epita.fr>
2429 * tests/regression.at (Mixing %token styles): New test.
2431 2001-11-02 Akim Demaille <akim@epita.fr>
2433 * src/reader.c (parse_thong_decl): Formatting changes.
2434 (token_translations_init): New, extracted from...
2435 (packsymbols): Here.
2438 2001-11-01 Akim Demaille <akim@epita.fr>
2440 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
2441 Check that `9foo.y' produces correct cpp guards.
2442 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
2446 2001-11-01 Akim Demaille <akim@epita.fr>
2448 * tests/regression.at (Invalid input: 2): New.
2449 * src/lex.c (unlexed_token_buffer): New.
2450 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
2454 2001-11-01 Akim Demaille <akim@epita.fr>
2456 * tests/calc.at: Catch up with 1.30.
2457 * configure.in: Bump to 1.49a.
2458 Adjust to newer Autotest.
2460 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
2462 * src/conflicts.c: Move global variables rrc_total and src_total ...
2463 (print_conflicts): here.
2464 * src/output.c (output): Free global variable user_toknums.
2465 * src/lex.c (token_obstack): Become static.
2467 2001-10-18 Akim Demaille <akim@epita.fr>
2469 * tests/atlocal.in (GCC): Add.
2470 * tests/calc.at: s/m4_match/m4_bmatch/.
2471 s/m4_patsubst/m4_bpatsubst/.
2472 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
2473 * configure.in: AC_SUBST(GCC).
2475 2001-10-14 Marc Autret <autret_m@epita.fr>
2477 * src/options.c (create_long_option_table): Fix.
2479 2001-10-10 Akim Demaille <akim@epita.fr>
2481 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
2483 2001-10-04 Akim Demaille <akim@epita.fr>
2485 * src/reader.c (parse_union_decl): Push the caracters in
2486 union_obstack, not attrs_obstack.
2488 2001-10-04 Akim Demaille <akim@epita.fr>
2490 Merge in the branch 1.29.
2492 * src/reader.c (packsymbols): Use a temporary obstack for
2493 `%%tokendef', since output_stack is already used elsewhere.
2495 2001-10-02 Akim Demaille <akim@epita.fr>
2499 2001-10-02 Akim Demaille <akim@epita.fr>
2503 2001-10-02 Akim Demaille <akim@epita.fr>
2505 * tests/regression.at (Invalid CPP headers): New.
2506 From Alexander Belopolsky.
2507 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
2509 2001-10-02 Akim Demaille <akim@epita.fr>
2511 * tests/regression.at (Invalid input): New.
2512 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
2515 2001-10-02 Akim Demaille <akim@epita.fr>
2517 * tests/calc.at: Now that --debug works, the tests must be adjusted.
2519 2001-10-02 Akim Demaille <akim@epita.fr>
2521 * src/output.c (output_parser): Assert `skeleton'.
2522 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
2526 2001-10-01 Marc Autret <autret_m@epita.fr>
2528 * src/lex.h: Echo modifications.
2529 * src/lex.c (unlex): Parameter is now token_t.
2532 2001-10-01 Marc Autret <autret_m@epita.fr>
2534 * src/main.c: Include lex.h.
2537 2001-09-29 Akim Demaille <akim@epita.fr>
2539 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
2541 2001-09-28 Akim Demaille <akim@epita.fr>
2543 * tests/testsuite.at: Update to newer Autotest.
2544 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
2546 2001-09-27 Akim Demaille <akim@epita.fr>
2548 Position independent wrapper.
2550 * tests/bison: Remove.
2551 * tests/bison.in: New.
2552 * configure.in: Adjust.
2554 2001-09-27 Paul Eggert <eggert@twinsun.com>
2556 Port quotearg fixes from tar 1.13.24.
2558 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
2560 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
2561 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
2563 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
2564 * m4/mbrtowc.m4: New file.
2565 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
2566 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
2568 2001-09-27 Akim Demaille <akim@epita.fr>
2572 2001-09-27 Akim Demaille <akim@epita.fr>
2576 2001-09-25 Akim Demaille <akim@epita.fr>
2578 * src/system.h: Include `xalloc.h'.
2579 Remove it from the C files.
2580 * src/files.c (output_files): Free the obstacks.
2581 * src/lex.c (init_lex): Rename as...
2584 * src/main.c (main): Use it.
2586 2001-09-24 Marc Autret <autret_m@epita.fr>
2588 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
2589 to output informations in fout (FILE*).
2590 (open_graph, close_graph): Likewise.
2591 (output_graph, output_edge, output_node): Likewise.
2592 * src/vcg.h: Update function prototypes.
2593 * src/print_graph.c (print_graph): Open output graph file.
2594 (print_actions): Adjust.
2595 * src/files.h: Remove extern declaration.
2596 * src/files.c: Remove graph_obstack declaration.
2597 (open_files): Remove graph_obstack initialization.
2598 (output_files): Remove graph_obstack saving.
2600 2001-09-24 Marc Autret <autret_m@epita.fr>
2602 * src/files.c (compute_output_file_names): Fix.
2604 2001-09-24 Marc Autret <autret_m@epita.fr>,
2605 Akim Demaille <akim@epita.fr>
2607 * src/reader.c (reader): Remove call to free_symtab ().
2608 * src/main.c (main): Call it here.
2610 * src/conflicts.c (initialize_conflicts): Rename as...
2611 (solve_conflicts): this.
2612 * src/print.c (print_core, print_actions, print_state)
2613 (print_grammar): Dump to a file instead a `output_obstack'.
2614 (print_results): Dump `output_obstack', and then proceed with the
2616 * src/files.c (compute_output_file_names, close_files): New.
2617 (output_files): Adjust.
2618 * src/main.c (main): Adjust.
2620 2001-09-23 Marc Autret <autret_m@epita.fr>
2622 * src/files.c (compute_header_macro): Computes header macro name
2623 from spec_defines_file when given.
2625 2001-09-23 Marc Autret <autret_m@epita.fr>
2627 * src/files.c (output_files): Add default extensions.
2629 2001-09-22 Akim Demaille <akim@epita.fr>
2631 * src/conflicts.c (finalize_conflicts): Rename as...
2632 (free_conflicts): this.
2634 2001-09-22 Akim Demaille <akim@epita.fr>
2636 * src/gram.c (gram_free): Rename back as...
2638 (output_token_translations): Free `token_translations'.
2639 * src/symtab.c (free_symtab): Free the tag field.
2641 2001-09-22 Akim Demaille <akim@epita.fr>
2643 Remove `translations' as it is always set to true.
2645 * src/gram.h: Adjust.
2646 * src/reader.c (packsymbols, parse_token_decl): Adjust
2647 * src/print.c (print_grammar): Adjust.
2648 * src/output.c (output_token_translations): Adjust.
2649 * src/lex.c (lex): Adjust.
2650 * src/gram.c: Be sure the set pointers to NULL.
2651 (dummy): Rename as...
2654 2001-09-22 Akim Demaille <akim@epita.fr>
2656 * configure.in: Invoke AM_LIB_DMALLOC.
2657 * src/system.h: Use dmalloc.
2658 * src/LR0.c: Be sure to have pointers initialized to NULL.
2659 (allocate_itemsets): Allocate kernel_items only if needed.
2661 2001-09-22 Akim Demaille <akim@epita.fr>
2663 * configure.in: Bump to 1.29b.
2664 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
2665 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
2666 need xmalloc.c in calc.y.
2669 2001-09-21 Akim Demaille <akim@epita.fr>
2672 * Makefile.maint, config/config.guess, config/config.sub,
2673 * config/missing: Update from masters.
2674 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
2676 * configure.in (ALL_LINGUAS): Add `tr'.
2678 2001-09-21 Akim Demaille <akim@epita.fr>
2680 * tests/Makefile.am (package.m4): Move to...
2681 ($(srcdir)/$(TESTSUITE)): here.
2683 2001-09-20 Akim Demaille <akim@epita.fr>
2685 * src/complain.c: No longer try to be standalone: use system.h.
2686 Don't assume __STDC__ is defined to 1. Just test if it is defined.
2687 * src/complain.h: Likewise.
2688 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
2689 Remove the unused variable `n'.
2690 From Albert Chin-A-Young.
2692 2001-09-18 Marc Autret <autret_m@epita.fr>
2694 * doc/bison.1: Update.
2695 * doc/bison.texinfo (Bison Options): Update --defines and --graph
2697 (Option Cross Key): Update.
2700 2001-09-18 Marc Autret <autret_m@epita.fr>
2702 * tests/regression.at: New test (comment in %union).
2704 2001-09-18 Marc Autret <autret_m@epita.fr>
2706 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
2708 Reported by Keith Browne.
2710 2001-09-18 Marc Autret <autret_m@epita.fr>
2712 * tests/output.at: Add tests for --defines and --graph.
2714 2001-09-18 Marc Autret <autret_m@epita.fr>
2716 * tests/output.at: Removes tests of %{header,src}_extension features.
2718 2001-09-18 Akim Demaille <akim@epita.fr>
2720 * tests/Makefile.am (package.m4): New.
2721 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
2722 (_AT_CHECK_CALC_ERROR): Likewise.
2723 Factor the `, ' part of verbose error messages.
2725 2001-09-18 Marc Autret <autret_m@epita.fr>
2727 * src/getargs.c (longopts): Declare --defines and --graph as options
2728 with optional arguments.
2729 * src/files.h: Add extern declarations.
2730 * src/files.c (spec_graph_file, spec_defines_file): New.
2731 (output_files): Update.
2732 Remove CPP-outed code.
2734 2001-09-18 Marc Autret <autret_m@epita.fr>
2736 Turn off %{source,header}_extension feature.
2738 * src/files.c (compute_exts_from_gf): Update.
2739 (compute_exts_from_src): Update.
2740 (output_files): CPP-out useless code.
2741 * src/files.h: Remove {header,source}_extension extern declarations.
2742 * src/reader.c (parse_dquoted_param): CPP-out.
2743 (parse_header_extension_decl): Remove.
2744 (parse_source_extension_decl): Remove.
2745 (read_declarations): Remove cases tok_{hdrext,srcext}.
2746 * src/lex.c (percent_table): Remove {header,source}_extension entries.
2747 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
2749 2001-09-10 Akim Demaille <akim@epita.fr>
2751 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
2752 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
2753 (AT_CHECK_OUTPUT): this.
2754 Merely check ls' exit status, its output is useless.
2756 2001-09-10 Akim Demaille <akim@epita.fr>
2758 * tests/calc.at: Use m4_match.
2759 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
2761 2001-09-10 Marc Autret <autret_m@epita.fr>,
2762 Akim Demaille <akim@epita.fr>
2764 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
2766 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
2768 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
2769 * src/lex.h: Adjust prototype.
2770 (token_t): Add `tok_undef'.
2771 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
2772 (parse_percent_token): Now returns token_t.
2773 Add default statement in switch.
2774 (lex): Separate `c' as an input variable, from the token_t result
2776 (unlexed): Is a token_t.
2778 2001-09-10 Akim Demaille <akim@epita.fr>
2780 * configure.in: Bump to 1.29a.
2782 2001-09-07 Akim Demaille <akim@epita.fr>
2786 2001-08-30 Akim Demaille <akim@epita.fr>
2788 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
2789 * m4/atconfig.m4: Remove.
2790 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
2792 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
2793 m4_if, m4_patsubst, and m4_regexp.
2794 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
2795 `input' file instead of echo.
2797 2001-08-29 Akim Demaille <akim@epita.fr>
2801 2001-08-29 Akim Demaille <akim@epita.fr>
2805 2001-08-29 Paul Eggert <eggert@twinsun.com>
2807 * src/bison.simple (yyparse): Don't take the address of an
2808 item before the start of an array, as that doesn't conform to
2811 2001-08-29 Robert Anisko <anisko_r@epita.fr>
2813 * doc/bison.texinfo (Location Tracking Calc): New node.
2815 2001-08-29 Paul Eggert <eggert@twinsun.com>
2817 * src/output.c (output): Do not define const, as this now
2818 causes more problems than it cures.
2820 2001-08-29 Akim Demaille <akim@epita.fr>
2822 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
2824 Be sure to tag the `detailmenu'.
2826 2001-08-29 Akim Demaille <akim@epita.fr>
2828 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
2829 download in a tmp dir.
2831 2001-08-28 Marc Autret <autret_m@epita.fr>
2833 * config/depcomp: New file.
2835 2001-08-28 Marc Autret <autret_m@epita.fr>
2837 * doc/bison.1 (mandoc): Adjust.
2838 From Juan Manuel Guerrero.
2840 2001-08-28 Marc Autret <autret_m@epita.fr>
2842 * src/print_graph.c (print_state): Fix.
2844 2001-08-27 Marc Autret <autret_m@epita.fr>
2846 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
2848 Echo modifications to the functions prototypes.
2849 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
2851 2001-08-27 Marc Autret <autret_m@epita.fr>
2853 * src/vcg.c: Include `xalloc.h'.
2854 (add_colorentry): New.
2855 (add_classname): New.
2856 (add_infoname): New.
2857 * src/vcg.h: Add new prototypes.
2859 2001-08-27 Akim Demaille <akim@epita.fr>
2861 * Makefile.maint: Sync. again with CVS Autoconf.
2863 2001-08-27 Akim Demaille <akim@epita.fr>
2865 * Makefile.maint: Formatting changes.
2866 (po-update, cvs-update, update): New targets.
2869 2001-08-27 Akim Demaille <akim@epita.fr>
2871 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
2872 * Makefile.maint: Sync. with CVS Autoconf.
2874 2001-08-27 Marc Autret <autret_m@epita.fr>
2876 * src/vcg.h (struct infoname_s): New.
2877 (struct colorentry_s): New.
2878 (graph_s): New fields {vertical,horizontal}_order in structure.
2879 Add `infoname' field.
2880 Add `colorentry' field;
2881 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
2882 (G_HORIZONTAL_ORDER): New.
2884 (G_COLORENTRY): New.
2885 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
2886 Add output of `infoname'.
2887 Add output of `colorentry'.
2889 2001-08-27 Marc Autret <autret_m@epita.fr>
2891 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
2892 This one shadowed a global parameter.
2894 2001-08-24 Marc Autret <autret_m@epita.fr>
2896 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
2897 instead of `unsigned'.
2898 (print_state): Do not call obstack_object_size () in obstack_grow ()
2899 to avoid macro variables shadowing.
2901 2001-08-23 Marc Autret <autret_m@epita.fr>
2903 * src/lex.c (percent_table): Typo: s/naem/name/.
2905 Normalize new options declarations.
2907 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
2909 * tests/suite.at: Exercise %header_extension and %source_extension.
2911 2001-08-16 Marc Autret <autret_m@epita.fr>
2913 * src/reader.c (parse_dquoted_param): New.
2914 (parse_header_extension_decl): Use it.
2915 (parse_source_extension_decl): Likewise.
2917 2001-08-16 Marc Autret <autret_m@epita.fr>
2919 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
2920 (get_xxxx_str): Use assert () instead of complain ().
2921 Remove return invokations in default cases.
2922 (get_decision_str): Modify default behaviour. Remove second argument.
2923 Echo modifications on calls.
2924 (output_graph): Fix.
2926 2001-08-16 Marc Autret <autret_m@epita.fr>
2928 * src/getargs.c (usage): Update with ``-g, --graph''.
2930 2001-08-16 Marc Autret <autret_m@epita.fr>
2932 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
2933 (Option Cross Key): Likewise.
2934 * doc/bison.1: Update.
2936 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
2938 * src/output.c (output_master_parser): Don't finish action_obstack.
2939 (output_parser): Don't care about the muscle action, here.
2940 (prepare): Copy the action_obstack in the action muscle.
2941 (output): Free action_obstack.
2943 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
2945 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
2946 will contain `%union' declaration.
2947 (parse_union_decl): Delete #line directive output.
2948 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
2949 informations about %union.
2950 (parse_union_decl): Copy the union_obstack in the muscle stype.
2951 * src/bison.simple: Add new #line directive.
2952 Add typdef %%stype YYSTYPE.
2954 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
2956 * src/bison.simple: Add new `#line' directive.
2958 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
2960 * src/bison.simple: New `#line' directive.
2961 * src/output.c (output_parser): Support new dynamic muscle input_line.
2963 2001-09-22 Marc Autret <autret_m@epita.fr>
2965 * src/output.c (output_master_parser): New.
2966 (output_parser): Be more re-entrant.
2968 2001-09-21 Marc Autret <autret_m@epita.fr>
2970 * src/reader.c (copy_definition, parse_union_decl): Update and use
2972 (copy_action): Likewise.
2973 Use obstack_1grow ().
2974 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
2976 2001-09-21 Marc Autret <autret_m@epita.fr>
2978 * src/options.c (option_table): Adjust.
2979 * src/lex.c (parse_percent_token): Fix.
2981 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
2983 * src/options.c (symtab.h): Include it, need by lex.h.
2985 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
2987 * src/lex.c (parse_percent_token): Change type of variable `tx', which
2988 is now an option_table_struct*.
2989 (option_strcmp): New function option_strcmp.
2990 (parse_percent_token): Call option_strcmp.
2991 * src/getargs.c (xalloc.h, options.h): Include it.
2992 (getargs): Call create_long_option_table.
2993 (getargs): Free longopts at the end of the function.
2994 (shortopts): Move in options.c.
2995 * src/options.c (create_long_option_table): New function. Convert
2996 information from option_table to option structure.
2997 * src/reader.c (options.h): Include it.
2999 * src/Makefile.am: Adjust.
3000 * src/options.c (option_table): Create from longopts and percent_table.
3001 * src/getargs.c (longopts): Delete.
3002 * src/lex.c (struct percent_table_struct): Delete.
3003 (percent_table): Delete.
3004 (options.h): Include it.
3005 * src/options.c: Create.
3006 * src/options.h: Create.
3007 Declare enum opt_access_e.
3008 Define struct option_table_struct.
3010 2001-09-20 Marc Autret <autret_m@epita.fr>
3012 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
3015 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
3017 * src/bison.simple: s/%%filename/%%skeleton.
3018 * src/muscle_tab.c (getargs.h): Include it.
3019 (muscle_init): Insert new muscle skeleton.
3021 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
3023 * src/output.c (output_parser): Delete unused variable actions_dumped.
3025 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
3027 * src/output.c (output): Delete call to reader_output_yylsp.
3028 * src/reader.c (reader): Likewise.
3029 * src/reader.h: Delete declaration of reader_output_yylsp.
3031 2001-09-02 Marc Autret <autret_m@epita.fr>
3033 * src/reader.c: Include muscle_tab.h.
3034 (parse_union_decl): Update.
3035 (parse_macro_decl): Rename parse_muscle_decl.
3036 Update to use renamed functions and variable.
3037 (read_declarations, copy_action, read_additionnal_code, : Updated
3038 with correct variables and functions names.
3039 (packsymbols, reader): Likewise.
3041 * src/reader.h (muscle_obstack): Extern declaration update.
3043 * src/output.c: Include muscle_tab.h
3044 In all functions using macro_insert, change by using muscle_insert ().
3045 (macro_obstack): Rename muscle_obstack.
3046 Echo modifications in the whole file.
3047 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
3048 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
3049 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
3051 * src/muscle_tab.h: Update double inclusion macros.
3052 (macro_entry_s): Rename muscle_entry_s.
3055 * src/muscle_tab.c: Include muscle_tab.h.
3056 Rename macro_tabble to muscle_table.
3057 (mhash1, mhash2, mcmp): Use muscle_entry.
3058 (macro_init): Rename muscle_init. Update.
3059 (macro_insert): Rename muscle_insert. Update.
3060 (macro_find): Rename muscle_find. Update.
3062 * src/main.c: Include muscle_tab.h.
3063 (main): Call muscle_init ().
3064 * src/Makefile.am (bison_SOURCES): Echo modifications.
3066 2001-09-02 Marc Autret <autret_m@epita.fr>
3068 Now the files macro_tab.[ch] are named muscle_tab.[ch].
3070 * src/muscle_tab.c, src/muscle_tab.h: Add files.
3072 2001-09-02 Marc Autret <autret_m@epita.fr>
3074 * src/macrotab.c, src/macrotab.h: Remove.
3076 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
3078 * src/reader.c (copy_guard): Use muscle to specify the `#line'
3081 2001-09-01 Marc Autret <autret_m@epita.fr>
3083 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
3084 to an explicit value to activate the feature. We do it here.
3086 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
3088 * src/output.c (prepare): Delete the `filename' muscule insertion.
3089 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
3090 (parse_union_decl): Likewise.
3091 * src/macrotab.c (macro_init): Initialize filename by infile.
3093 2001-08-31 Marc Autret <autret_m@epita.fr>
3095 * src/bison.simple (YYLSP_NEEDED): New definition.
3096 * src/output.c (prepare): Add macro insertion of `locations_flag'
3098 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
3100 * src/output.c (prepare): Delete insertion of previous muscles,
3101 and insert the `prefix' muscles.
3102 * src/macrotab.c (macro_init): Likewise.
3103 (macro_init): Initialization prefix directive by `yy'.
3104 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
3105 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
3106 yylval, yydebug, yyerror, yynerrs and yyparse.
3107 New directive `#define' to substitute yydebug, ... with option
3110 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
3112 * src/main.c (main): Standardize.
3113 * src/output.c (output_table_data, output_parser): Likewise.
3114 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
3116 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
3118 * src/reader.c (read_additionnal_code): Rename %%user_code to
3120 * src/output.c (output): Rename %%declarations to %%prologue.
3121 * src/bison.simple: Echo modifications.
3123 2001-08-31 Marc Autret <autret_m@epita.fr>
3125 * src/reader.c (readgram): CleanUp.
3126 (output_token_defines): Likewise.
3127 (packsymbols): Likewise.
3129 * src/output.c (output): CPP-out useless code.
3131 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
3133 * src/reader.c (reader): Delete obsolete call to function
3134 output_trailers and output_headers.
3135 * src/output.h: Remove obsolete functions prototypes of output_headers
3136 and output_trailers.
3138 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
3140 * src/main.c: Include macrotab.h.
3141 * src/macrotab.h (macro_entry_s): Constify fields.
3142 Adjust functions prototypes.
3143 * src/macrotab.c (macro_insert): Constify key and value.
3144 (macro_find): Constify key.
3145 (macro_insert): Include 'xalloc.h'
3146 (macro_insert): Use XMALLOC.
3147 (macro_find): Constify return value.
3148 * src/output.c (output_table_data): Rename table to table_data.
3149 (output_parser): Constify macro_key, macro_value.
3151 2001-08-30 Marc Autret <autret_m@epita.fr>
3153 * src/reader.c (parse_skel_decl): New.
3154 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
3155 * src/lex.h (token_t): New token `tok_skel'.
3156 * src/lex.c (percent_table): Add skeleton option entry.
3159 2001-08-29 Marc Autret <autret_m@epita.fr>
3161 * src/bison.simple: Add %%user_code directive at the end.
3162 * src/reader.c (read_additionnal_code): New.
3164 * src/output.c (output_program): Remove.
3167 2001-08-28 Marc Autret <autret_m@epita.fr>
3169 * src/output.c (output_actions): Clean up.
3170 (output_gram): CPP-out useless code.
3171 * src/reader.c (reader): Clean up, CPP-out useless code.
3173 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
3175 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
3177 * src/bison.simple: Add `%%definitions'.
3179 2001-08-28 Marc Autret <autret_m@epita.fr>
3181 * config/depcomp: New file.
3183 2001-08-27 Paul Eggert <eggert@twinsun.com>
3185 * src/bison.simple (yyparse): Don't take the address of an
3186 item before the start of an array, as that doesn't conform to
3189 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
3191 * src/output.c (output): Remove the initialization of the macro
3192 obstack. It was done too late here.
3194 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
3196 (reader): Initialize the macro obstack here, since we need it to grow
3197 '%define' directives.
3199 * src/reader.h: Declare the macro obstack as extern.
3201 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
3203 * src/output.c (output_parser): Fix. Store single '%' characters in
3204 the output obstack instead of throwing them away.
3206 2001-08-27 Akim Demaille <akim@epita.fr>
3208 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
3210 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
3212 * lib/Makefile.am: Adjust.
3214 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
3216 * src/bison.simple: Update and add '%%' directives.
3218 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
3220 * src/reader.c (reader): Remove calls to 'output_headers' and
3221 'output_trailers'. Remove some C output.
3222 (readgram): Disable a piece of code that was writing a default
3223 definition for 'YYSTYPE'.
3224 (reader_output_yylsp): Remove.
3225 (packsymbols): Output token defintions to a macro.
3226 (copy_definition): Disable C output.
3228 * src/reader.c (parse_macro_decl): New function used to parse macro
3230 (copy_string2): Put the body of copy_string into this new function.
3231 Add a parameter to let the caller choose whether he wants to copy the
3232 string delimiters or not.
3233 (copy_string): Be a simple call to copy_string2 with the last argument
3235 (read_declarations): Add case for macro definition.
3236 (copy_identifier): New.
3237 (parse_macro_decl): Read macro identifiers using copy_identifier
3240 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
3242 * src/output.c (prepare): Add prefixed names.
3243 (output_parser): Output semantic actions.
3244 (output_parser): Fix bug on '%%line' directives.
3246 * src/output.c (output_headers): Remove. The C code printed by this
3247 function should now be in the skeletons.
3248 (output_trailers): Remove.
3249 (output): Disable call to 'reader_output_yylsp'.
3250 (output_rule_data): Do not output tables to the table obstack.
3252 * src/output.c: Remove some C dedicated output.
3253 Improve the use of macro and output obstacks.
3254 (output_defines): Remove.
3256 * src/output.c (output_token_translations): Associate 'translate'
3257 table with a macro. No output to the table obstack.
3258 (output_gram): Same for 'rhs' and 'prhs'.
3259 (output_stos): Same for 'stos'.
3260 (output_rule_data): Same for 'r1' and 'r2'.
3261 (token_actions): Same for 'defact'.
3262 (goto_actions): Same for 'defgoto'.
3263 (output_base): Same for 'pact' and 'pgoto'.
3264 (output_table): Same for 'table'.
3265 (output_check): Same for 'check'.
3267 * src/output.c (output_table_data): New function.
3268 (output_short_table): Remove.
3269 (output_short_or_char_table): Remove.
3271 * src/output.c (output_parser): Replace most of the skeleton copy code
3272 with something new. Skeletons are now processed character by character
3273 rather than line by line, and Bison looks for '%%' macros. This is the
3274 first step in making Bison's output process (a lot) more flexible.
3275 (output_parser): Use the macro table.
3277 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
3279 * src/main.c (main): Initialize the macro table.
3281 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
3283 * src/lex.c (percent_table): Add tok_define.
3284 * src/lex.h: Add tok_define.
3286 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
3288 * src/macrotab.c: New file.
3289 * src/macrotab.h: New file.
3290 * src/Makefile.am: Update.
3292 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
3294 * lib/hash.c: New file.
3295 * lib/hash.h: New file.
3296 * lib/Makefile.am: Update.
3298 2001-08-15 Akim Demaille <akim@epita.fr>
3302 2001-08-15 Marc Autret <autret_m@epita.fr>
3304 * src/reader.c (readgram): Indent output macro YYSTYPE.
3305 (packsymbols): Likewise.
3306 (output_token_defines): Likewise.
3307 * src/files.c: Standardize.
3308 (compute_header_macro): New.
3309 (defines_obstack_save): New. Use compute_header_macro.
3310 (output_files): Update. Use defines_obstack_save.
3312 2001-08-15 Akim Demaille <akim@epita.fr>
3314 * doc/bison.texinfo (Table of Symbols): Document
3317 2001-08-15 Akim Demaille <akim@epita.fr>
3319 * missing: Update from CVS Automake.
3320 * config/config.guess, config/config.sub, config/texinfo.tex:
3321 Update from gnu.org.
3323 2001-08-15 Akim Demaille <akim@epita.fr>
3325 * Makefile.maint: Sync with CVS Autoconf.
3327 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
3329 * doc/bison.texinfo: Include GNU Free Documentation License from
3331 * doc/fdl.texi: Add to package.
3333 2001-08-14 Marc Autret <autret_m@epita.fr>
3335 Turn on %{source,header}_extension features.
3337 * src/lex.c (percent_table): Un-CPP out header_extension and
3339 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
3340 (compute_exts_from_src): Remove conditions. It restores priorities
3343 2001-08-14 Marc Autret <autret_m@epita.fr>
3345 * src/files.c (compute_base_names): Add extensions computing when
3346 `--file-prefix' used.
3347 Standardize function calls.
3349 2001-08-13 Marc Autret <autret_m@epita.fr>
3351 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
3352 defining it (defined but null disables alloca).
3354 2001-08-13 Marc Autret <autret_m@epita.fr>
3356 * src/bison.simple (_yy_memcpy): CPP reformat.
3358 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
3360 * tests/atconfig.in (CPPFLAGS): Fix.
3362 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
3364 * doc/bison.texinfo: Include GNU General Public License from
3366 * doc/gpl.texi: Add to package.
3368 2001-08-10 Marc Autret <autret_m@epita.fr>
3370 * src/print_graph.h: Fix.
3371 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
3373 2001-08-10 Akim Demaille <akim@epita.fr>
3375 * src/system.h: Provide default declarations for stpcpy, strndup,
3378 2001-08-10 Robert Anisko <anisko_r@epita.fr>
3380 * doc/bison.texinfo (Locations): Update @$ stuff.
3382 2001-08-09 Robert Anisko <anisko_r@epita.fr>
3384 * src/bison.simple (YYLLOC_DEFAULT): Update.
3387 2001-08-08 Marc Autret <autret_m@epita.fr>
3389 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
3390 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
3391 Reported by Fabrice Bauzac.
3393 2001-08-08 Marc Autret <autret_m@epita.fr>
3395 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
3396 * src/vcg.c (output_node): Fix.
3397 * src/vcg.h: Cleanup.
3398 * src/print_graph.c: Add comments.
3399 (node_output_size): New global variable. Simplify the formatting of
3400 the VCG graph output.
3401 (print_actions): Unused code is now used. It notifies the final state
3402 and no action states in the VCG graph. It also give the reduce actions.
3403 The `shift and goto' edges are red and the `go to state' edges are
3405 Get the current node name and node_obstack by argument.
3406 (node_obstack): New variable.
3407 (print_state): Manage node_obstack.
3408 (print_core): Use node_obstack given by argument.
3409 A node is not only computed here but in print_actions also.
3410 (print_graph): CPP out useless code instead of commenting it.
3412 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
3414 * tests/atconfig.in (CPPFLAGS): Fix.
3416 2001-08-07 Akim Demaille <akim@epita.fr>
3418 * src/print_graph.c (quote): New.
3419 (print_core): Use it.
3421 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3423 * src/vcg.c (complain.h): Include it.
3424 Unepitaize `return' invocations.
3425 [NDEBUG] (main): Remove.
3426 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
3427 * src/files.c (open_files): Initialize graph_obstack.
3428 * src/print_graph.c (print_actions): CPP out useless code.
3429 (print_core): Don't output the last `\n' in labels.
3431 * src/files.c (output_files): Output the VCG file.
3432 * src/main.c (main): Invoke print_graph ();
3434 2001-08-06 Marc Autret <autret_m@epita.fr>
3436 Automaton VCG graph output.
3437 Using option ``-g'' or long option ``--graph'', you can generate
3438 a gram_filename.vcg file containing a VCG description of the LALR (1)
3439 automaton of your grammar.
3441 * src/main.c: Call to print_graph() function.
3442 * src/getargs.h: Update.
3443 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
3444 (graph_flag): New flag.
3446 (getargs): Add case `g'.
3447 * src/files.c (graph_obstack): New obstack struct.
3448 (open_files): Initialize new obstack.
3449 (output_files): Saves graph_obstack if required.
3450 * src/files.h (graph_obstack): New extern declaration.
3451 * src/Makefile.am: Add new source files.
3453 2001-08-06 Marc Autret <autret_m@epita.fr>
3455 * src/print_graph.c, src/print_graph.h (graph): New.
3456 * src/vcg.h: New file.
3457 * src/vcg.c: New file, VCG graph handling.
3459 2001-08-06 Marc Autret <autret_m@epita.fr>
3461 Add of %source_extension and %header_extension which specify
3462 the source or/and the header output file extension.
3464 * src/files.c (compute_base_names): Remove initialisation of
3465 src_extension and header_extension.
3466 (compute_exts_from_gf): Update.
3467 (compute_exts_from_src): Update.
3468 (output_files): Update.
3469 * src/reader.c (parse_header_extension_decl): New.
3470 (parse_source_extension_decl): New.
3471 (read_declarations): New case statements for the new tokens.
3472 * src/lex.c (percent_table): Add entries for %source_extension
3473 and %header_extension.
3474 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
3476 2001-08-06 Marc Autret <autret_m@epita.fr>
3478 * configure.in: Bump to 1.28c.
3479 * doc/bison.texinfo: Texinfo thingies.
3481 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
3483 * tests/atconfig.in (CPPFLAGS): Add.
3484 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
3486 2001-08-03 Akim Demaille <akim@epita.fr>
3490 2001-08-03 Akim Demaille <akim@epita.fr>
3492 * tests/Makefile.am (check-local): Ship testsuite.
3493 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
3496 2001-08-03 Akim Demaille <akim@epita.fr>
3498 * configure.in: Try using -Wformat when compiling.
3500 2001-08-03 Akim Demaille <akim@epita.fr>
3502 * configure.in: Bump to 1.28b.
3504 2001-08-03 Akim Demaille <akim@epita.fr>
3506 * src/complain.c: Adjust strerror_r portability issues.
3508 2001-08-03 Akim Demaille <akim@epita.fr>
3512 2001-08-03 Akim Demaille <akim@epita.fr>
3514 * src/getargs.c, src/getarg.h (skeleton)): Constify.
3515 * src/lex.c (literalchar): Avoid name clashes on `buf'.
3516 * src/getargs.c: Include complain.h.
3517 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
3518 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
3520 2001-08-03 Akim Demaille <akim@epita.fr>
3522 * src/reader.c (readgram): Display hidden chars in error messages.
3524 2001-08-03 Akim Demaille <akim@epita.fr>
3526 Update to gettext 0.10.39.
3528 2001-08-03 Akim Demaille <akim@epita.fr>
3530 * lib/strspn.c: New.
3532 2001-08-01 Marc Autret <autret_m@epita.fr>
3534 * doc/bison.texinfo: Update.
3535 * doc/bison.1 (mandoc): Update.
3536 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
3537 * src/files.c: Support output files extensions computing.
3538 (src_extension): New static variable.
3539 (header_extension): New static variable.
3541 (get_extension_index): New function, gets the index of an extension
3542 filename in a string.
3543 (compute_exts_from_gf): New function, computes extensions from the
3544 grammar file extension.
3545 (compute_exts_from_src): New functions, computes extensions from the
3546 C source file extension, file given by ``-o'' option.
3547 (compute_base_names): Update.
3548 (output_files): Update.
3550 2001-08-01 Robert Anisko <anisko_r@epita.fr>
3552 * doc/bison.texi: Document @$.
3553 (Locations): New section.
3555 2001-07-18 Akim Demaille <akim@epita.fr>
3557 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
3558 * config/prev-version.txt, config/move-if-change: New.
3559 * Makefile.am: Adjust.
3561 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
3563 * src/bison.simple (yyparse): Suppress warning `comparaison
3564 between signed and unsigned'.
3566 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
3568 * src/getargs.h (raw_flag): Remove.
3569 * src/getargs.c: Die on `-r'/`--raw'.
3570 * src/lex.c (parse_percent_token): Die on `%raw'.
3571 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
3572 * tests/calc.at: Suppress test with option `--raw'.
3574 2001-07-14 Akim Demaille <akim@epita.fr>
3577 * configure.in: Require Autoconf 2.50.
3578 Update to gettext 0.10.38.
3580 2001-03-16 Akim Demaille <akim@epita.fr>
3582 * doc/bison.texinfo: ANSIfy the examples.
3584 2001-03-16 Akim Demaille <akim@epita.fr>
3586 * getargs.c (skeleton): New variable.
3587 (longopts): --skeleton is a new option.
3588 (shortopts, getargs): -S is a new option.
3589 * getargs.h: Declare skeleton.
3590 * output.c (output_parser): Use it.
3592 2001-03-16 Akim Demaille <akim@epita.fr>
3594 * m4/strerror_r.m4: New.
3595 * m4/error.m4: Run AC_FUNC_STRERROR_R.
3596 * lib/error.h, lib/error.c: Update.
3598 2001-03-16 Akim Demaille <akim@epita.fr>
3600 * src/getargs.c (longopts): Clean up.
3602 2001-02-21 Akim Demaille <akim@epita.fr>
3604 * src/reader.c (gensym): `gensym_count' is your own.
3605 Use a static buf to create the symbol name, as token_buffer is no
3608 2001-02-08 Akim Demaille <akim@epita.fr>
3610 * src/conflicts.c (conflict_report): Be sure not to append to res
3611 between two calls, which could happen if both first sprintf were
3612 skipped, but not the first cp += strlen.
3614 2001-02-08 Akim Demaille <akim@epita.fr>
3616 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
3617 New, from fileutils 4.0.37.
3618 * configure.in: Require Autoconf 2.49c. I took some time before
3619 making this decision. This is the only way out for portability
3620 issues in Bison, it would mean way too much duplicate effort to
3621 import in Bison features implemented in 2.49c since 2.13.
3622 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
3624 2001-02-02 Akim Demaille <akim@epita.fr>
3626 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
3627 * lib/xalloc.h, lib/xmalloc.c: Update.
3629 2001-01-19 Akim Demaille <akim@epita.fr>
3631 Get rid of the ad hoc handling of token_buffer in the scanner: use
3634 * src/lex.c (token_obstack): New.
3635 (init_lex): Initialize it. No longer call...
3636 (grow_token_buffer): this. Remove it.
3637 Adjust all the places which used it to use the obstack.
3639 2001-01-19 Akim Demaille <akim@epita.fr>
3641 * src/lex.h: Rename all the tokens:
3642 s/\bENDFILE\b/tok_eof/g;
3643 s/\bIDENTIFIER\b/tok_identifier/g;
3645 Let them be enums, not #define, to ease debugging.
3646 Adjust all the code.
3648 2001-01-18 Akim Demaille <akim@epita.fr>
3650 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
3651 * src/lex.c (maxtoken, grow_token_buffer): Static.
3653 2001-01-18 Akim Demaille <akim@epita.fr>
3655 Since we now use obstacks, more % directives can be enabled.
3657 * src/lex.c (percent_table): Also accept `%yacc',
3658 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
3660 Handle the actions for `%semantic_parser' and `%pure_parser' here,
3661 instead of returning a token.
3662 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
3663 * src/reader.c (read_declarations): Adjust.
3664 * src/files.c (open_files): Don't call `compute_base_names', don't
3665 compute `attrsfile' since they depend upon data which might be
3666 *in* the input file now.
3667 (output_files): Do it here.
3668 * src/output.c (output_headers): Document the fact that this patch
3669 introduces a guaranteed SEGV for semantic parsers.
3670 * doc/bison.texinfo: Document them.
3671 * tests/suite.at: Exercise these %options.
3673 2000-12-20 Akim Demaille <akim@epita.fr>
3675 Also handle the output file (--verbose) with obstacks.
3677 * files.c (foutput): Remove.
3678 (output_obstack): New.
3679 Adjust all dependencies.
3680 * src/conflicts.c: Return a string.
3681 * src/system.h (obstack_grow_string): Rename as...
3682 (obstack_sgrow): this. Be ready to work with non literals.
3683 (obstack_fgrow4): New.
3685 2000-12-20 Akim Demaille <akim@epita.fr>
3687 * src/files.c (open_files): Fix the computation of short_base_name
3688 in the case of `-o foo.tab.c'.
3690 2000-12-20 Akim Demaille <akim@epita.fr>
3692 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
3693 (copy_dollar): Now that everything uses obstacks, get rid of the
3696 2000-12-20 Akim Demaille <akim@epita.fr>
3698 * src/files.c (open_files): Actually the `.output' file is based
3699 on the short_base_name, not base_name.
3700 * tests/suite.at (Checking output file names): Adjust.
3702 2000-12-20 Akim Demaille <akim@epita.fr>
3704 * src/bison.s1: Remove, we now use directly...
3705 * src/bison.simple: this.
3706 * src/Makefile.am: Use pkgdata instead of data.
3708 2000-12-20 Akim Demaille <akim@epita.fr>
3710 * src/files.c (guard_obstack): New.
3711 (open_files): Initialize it.
3712 (output_files): Dump it...
3713 * src/files.h: Export it.
3714 * src/reader.c (copy_guard): Use it.
3716 2000-12-19 Akim Demaille <akim@epita.fr>
3718 * src/files.c (outfile, defsfile, actfile): Removed as global
3720 (open_files): Don't compute them.
3721 (output_files): Adjust.
3722 (base_name, short_base_name): Be global.
3723 Adjust dependencies.
3725 2000-12-19 Akim Demaille <akim@epita.fr>
3727 * src/files.c (strsuffix): New.
3728 (stringappend): Be just like strcat but allocate.
3729 (base_names): Eve out from open_files.
3730 Try to simplify the rather hairy computation of base_name and
3732 (open_files): Use it.
3733 * tests/suite.at (Checking output file names): New test.
3735 2000-12-19 Akim Demaille <akim@epita.fr>
3737 * src/system.h (obstack_grow_literal_string): Rename as...
3738 (obstack_grow_string): this.
3739 * src/output.c (output_parser): Recognize `%% actions' instead of
3741 * src/bison.s1: s/$/%% actions/.
3742 * src/bison.hairy: Likewise.
3744 2000-12-19 Akim Demaille <akim@epita.fr>
3746 * src/output.c (output_parser): Compute the `#line' lines when
3748 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
3749 Suggested by Hans Aberg.
3751 2000-12-19 Akim Demaille <akim@epita.fr>
3753 Let the handling of the skeleton files be local to the procedures
3756 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
3758 (fparser, open_extra_files): Remove.
3759 (open_files, output_files): Don't take care of fparser.
3760 * src/files.h: Adjust.
3761 * src/output.c (output_parser): Open and close the file to the
3763 * src/reader.c (read_declarations): When %semantic_parser, open
3766 2000-12-19 Akim Demaille <akim@epita.fr>
3768 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
3769 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
3771 2000-12-19 Akim Demaille <akim@epita.fr>
3773 * src/files.c (open_files): Yipee! We no longer need all the code
3774 looking for `/tmp' since we have no tmp file.
3776 2000-12-19 Akim Demaille <akim@epita.fr>
3778 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
3780 * src/files.c (open_files): Less dependency on MSDOS etc.
3782 2000-12-14 Akim Demaille <akim@epita.fr>
3784 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
3785 Provide a default definition.
3786 Use it when executing the default @ action.
3787 * src/reader.c (reader_output_yylsp): No longer include
3788 `timestamp' and `text' in the default YYLTYPE.
3790 2000-12-12 Akim Demaille <akim@epita.fr>
3792 * src/reader.c (copy_definition, parse_union_decl, copy_action)
3793 (copy_guard): Quote the file names.
3794 Reported by Laurent Mascherpa.
3796 2000-12-12 Akim Demaille <akim@epita.fr>
3798 * src/output.c (output_headers, output_program, output): Be sure
3799 to escape special characters when outputting filenames.
3800 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
3801 (output_headers): Don't depend on them, Use ACTSTR.
3803 2000-11-17 Akim Demaille <akim@epita.fr>
3805 * lib/obstack.h: Formatting changes.
3806 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
3807 prevents type checking.
3808 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
3809 cast the value to (void *): assigning a `foo *' to a `void *'
3811 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
3812 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
3815 2000-11-17 Akim Demaille <akim@epita.fr>
3817 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
3819 (suite.m4, regression.m4, calc.m4): these.
3820 * tests/atgeneral.m4: Update from CVS Autoconf.
3822 2000-11-17 Akim Demaille <akim@epita.fr>
3824 * tests/regression.m4 (%union and --defines): New test,
3825 demonstrating a current bug in the obstack implementation.
3827 2000-11-17 Akim Demaille <akim@epita.fr>
3829 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
3831 Use them to declare the variables which are global or local to
3834 2000-11-17 Akim Demaille <akim@epita.fr>
3836 * acconfig.h: Remove, no longer used.
3838 2000-11-07 Akim Demaille <akim@epita.fr>
3840 * src: s/Copyright (C)/Copyright/g.
3842 2000-11-07 Akim Demaille <akim@epita.fr>
3844 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
3846 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
3848 2000-11-07 Akim Demaille <akim@epita.fr>
3850 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
3851 Merge in a single CPP if/else.
3853 2000-11-07 Akim Demaille <akim@epita.fr>
3855 * src/output.c (output): Remove useless variables.
3856 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
3857 argument `data' for consistency with the prototypes.
3859 (obstack_copy, obstack_copy0): Rename the second argument as
3860 `address' for consistency. Qualify it `const'.
3861 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
3862 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
3863 `const' their input argument (`data' or `address').
3864 Adjust the corresponding macros to include `const' in casts.
3866 2000-11-03 Akim Demaille <akim@epita.fr>
3868 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
3869 s/PFILE1/BISON_HAIRY/.
3870 Adjust dependencies.
3872 2000-11-03 Akim Demaille <akim@epita.fr>
3874 For some reason, this was not applied.
3876 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
3877 `unlink': it's no longer used.
3879 2000-11-03 Akim Demaille <akim@epita.fr>
3881 * src/files.c (skeleton_find): New function, eved out of...
3882 (open_files, open_extra_files): here.
3884 2000-11-03 Akim Demaille <akim@epita.fr>
3888 * src/files.c (obstack_save): New function.
3889 (done): Rename as...
3890 (output_files): this.
3892 * src/main.c (main): Don't use `atexit' to register `done', since
3893 it no longer has to remove tmp files, just call `output_files'
3894 when there are no errors.
3896 2000-11-02 Akim Demaille <akim@epita.fr>
3898 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
3899 `unlink': it's no longer used.
3900 * src/files.h: Formatting changes.
3902 2000-11-02 Akim Demaille <akim@epita.fr>
3904 Remove the last uses of mktemp and unlink/delete.
3906 * src/files.c (fdefines, ftable): Removed.
3907 (defines_ostack, table_obstack): New.
3908 Adjust dependencies of the former into uses of the latter.
3909 * src/output.c (output_short_or_char_table, output_short_table):
3910 Convert to using obstacks.
3911 * src/reader.c (copy_comment2): Accept one FILE * and two
3913 (output_token_defines, reader_output_yylsp): Use obstacks.
3914 * src/system.h (obstack_fgrow3): New.
3916 2000-11-01 Akim Demaille <akim@epita.fr>
3918 Change each use of `fattrs' into a use of `attrs_obstack'.
3920 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
3921 * src/files.c (fattrs): Remove.
3922 (attrs_obstack): New.
3923 Adjust all dependencies.
3924 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
3926 2000-11-01 Akim Demaille <akim@epita.fr>
3929 Change each use of `faction' into a use of `action_obstack'.
3931 * lib/obstack.h, lib/obstack.c: New files.
3932 * src/files.c (faction): Remove.
3933 (action_obstack): New.
3934 Adjust all dependencies.
3936 2000-10-20 Akim Demaille <akim@epita.fr>
3938 * lib/quote.h (PARAMS): New macro. Use it.
3940 2000-10-16 Akim Demaille <akim@epita.fr>
3942 * src/output.c (output_short_or_char_table): New function.
3943 (output_short_table, output_token_translations): Use it.
3944 (goto_actions): Use output_short_table.
3946 2000-10-16 Akim Demaille <akim@epita.fr>
3948 * src/symtab.c (bucket_new): New function.
3951 * src/output.c (output_short_table): New argument to display the
3952 comment associated with the table.
3953 Adjust dependencies.
3954 (output_gram): Use it.
3955 (output_rule_data): Nicer output layout for YYTNAME.
3957 2000-10-16 Akim Demaille <akim@epita.fr>
3959 * src/lex.c (read_typename): New function.
3961 * src/reader.c (copy_dollar): Likewise.
3963 2000-10-16 Akim Demaille <akim@epita.fr>
3965 * src/reader.c (copy_comment2): Expect the input stream to be on
3966 the `/' which is suspected to open a comment, instead of being
3967 called after `//' or `/*' was read.
3968 (copy_comment, copy_definition, parse_union_decl, copy_action)
3969 (copy_guard): Adjust.
3971 2000-10-16 Akim Demaille <akim@epita.fr>
3973 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
3974 `read_signed_integer'.
3976 2000-10-16 Akim Demaille <akim@epita.fr>
3978 * src/reader.c (copy_dollar): New function.
3979 (copy_guard, copy_action): Use it.
3981 2000-10-16 Akim Demaille <akim@epita.fr>
3983 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
3984 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
3985 New files, from Fileutils 4.0.27.
3986 * src/main.c (printable_version): Remove.
3987 * src/lex.c, src/reader.c: Use `quote'.
3989 2000-10-04 Akim Demaille <akim@epita.fr>
3991 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
3993 2000-10-04 Akim Demaille <akim@epita.fr>
3995 * doc/bison.texinfo: Various typos spotted by Neil Booth.
3997 2000-10-04 Akim Demaille <akim@epita.fr>
3999 When a literal string is used to define two different tokens,
4000 `bison -v' segfaults.
4001 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
4003 * tests/regression.m4: New file.
4004 Include the core of the sample provided by Piotr Gackiewicz.
4005 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
4008 2000-10-04 Akim Demaille <akim@epita.fr>
4010 * src/reader.c (parse_expect_decl): Keep `count' within the size
4014 2000-10-02 Paul Eggert <eggert@twinsun.com>
4016 * bison.s1 (yyparse): Assign the default value
4017 unconditionally, to avoid a GCC warning and make the parser a
4020 2000-10-02 Akim Demaille <akim@epita.fr>
4022 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
4025 2000-10-02 Akim Demaille <akim@epita.fr>
4027 * src/derives.c, src/print.c, src/reduce.c: To ease the
4028 translation, move some `\n' out of the translated strings.
4030 2000-10-02 Akim Demaille <akim@epita.fr>
4032 The location tracking mechanism is precious for parse error
4033 messages. Nevertheless, it is enabled only when `@n' is used in
4034 the grammar, which is a different issue (you can use it in error
4035 message, but not in the grammar per se). Therefore, there should
4036 be another means to enable it.
4038 * src/getargs.c (getargs): Support `--locations'.
4040 * src/getargs.h (locationsflag): Export it.
4041 * src/lex.c (percent_table): Support `%locations'.
4042 * src/reader.c (yylsp_needed): Remove this variable, now replaced
4043 with `locationsflag'.
4044 * doc/bison.texinfo: Document `--locations' and `%locations'.
4046 * tests/calc.m4: Test it.
4048 For regularity of the names, replace each
4049 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
4050 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
4051 In addition replace each `flag' with `_flag'.
4053 2000-10-02 Akim Demaille <akim@epita.fr>
4055 Also test parse error messages, including with YYERROR_VERBOSE.
4057 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
4059 Use it to check the computations.
4060 Use it to check `nonassoc' is honored.
4061 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
4062 `--yyerror-verbose'.
4063 (_AT_CHECK_CALC): Adjust to this option.
4064 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
4066 2000-10-02 Akim Demaille <akim@epita.fr>
4068 Test also `--verbose', `--defines' and `--name-prefix'. Testing
4069 the latter demonstrates a flaw in the handling of non debugging
4070 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
4071 was used in order to simplify:
4087 unfortunately this leads to a CPP conflict when
4088 `--name-prefix=foo' is used since it produces `#define yydebug
4091 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
4092 (YYDPRINTF): New macro.
4094 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
4096 Also test `--verbose', `--defines' and `--name-prefix'.
4098 2000-10-02 Akim Demaille <akim@epita.fr>
4100 Improve the readability of the produced parsers.
4102 * src/bison.s1: Formatting changes.
4103 Improve the comment related to the `$' mark.
4104 (yydefault): Don't fall through to `yyresume': `goto' there.
4105 * src/output.c (output_parser): When the `$' is met, skip the end
4107 New variable, `number_of_dollar_signs', to check there's exactly
4108 one `$' in the parser skeleton.
4110 2000-10-02 Akim Demaille <akim@epita.fr>
4112 * lib/xstrdup.c: New file, from the fileutils.
4113 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
4114 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
4115 instead of strlen + xmalloc + strcpy.
4116 * src/symtab.c (copys): Remove, use xstrdup instead.
4118 2000-10-02 Akim Demaille <akim@epita.fr>
4120 * src/gram.h (associativity): New enum type which replaces the
4121 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
4122 `right_assoc', `left_assoc' and `non_assoc'.
4123 Adjust all dependencies.
4124 * src/reader.c: Formatting changes.
4125 (LTYPESTR): Don't define it, use it as a literal in
4126 `reader_output_yylsp'.
4127 * src/symtab.h (symbol_class): New enum type which replaces the
4128 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
4129 `sunknown', `stoken and `snterm'.
4131 2000-10-02 Akim Demaille <akim@epita.fr>
4133 * src/getargs.c (fixed_outfiles): Rename as...
4134 (yaccflag): for consistency and accuracy.
4135 Adjust dependencies.
4137 2000-10-02 Akim Demaille <akim@epita.fr>
4139 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
4140 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
4141 difficult and introduced a lot of core dump. It turns out that
4142 Bison used an implementation of `xmalloc' based on `calloc', and
4143 at various places it does depend upon the initialization to 0. I
4144 have not tried to isolate the pertinent places, and all the former
4145 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
4146 someone should address this issue.
4148 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
4149 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
4151 Adjust dependencies.
4152 * src/warshall.h: New file.
4155 2000-10-02 Akim Demaille <akim@epita.fr>
4157 Various anti-`extern in *.c' changes.
4159 * src/system.h: Include `assert.h'.
4161 2000-10-02 Akim Demaille <akim@epita.fr>
4163 * src/state.h (nstates, final_state, first_state, first_shift)
4164 (first_reduction): Move their exportation from here...
4165 * src/LR0.h: to here.
4166 Adjust dependencies.
4167 * src/getargs.c (statisticsflag): New variable.
4168 Add support for `--statistics'.
4169 Adjust dependencies.
4171 Remove a lot of now useless `extern' statements in most files.
4173 2000-10-02 Akim Demaille <akim@epita.fr>
4175 * src/LR0.h: New file.
4178 2000-10-02 Akim Demaille <akim@epita.fr>
4180 * src/print.h: New file.
4182 * src/print.c: Formatting and ordering changes.
4183 (verbose, terse): Replace with...
4184 (print_results): this new function.
4185 Adjust dependencies.
4187 2000-10-02 Akim Demaille <akim@epita.fr>
4189 * src/conflicts.c (conflict_report): New function.
4190 (conflict_log, verbose_conflict_log): Replace with...
4191 (print_conflicts): this function.
4192 Adjust dependencies.
4193 * src/conflicts.h: New file.
4194 Propagate its inclusion.
4196 2000-10-02 Akim Demaille <akim@epita.fr>
4198 * src/nullable.h: New file.
4199 Propagate its inclusion.
4200 * src/nullable.c: Formatting changes.
4202 2000-10-02 Akim Demaille <akim@epita.fr>
4204 * src/reduce.h: New file.
4205 Propagate its inclusion.
4206 * src/reduce.c: Topological sort and other formatting changes.
4207 (bool, TRUE, FALSE): Move their definition to...
4208 * src/system.h: here.
4210 2000-10-02 Akim Demaille <akim@epita.fr>
4212 * src/files.c: Formatting changes.
4213 (tryopen, tryclose, openfiles): Rename as...
4214 (xfopen, xfclose, open_files): this.
4215 (stringappend): static.
4216 * src/files.h: Complete the list of exported symbols.
4219 2000-10-02 Akim Demaille <akim@epita.fr>
4221 * src/reader.h: New file.
4222 Propagate its use instead of tedious list of `extern' and
4224 * src/reader.c: Formatting changes, topological sort,
4227 2000-10-02 Akim Demaille <akim@epita.fr>
4229 * src/lex.h: Prototype `lex.c' exported functions.
4230 * src/reader.c: Adjust.
4231 * src/lex.c: Formatting changes.
4232 (safegetc): Rename as...
4235 2000-10-02 Akim Demaille <akim@epita.fr>
4237 * src/lalr.h: New file.
4238 Propagate its inclusion instead of prototypes and `extern'.
4239 * src/lalr.c: Formatting changes, topological sorting etc.
4241 2000-10-02 Akim Demaille <akim@epita.fr>
4243 * src/output.c (token_actions): Introduce a temporary array,
4244 YYDEFACT, that makes it possible for this function to use
4247 2000-10-02 Akim Demaille <akim@epita.fr>
4249 `user_toknums' is output as a `short[]' in `output.c', while it is
4250 defined as a `int[]' in `reader.c'. For consistency with the
4251 other output tables, `user_toknums' is now defined as a table of
4254 * src/reader.c (user_toknums): Be a short table instead of an int
4256 Adjust dependencies.
4258 Factor the short table outputs.
4260 * src/output.c (output_short_table): New function.
4261 * src/output.c (output_gram, output_stos, output_rule_data)
4262 (output_base, output_table, output_check): Use it.
4264 2000-10-02 Akim Demaille <akim@epita.fr>
4266 * src/output.c (output): Topological sort of the functions, in
4267 order to get rid of the `static' prototypes.
4268 No longer use `register'.
4269 * src/output.h: New file.
4270 Propagate its inclusion in files explicitly prototyping functions
4273 2000-09-21 Akim Demaille <akim@epita.fr>
4275 * src/atgeneral.m4: Update from Autoconf.
4277 2000-09-21 Akim Demaille <akim@epita.fr>
4279 * src/closure.h: New file.
4280 * src/closure.c: Formatting changes, topological sort over the
4281 functions, use of closure.h.
4282 (initialize_closure, finalize_closure): Rename as...
4283 (new_closure, free_closure): these. Adjust dependencies.
4284 * src/LR0.c: Formatting changes, topological sort, use of
4286 (initialize_states): Rename as...
4288 * src/Makefile.am (noinst_HEADERS): Adjust.
4290 2000-09-20 Akim Demaille <akim@epita.fr>
4292 * src/acconfig.h: Don't protect config.h against multiple
4294 Don't define PARAMS.
4295 * src/system.h: Define PARAMS.
4296 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
4297 purpose of config.h. system.h must not try to fix wrong
4298 definitions in config.h.
4300 2000-09-20 Akim Demaille <akim@epita.fr>
4302 * src/derives.h: New file.
4303 * src/main.c, src/derives.h: Use it.
4305 * src/Makefile.am (noinst_HEADERS): Adjust.
4307 2000-09-20 Akim Demaille <akim@epita.fr>
4309 * tests/atgeneral.m4: Update from Autoconf.
4310 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
4311 (AT_CHECK_CALC): New macros.
4312 Use these macros to test bison with options `', `--raw',
4313 `--debug', `--yacc', `--yacc --debug'.
4315 2000-09-19 Akim Demaille <akim@epita.fr>
4317 * src/output.c: Formatting changes.
4318 * src/machine.h: Remove, leaving its contents in...
4319 * src/system.h: here.
4321 Adjust all dependencies on stdio.h and machine.h.
4322 * src/getargs.h: New file.
4323 Let all `extern' declarations about getargs.c be replaced with
4324 inclusion of `getargs.h'.
4325 * src/Makefile.am (noinst_HEADERS): Adjust.
4327 * tests/calc.m4 (yyin): Be initialized in main, not on the global
4329 (yyerror): Returns void, not int.
4330 * doc/bison.texinfo: Formatting changes.
4332 2000-09-19 Akim Demaille <akim@epita.fr>
4334 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
4337 2000-09-18 Akim Demaille <akim@epita.fr>
4339 * configure.in: Append WARNING_CFLAGS to CFLAGS.
4340 * src/Makefile.am (INCLUDES): Don't.
4341 Be ready to fetch headers in lib/.
4343 2000-09-18 Akim Demaille <akim@epita.fr>
4345 * doc/bison.texinfo: Update the copyright.
4346 ANSIfy and GNUify the examples.
4347 Remove the old menu.
4349 2000-09-18 Akim Demaille <akim@epita.fr>
4351 First set of tests: use the `calc' example from the documentation.
4353 * src/bison.s1 (yyparse): Condition the code using `yytname' which
4354 is defined only when YYDEBUG is.
4355 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
4356 * src/files.c (tryopen, tryclose): Formatting changes.
4357 Move to the top and be static.
4358 * src/reader.c (read_signed_integer): Likewise.
4359 * tests/calc.m4: New file.
4360 * Makefile.am, suite.m4: Adjust.
4361 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
4363 2000-09-18 Akim Demaille <akim@epita.fr>
4365 Add support for an Autotest test suite for Bison.
4367 * m4/m4.m4, m4/atconfig.m4: New files.
4368 * m4/Makefile.am (EXTRA_DIST): Adjust.
4369 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
4371 * src/getargs.c: Display a more standard --version message.
4372 * src/reader.c (reader): Formatting changes.
4373 No longer depend upon VERSION_STRING.
4374 * configure.in: No longer use `dnl'.
4375 Set up the test suite and the new directory `tests/.
4376 (VERSION_STRING): Remove.
4378 2000-04-14 Akim Demaille <akim@epita.fr>
4380 * src/reader.c (copy_comment2): New function, same as former
4381 `copy_comment', but outputs into two FILE *.
4382 (copy_comment): Use it.
4383 (parse_union_decl): Use it.
4384 (get_type, parse_start_decl): Use the same `invalid' message.
4385 (parse_start_decl, parse_union_decl): Use the same `multiple'
4387 (parse_union_decl, copy_guard, copy_action): Use the same
4388 `unmatched' message.
4389 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
4391 2000-03-31 Akim Demaille <akim@epita.fr>
4393 * src/files.c (tryopen, tryclose): Move to the top.
4396 2000-03-31 Akim Demaille <akim@epita.fr>
4398 * src/main.c (main): Don't call `done', exit does it.
4400 2000-03-31 Akim Demaille <akim@epita.fr>
4402 * allocate.c: s/return (foo)/return foo/.
4405 * output.c: Likewise.
4406 * reader.c: Likewise.
4407 * symtab.c: Likewise.
4408 * vmsgetargs.c: Likewise.
4410 2000-03-31 Akim Demaille <akim@epita.fr>
4412 Clean up the error reporting functions.
4414 * src/report.c: New file.
4415 * src/report.h: Likewise.
4416 * src/Makefile.am: Adjust.
4417 * m4/error.m4: New file.
4418 * m4/Makefile.am: Adjust.
4419 * configure.in (jm_PREREQ_ERROR): Call it.
4420 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
4422 (fatal, fatals): Remove. All callers use complain.c::fatal.
4423 (warn, warni, warns, warnss, warnss): Remove. All callers use
4424 complain.c::complain.
4425 (toomany): Remove, use fatal instead.
4426 * src/files.c (done): No argument, use complain_message_count.
4427 * src/main.c (main): Register `done' to `atexit'.
4429 * src/getargs.c (usage): More `fputs', less `fprintf'.
4431 2000-03-28 Akim Demaille <akim@epita.fr>
4433 * lib/: New directory.
4434 * Makefile.am (SUBDIRS): Adjust.
4435 * configure.in: Adjust.
4436 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
4438 * src/alloca.c: Moved to lib/.
4439 * src/getopt.c: Likewise.
4440 * src/getopt1.c: Likewise.
4441 * src/getopt.h: Likewise.
4442 * src/ansi2knr.c: Likewise.
4443 * src/ansi2knr.1: Likewise.
4444 * src/Makefile.am: Adjust.
4445 * lib/Makefile.am: New file.
4447 2000-03-28 Akim Demaille <akim@epita.fr>
4449 * src/getargs.c (usage): Refresh the help message.
4451 2000-03-17 Akim Demaille <akim@epita.fr>
4453 * src/getopt1.c: Updated from textutils 2.0e
4454 * src/getopt.c: Likewise.
4455 * src/getopt.h: Likewise.
4457 2000-03-17 Akim Demaille <akim@epita.fr>
4459 * src/Makefile.am (bison.simple): Fix the awk program: quote only
4460 the file name, not the whole `#line LINE FILE'.
4462 2000-03-17 Akim Demaille <akim@epita.fr>
4464 On syntax errors, report the token on which we choked.
4466 * src/bison.s1 (yyparse): In the label yyerrlab, when
4467 YYERROR_VERBOSE, add yychar in msg.
4469 2000-03-17 Akim Demaille <akim@epita.fr>
4471 * src/reader.c (copy_at): New function.
4472 (copy_guard): Use it.
4473 (copy_action): Use it.
4475 2000-03-17 Akim Demaille <akim@epita.fr>
4477 Be kind to translators, save some useless translations.
4479 * src/main.c (banner): New function.
4480 (fatal_banner): Use it.
4481 (warn_banner): Use it.
4483 2000-03-17 Akim Demaille <akim@epita.fr>
4485 * src/reader.c (copy_definition): Use copy_string and
4486 copy_comment. Removed now unused `match', `ended',
4488 (copy_comment, copy_string): Moved, to be visible from
4491 2000-03-17 Akim Demaille <akim@epita.fr>
4493 * src/reader.c (copy_string): Declare `static inline'. No
4494 problems with inline, since it is checked by configure.
4495 (copy_comment): Likewise.
4497 2000-03-17 Akim Demaille <akim@epita.fr>
4499 * src/reader.c (packsymbols): Formatting changes.
4501 2000-03-17 Akim Demaille <akim@epita.fr>
4503 * src/reader.c (copy_comment): New function, factored out from:
4504 (copy_action): Use it. Removed now unused `match', `ended',
4506 (copy_guard): Likewise.
4508 2000-03-17 Akim Demaille <akim@epita.fr>
4510 * src/reader.c (copy_string): New function, factored out from:
4511 (copy_action): Use it.
4512 (copy_guard): Likewise.
4514 2000-03-17 Akim Demaille <akim@epita.fr>
4516 Change the handling of @s so that they behave exactly like $s.
4517 There is now a pseudo variable @$ (readble and writable), location
4518 of the lhs of the rule (by default ranging from the location of
4519 the first symbol of the rhs, to the location of the last symbol,
4520 or, if the rhs is empty, YYLLOC).
4522 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
4524 (yyparse): When providing a default semantic action, provide a
4525 default location action.
4526 (after the $): No longer change `*YYLSP', just stack YYLOC the
4527 same way you stack YYVAL.
4528 * src/reader.c (read_declarations): Use warns.
4529 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
4530 (copy_action, case '@'): Likewise.
4531 Use a standard error message, to save useless work from
4534 2000-03-17 Akim Demaille <akim@epita.fr>
4536 * src/bison.s1: Formatting and cosmetics changes.
4537 * src/reader.c: Likewise.
4538 Update the Copyright notice.
4540 2000-03-17 Akim Demaille <akim@epita.fr>
4542 * src/bison.s1 (#line): All set to `#line' only, since the
4543 Makefile now handles them.
4545 2000-03-16 Akim Demaille <akim@epita.fr>
4547 * src/output.c (output_rule_data): Output the documentation of
4549 (Copyright notice): Update.
4552 2000-03-16 Akim Demaille <akim@epita.fr>
4554 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
4555 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
4556 One `#if YYDEBUG' remains, since it uses variables which are
4557 defined only if `YYDEBUG != 0'.
4559 2000-03-16 Akim Demaille <akim@epita.fr>
4561 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
4562 and related variables so that the similarities are highlighted.
4564 2000-03-16 Akim Demaille <akim@epita.fr>
4566 * src/bison.s1: Properly indent CPP directives.
4568 2000-03-16 Akim Demaille <akim@epita.fr>
4570 * src/bison.s1: Properly indent the `alloca' CPP section.
4572 2000-03-16 Akim Demaille <akim@epita.fr>
4574 Do not hard code values of directories in `configure.in'.
4575 Update the `configure' tool chain.
4577 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
4579 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
4580 (AC_OUTPUT): Add m4/Makefile.
4581 Bump to bison 1.28a, 1.29 has never been released.
4582 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
4583 handled via src/Makefile.am.
4584 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
4585 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
4587 * Makefile.am (SUBDIRS): Add m4.
4588 (ACLOCAL_AM_FLAGS): New variable.
4589 (AUTOMAKE_OPTIONS): Add check-news.
4590 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
4591 the proper line number and file name.
4592 (DEFS): Propagate the location of bison library files and of the
4594 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
4596 * acinclude.m4: Remove, replaced by the directory m4.
4597 * m4/Makefile.am (EXTRA_DIST): New variable.
4598 * m4/gettext.m4: New file, from the fileutils.
4599 * m4/lcmessage.m4: Likewise
4600 * m4/progtest.m4: Likewise.
4601 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
4603 2000-03-10 Akim Demaille <akim@epita.fr>
4606 Formatting changes of various comments.
4607 Respect the GNU coding standards at various places.
4608 Don't use `_()' when no translation is needed.
4610 1999-12-13 Jesse Thilo <jthilo@gnu.org>
4613 OS/2 honors TMPDIR environment variable.
4615 1999-12-13 Jesse Thilo <jthilo@gnu.org>
4617 * doc/bison.texinfo: Tweaked spelling and grammar.
4619 Removed reference to price of printed copy.
4620 Mention BISON_SIMPLE and BISON_HAIRY.
4622 1999-12-13 Jesse Thilo <jthilo@gnu.org>
4624 * configure.in, NEWS:
4625 Bison 1.29 released.
4627 1999-10-27 Jesse Thilo <jthilo@gnu.org>
4629 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
4630 Added reference card.
4632 1999-07-26 Jesse Thilo <jthilo@gnu.org>
4634 * po/ru.po: Added Russian translation.
4636 1999-07-26 Jesse Thilo <jthilo@gnu.org>
4638 * configure.in: Added Russian translation.
4640 1999-07-06 Jesse Thilo <jthilo@gnu.org>
4642 * configure.in, NEWS, README:
4643 Released version 1.28.
4645 1999-06-14 Jesse Thilo <jthilo@gnu.org>
4648 Squashed redefinition warning on some systems.
4650 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
4651 Have configure build version string instead of relying on ANSI string
4654 1999-06-14 Jesse Thilo <jthilo@gnu.org>
4656 * po/POTFILES.in: Got rid of version.c.
4658 1999-06-14 Jesse Thilo <jthilo@gnu.org>
4660 * acconfig.h, configure.in:
4661 Have configure build version string instead of relying on ANSI string
4664 1999-06-08 Jesse Thilo <jthilo@gnu.org>
4667 Dropped mention of `+' for long-named options.
4669 1999-05-30 Jesse Thilo <jthilo@gnu.org>
4671 * src/files.c: Added <unistd.h> for unlink().
4673 * src/Makefile.am, src/system.h:
4676 1999-05-30 Jesse Thilo <jthilo@gnu.org>
4678 * README: Added a FAQ list.
4680 * configure.in, acconfig.h:
4683 1999-05-30 Jesse Thilo <jthilo@gnu.org>
4685 * doc/FAQ, doc/Makefile.am:
4688 1999-05-19 Jesse Thilo <jthilo@gnu.org>
4690 * src/alloc.h, src/symtab.h, src/version.c:
4691 Protected inclusion of "config.h" with HAVE_CONFIG_H.
4693 1999-04-18 Jesse Thilo <jthilo@gnu.org>
4695 * src/.cvsignore, src/Makefile.am:
4696 Reorganized: sources in `src', documentation in `doc'.
4698 * src/lex.c (literalchar):
4699 fixed the code for escaping double quotes (thanks
4702 1999-04-18 Jesse Thilo <jthilo@gnu.org>
4704 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
4705 Adjusted paths to reflect directory reorganization.
4707 1999-04-18 Jesse Thilo <jthilo@gnu.org>
4709 * doc/.cvsignore, doc/Makefile.am:
4710 Reorganized: sources in `src', documentation in `doc'.
4712 1999-04-18 Jesse Thilo <jthilo@gnu.org>
4715 Updated AC_INIT file to reflect directory reorganization.
4717 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
4718 Reorganized: sources in `src', documentation in `doc'.
4720 1999-04-13 Jesse Thilo <jthilo@gnu.org>
4723 Don't declare calloc() and realloc() if not necessary.
4725 1999-04-13 Jesse Thilo <jthilo@gnu.org>
4727 * configure.in, acconfig.h, acinclude.m4:
4728 Don't declare calloc() and realloc() if not necessary.
4730 1999-03-23 Jesse Thilo <jthilo@gnu.org>
4732 * po/.cvsignore: Added i18n support.
4734 1999-03-23 Jesse Thilo <jthilo@gnu.org>
4736 * acconfig.h, configure.in, Makefile.am:
4739 1999-03-22 Jesse Thilo <jthilo@gnu.org>
4741 * src/bison.s1: Fixed #line numbers.
4743 1999-03-15 Jesse Thilo <jthilo@gnu.org>
4745 * po/es.po, po/fr.po, po/nl.po, po/de.po:
4746 Added PO files from Translation Project.
4748 1999-03-03 Jesse Thilo <jthilo@gnu.org>
4751 Added support for non-ANSI compilers (ansi2knr).
4753 1999-02-16 Jesse Thilo <jthilo@gnu.org>
4755 * configure.in: Bumped version number to 1.27.
4758 Added `bison.simple' to list of files removed by `make distclean'.
4760 1999-02-12 Jesse Thilo <jthilo@gnu.org>
4762 * src/files.c, src/files.h:
4763 Defined locations of parser files in config.h instead of Makefile.
4765 1999-02-12 Jesse Thilo <jthilo@gnu.org>
4767 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
4768 Defined locations of parser files in config.h instead of Makefile.
4770 1999-02-09 Jesse Thilo <jthilo@gnu.org>
4773 Removed inappropriate use of $< macro.
4775 1999-02-05 Jesse Thilo <jthilo@gnu.org>
4777 * po/Makefile.in.in, po/POTFILES.in:
4778 Add `po' directory skeleton.
4780 1999-01-27 Jesse Thilo <jthilo@gnu.org>
4782 * README: Document help-bison list.
4784 * configure.in: Add check for mkstemp().
4786 1999-01-20 Jesse Thilo <jthilo@gnu.org>
4788 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
4789 Hush a few compiler warnings.
4792 Add tryclose(), which verifies that fclose was successful.
4793 Hush a couple of compiler warnings.
4795 1999-01-20 Jesse Thilo <jthilo@gnu.org>
4797 * Makefile.am, OChangeLog:
4798 ChangeLog is now automatically generated. Include the old version as
4801 1999-01-14 Jesse Thilo <jthilo@gnu.org>
4803 * 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:
4806 1999-01-14 Jesse Thilo <jthilo@gnu.org>
4808 * doc/bison.texinfo: Fix formatting glitch.
4810 * doc/bison.texinfo: Update FSF address.
4812 1999-01-14 Jesse Thilo <jthilo@gnu.org>
4814 * acconfig.h: Update FSF address.
4816 1999-01-08 Jesse Thilo <jthilo@gnu.org>
4819 Don't define PACKAGE here, since config.h defines it.
4821 1998-12-30 Jesse Thilo <jthilo@gnu.org>
4823 * src/reader.c: Update copyright date.
4826 Ditch sprintf to statically-sized buffers in fatal/warn functions in
4827 favor of output directly to stderr (avoids buffer overruns).
4829 * src/reader.c: Some checks for premature EOF.
4831 * 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:
4832 Use prototypes if the compiler understands them.
4834 * src/files.c: Honor TMPDIR on Unix hosts.
4835 Use prototypes if the compiler understands them.
4838 Fix a couple of buffer overrun bugs.
4839 Use prototypes if the compiler understands them.
4841 * src/system.h: Include unistd.h and ctype.h.
4842 Use #ifdef instead of #if for NLS symbols.
4844 1998-12-30 Jesse Thilo <jthilo@gnu.org>
4846 * doc/bison.texinfo:
4847 Delete comment "consider using @set for edition number, etc..." since
4848 we now are doing so.
4850 1998-12-30 Jesse Thilo <jthilo@gnu.org>
4853 Use prototypes if the compiler understands them.
4855 * NEWS: Document 1.26 highlights.
4857 * Makefile.am: Require Automake 1.3 or later.
4860 Use prototypes if the compiler understands them.
4862 1998-12-29 Jesse Thilo <jthilo@gnu.org>
4865 Use VERSION symbol from automake for version number.
4867 1998-12-29 Jesse Thilo <jthilo@gnu.org>
4869 * acconfig.h, configure.in, version.cin:
4870 Use VERSION symbol from automake for version number.
4872 1998-11-28 Jesse Thilo <jthilo@gnu.org>
4875 Distribute original version of simple parser (bison.s1), not built
4876 version (bison.simple).
4878 1998-11-28 Jesse Thilo <jthilo@gnu.org>
4880 * doc/bison.texinfo: Add info dir entry.
4882 * doc/bison.texinfo:
4883 Let automake put version number into documentation.
4885 1998-11-26 Jesse Thilo <jthilo@gnu.org>
4887 * src/bison.cld, src/build.com, src/vmshlp.mar:
4888 Add non-RCS files from /gd/gnu/bison.
4890 1998-11-26 Jesse Thilo <jthilo@gnu.org>
4893 Document the BISON_HAIRY and BISON_SIMPLE variables.
4895 1998-11-25 Jesse Thilo <jthilo@gnu.org>
4897 * src/version.c: Build version.c automatically.
4900 Fix token numbering (used to start at 258, not 257).
4902 * src/system.h: Include config.h.
4904 * src/getargs.c: Update bug report address.
4906 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
4907 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
4909 1998-11-25 Jesse Thilo <jthilo@gnu.org>
4912 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
4914 * configure.in, version.cin:
4915 Build version.c automatically.
4917 * AUTHORS: Add AUTHORS file.
4919 * README: Update bug report address.
4922 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
4924 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
4927 1998-11-25 Jesse Thilo <jthilo@gnu.org>
4929 * doc/bison.texinfo: Clean up some formatting.
4931 1998-05-05 Richard Stallman <rms@gnu.org>
4933 * doc/bison.texinfo:
4934 Explain better why to make a pure parser.
4936 1998-01-05 Richard Stallman <rms@gnu.org>
4938 * src/files.c (openfiles):
4939 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
4940 find a temporary directory, if possible. Do not unlink files while
4943 1997-08-25 Richard Stallman <rms@gnu.org>
4945 * src/reader.c (stack_offset;):
4946 Change some warni to warns.
4948 * src/lex.c (literalchar): Use warns, not warni.
4950 1997-06-28 Richard Stallman <rms@gnu.org>
4952 * src/bison.s1: Add a Bison version comment.
4954 * src/main.c (fatal, warn, berror):
4957 1997-06-28 Richard Stallman <rms@gnu.org>
4959 * Makefile.in (bison_version): New variable.
4960 (dist): Use that variable.
4961 (bison.s1): Substitute the Bison version into bison.simple.
4963 * bison.simple: Add a Bison version comment.
4965 1997-06-18 Richard Stallman <rms@gnu.org>
4967 * src/main.c (fatal, warn, berror):
4968 Make error messages standard.
4969 (toomany): Improve error message text.
4971 * 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:
4972 new.h renamed to alloc.h.
4974 1997-06-18 Richard Stallman <rms@gnu.org>
4976 * Makefile.in: new.h renamed to alloc.h.
4978 1997-05-24 Richard Stallman <rms@gnu.org>
4980 * src/lex.c (literalchar):
4981 Fix the code for escaping \, " and '.
4983 (lex): Avoid trouble when there are many chars
4984 to discard in a char literal with just several chars in it.
4986 1997-05-17 Richard Stallman <rms@gnu.org>
4989 Use malloc, if using alloca is troublesome.
4990 (YYSTACK_USE_ALLOCA): New flag macro.
4991 Define it for some systems and compilers.
4992 (YYSTACK_ALLOC): New macro.
4993 (yyparse): Use YYSTACK_ALLOC to allocate stack.
4994 If it was malloc'd, free it.
4996 1997-05-17 Richard Stallman <rms@gnu.org>
4999 Use malloc, if using alloca is troublesome.
5000 (YYSTACK_USE_ALLOCA): New flag macro.
5001 Define it for some systems and compilers.
5002 (YYSTACK_ALLOC): New macro.
5003 (yyparse): Use YYSTACK_ALLOC to allocate stack.
5004 If it was malloc'd, free it.
5006 1997-04-23 Richard Stallman <rms@gnu.org>
5009 (alloca) [__hpux]: Always define as __builtin_alloca.
5011 1997-04-23 Richard Stallman <rms@gnu.org>
5014 (alloca) [__hpux]: Always define as __builtin_alloca.
5016 1997-04-22 Richard Stallman <rms@gnu.org>
5019 [__hpux]: Include alloca.h (right for HPUX 10)
5020 instead of declaring alloca (right for HPUX 9).
5022 * src/bison.s1 (__yy_memcpy):
5023 Declare arg `count' as unsigned int.
5024 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
5026 1997-04-22 Richard Stallman <rms@gnu.org>
5029 [__hpux]: Include alloca.h (right for HPUX 10)
5030 instead of declaring alloca (right for HPUX 9).
5032 * bison.simple (__yy_memcpy):
5033 Declare arg `count' as unsigned int.
5034 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
5036 1997-01-03 Richard Stallman <rms@gnu.org>
5038 * src/allocate.c: [__STDC__ or _MSC_VER]:
5039 Declare calloc and realloc to return void *.
5041 1997-01-02 Richard Stallman <rms@gnu.org>
5044 [_MSC_VER]: Include stdlib.h and process.h.
5045 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
5047 * src/main.c (main): Return FAILURE as a value.
5048 (printable_version): Declare arg as int, not char.
5050 1997-01-02 Richard Stallman <rms@gnu.org>
5052 * Makefile.in (dist):
5053 Explicitly check for symlinks, and copy them.
5055 1996-12-19 Richard Stallman <rms@gnu.org>
5058 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
5060 1996-12-18 Paul Eggert <eggert@gnu.org>
5062 * src/bison.s1 (yyparse):
5063 If __GNUC__ and YYPARSE_PARAM are both defined,
5064 declare yyparse to have a void * argument.
5066 1996-12-18 Paul Eggert <eggert@gnu.org>
5068 * bison.simple (yyparse):
5069 If __GNUC__ and YYPARSE_PARAM are both defined,
5070 declare yyparse to have a void * argument.
5072 1996-12-17 Richard Stallman <rms@gnu.org>
5074 * src/reduce.c (nbits): Add some casts.
5076 1996-08-12 Richard Stallman <rms@gnu.org>
5078 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
5080 1996-08-12 Richard Stallman <rms@gnu.org>
5082 * bison.simple: Test _MSDOS as well as _MSDOS_.
5084 1996-07-31 Richard Stallman <rms@gnu.org>
5087 [__sun && __i386]: Include alloca.h.
5089 1996-07-31 Richard Stallman <rms@gnu.org>
5092 [__sun && __i386]: Include alloca.h.
5094 1996-07-30 Richard Stallman <rms@gnu.org>
5096 * src/bison.s1: Comment change.
5098 * src/bison.s1: Test _MSDOS_, not MSDOS.
5100 1996-07-30 Richard Stallman <rms@gnu.org>
5102 * bison.simple: Comment change.
5104 * bison.simple: Test _MSDOS_, not MSDOS.
5106 1996-06-01 Richard Stallman <rms@gnu.org>
5108 * 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:
5109 Insert `_' macro around many string constants.
5112 Insert `_' macro around many string constants.
5114 (main): Call setlocale, bindtextdomain and textdomain.
5116 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
5117 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
5118 [ENABLE_NLS]: Include libintl.h.
5119 [ENABLE_NLS] (gettext): Define.
5120 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
5121 (N_, PACKAGE, LOCALEDIR): New macros.
5123 1996-06-01 Richard Stallman <rms@gnu.org>
5125 * POTFILES.in: New file.
5127 * Makefile.in (allocate.o):
5128 Define target explicitly.
5130 * Makefile.in (CFLAGS): Set to @CFLAGS@.
5131 (LDFLAGS): Set to @LDFLAGS@.
5132 (configure): Run autoconf only if preceding `cd' succeeds.
5133 (bison.s1): Redirect output to temporary file then move the
5134 temporary to the target, rather than redirecting directly to bison.s1.
5135 (clean): Remove config.status and config.log.
5136 (distclean): Don't remove config.status here.
5138 1996-05-12 Richard Stallman <rms@gnu.org>
5141 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
5143 1996-05-12 Richard Stallman <rms@gnu.org>
5146 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
5148 1996-05-11 Richard Stallman <rms@gnu.org>
5150 * src/bison.s1 (__yy_memcpy):
5151 Really reorder the args, as was supposedly done on Feb 14 1995.
5152 (yyparse): Calls changed accordingly.
5154 1996-05-11 Richard Stallman <rms@gnu.org>
5156 * Makefile.in (dist): Don't use $(srcdir).
5158 * bison.simple (__yy_memcpy):
5159 Really reorder the args, as was supposedly done on Feb 14 1995.
5160 (yyparse): Calls changed accordingly.
5162 1996-01-27 Richard Stallman <rms@gnu.org>
5164 * src/output.c (output_rule_data):
5165 Test YYERROR_VERBOSE in the conditional
5166 around the definition of ttyname.
5168 1995-12-29 Richard Stallman <rms@gnu.org>
5171 Fix line numbers in #line commands.
5173 1995-12-29 Richard Stallman <rms@gnu.org>
5176 Fix line numbers in #line commands.
5178 1995-12-27 Richard Stallman <rms@gnu.org>
5180 * src/bison.s1 (YYPARSE_PARAM_DECL):
5181 In C++, make it always null.
5182 (YYPARSE_PARAM_ARG): New macro.
5183 (yyparse): Use YYPARSE_PARAM_ARG.
5185 1995-12-27 Richard Stallman <rms@gnu.org>
5187 * bison.simple (YYPARSE_PARAM_DECL):
5188 In C++, make it always null.
5189 (YYPARSE_PARAM_ARG): New macro.
5190 (yyparse): Use YYPARSE_PARAM_ARG.
5192 1995-11-29 Richard Stallman <rms@gnu.org>
5194 * doc/bison.texinfo:
5195 Describe literal string tokens, %raw, %no_lines, %token_table.
5197 1995-11-29 Daniel Hagerty <hag@gnu.org>
5199 * doc/bison.texinfo: Fixed update date
5201 1995-10-16 Richard Stallman <rms@gnu.org>
5203 * src/version.c: Version 1.25.
5205 1995-10-16 Richard Stallman <rms@gnu.org>
5207 * NEWS: *** empty log message ***
5209 1995-10-16 Richard Stallman <rms@gnu.org>
5211 * doc/bison.1, doc/bison.rnh:
5214 1995-10-15 Richard Stallman <rms@gnu.org>
5216 * src/vmsgetargs.c, src/getargs.c:
5217 Added -n, -k, and -raw switches.
5218 (noparserflag, toknumflag, rawtoknumflag): New variables.
5220 * src/symtab.h (SALIAS):
5221 New #define for adding aliases to %token.
5222 (struct bucket): Added `alias' field.
5224 * src/reduce.c (reduce_grammar):
5225 Revise error message.
5226 (print_notices): Remove final `.' from error message.
5228 * src/reader.c (reader_output_yylsp):
5230 (readgram): Use `#if 0' around code that accepted %command
5231 inside grammar rules: The documentation doesn't allow it,
5232 and it will fail since the %command processors scan for the next %.
5233 (parse_token_decl): Extended the %token
5234 declaration to allow a multi-character symbol as an alias.
5235 (parse_thong_decl): New function.
5236 (read_declarations): Added %thong declarations.
5237 (read_declarations): Handle NOOP to deal with allowing
5238 % declarations as another means to specify the flags.
5239 (readgram): Allow %prec prior to semantics embedded in a rule.
5240 (skip_to_char, read_declarations, copy_definition)
5241 (parse_token_decl, parse_start_decl, parse_type_decl)
5242 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
5243 (get_type_name, copy_guard, copy_action, readgram)
5244 (get_type, packsymbols): Revised most error messages.
5245 Changed `fatal' to `warnxxx' to avoid aborting for error.
5246 Revised and use multiple warnxxx functions to avoid using VARARGS1.
5247 (read_declarations): Improve the error message for
5248 an invalid character. Do not abort.
5249 (read_declarations, copy_guard, copy_action): Use
5250 printable_version to avoid unprintable characters in printed output.
5251 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
5252 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
5253 Allow the type of a non-terminal can be given
5254 more than once, as long as all specifications give the same type.
5257 (output_headers, output_trailers, output, output_gram)
5258 (output_rule_data): Implement noparserflag variable.
5259 Implement toknumflag variable.
5260 (output): Call reader_output_yylsp to output LTYPESTR.
5262 * src/main.c (main):
5263 If reader sees an error, don't process the grammar.
5264 (fatals): Updated to not use VARARGS1.
5265 (printable_version, int_to_string, warn, warni, warns, warnss)
5266 (warnsss): New error reporting functions. Avoid abort for error.
5269 Added THONG and NOOP for alias processing.
5270 Added SETOPT for the new code that allows setting options with %flags.
5273 Include getopt.h. Add some extern decls.
5274 (safegetc): New function to deal with EOF gracefully.
5275 (literalchar); new function to deal with reading \ escapes.
5276 (lex): Use literalchar.
5277 (lex): Implemented "..." tokens.
5278 (literalchar, lex, parse_percent_token): Made tokenbuffer
5279 always contain the token. This includes growing the token
5280 buffer while reading an integer.
5281 (parse_percent_token): Replaced if-else statement with percent_table.
5282 (parse_percent_token): Added % declarations as another
5283 way to specify the flags -n, -l, and -r. Also added hooks for
5284 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
5285 major changes to files.c.
5286 (lex) Retain in the incoming stream a character following
5288 (skip_white_space, lex): Revised most error messages
5289 and changed fatal to warn to avoid aborting.
5290 (percent_table): Added %thong declarations.
5292 * src/gram.h: Comment changes.
5294 * src/files.c (openfiles, open_extra_files, done):
5296 and actfile file. Handle noparserflag. Both for -n switch.
5298 * src/conflicts.c (resolve_sr_conflict):
5299 Remove use of alloca.
5301 1995-06-01 Jim Meyering <meyering@gnu.org>
5303 * doc/bison.texinfo: *** empty log message ***
5305 1995-05-06 Richard Stallman <rms@gnu.org>
5307 * src/bison.s1: Comment change.
5309 1995-05-06 Richard Stallman <rms@gnu.org>
5311 * bison.simple: Comment change.
5313 1995-05-03 Richard Stallman <rms@gnu.org>
5315 * src/version.c: Version now 1.24.
5317 * src/bison.s1: Change distribution terms.
5319 * src/version.c: Version now 1.23.
5321 1995-05-03 Richard Stallman <rms@gnu.org>
5323 * doc/bison.texinfo:
5324 Rewrite "Conditions for Using Bison".
5325 Update version to 1.24.
5327 1995-05-03 Richard Stallman <rms@gnu.org>
5329 * bison.simple: Change distribution terms.
5331 1995-02-23 Richard Stallman <rms@gnu.org>
5333 * src/files.c: Test __VMS_POSIX as well as VMS.
5335 1995-02-14 Jim Meyering <meyering@gnu.org>
5337 * src/bison.s1 (__yy_memcpy):
5338 Renamed from __yy_bcopy to avoid
5339 confusion. Reverse FROM and TO arguments to be consistent with
5342 1995-02-14 Jim Meyering <meyering@gnu.org>
5344 * bison.simple (__yy_memcpy):
5345 Renamed from __yy_bcopy to avoid
5346 confusion. Reverse FROM and TO arguments to be consistent with
5349 1994-11-10 David J. MacKenzie <djm@gnu.org>
5355 * Makefile.in (DISTFILES): Include NEWS.
5357 * Makefile.in (DISTFILES):
5358 Include install-sh, not install.sh.
5360 * configure.in: Update to Autoconf v2 macro names.
5362 1994-10-05 David J. MacKenzie <djm@gnu.org>
5364 * Makefile.in: fix typo
5366 * Makefile.in (prefix, exec_prefix):
5367 Let configure set them.
5369 1994-09-28 David J. MacKenzie <djm@gnu.org>
5371 * Makefile.in: Set datadir to $(prefix)/share.
5373 1994-09-15 Richard Stallman <rms@gnu.org>
5376 Update copyright notice and GPL version.
5378 1994-09-15 Richard Stallman <rms@gnu.org>
5381 Update copyright notice and GPL version.
5383 1994-07-12 Richard Stallman <rms@gnu.org>
5385 * src/reduce.c, src/reader.c:
5388 1994-05-05 David J. MacKenzie <djm@gnu.org>
5390 * Makefile.in: entered into RCS
5392 1994-03-26 Richard Stallman <rms@gnu.org>
5394 * src/bison.s1: entered into RCS
5396 1994-03-26 Richard Stallman <rms@gnu.org>
5398 * bison.simple: entered into RCS
5400 1994-03-25 Richard Stallman <rms@gnu.org>
5402 * src/main.c: entered into RCS
5404 1994-03-24 Richard Stallman <rms@gnu.org>
5406 * src/conflicts.c: entered into RCS
5408 1994-01-02 Richard Stallman <rms@gnu.org>
5410 * Makefile.in: *** empty log message ***
5412 1993-11-21 Richard Stallman <rms@gnu.org>
5414 * src/bison.s1: *** empty log message ***
5416 1993-11-21 Richard Stallman <rms@gnu.org>
5418 * doc/bison.texinfo: entered into RCS
5420 * doc/bison.texinfo: *** empty log message ***
5422 1993-11-21 Richard Stallman <rms@gnu.org>
5424 * bison.simple: *** empty log message ***
5426 1993-10-25 David J. MacKenzie <djm@gnu.org>
5428 * doc/bison.texinfo: *** empty log message ***
5430 1993-10-19 Richard Stallman <rms@gnu.org>
5432 * src/bison.s1: *** empty log message ***
5434 1993-10-19 Richard Stallman <rms@gnu.org>
5436 * bison.simple: *** empty log message ***
5438 1993-10-14 Richard Stallman <rms@gnu.org>
5440 * src/bison.s1: *** empty log message ***
5442 1993-10-14 Richard Stallman <rms@gnu.org>
5444 * bison.simple: *** empty log message ***
5446 1993-09-14 David J. MacKenzie <djm@gnu.org>
5448 * doc/bison.texinfo: *** empty log message ***
5450 1993-09-13 Noah Friedman <friedman@gnu.org>
5452 * Makefile.in: *** empty log message ***
5454 1993-09-10 Richard Stallman <rms@gnu.org>
5456 * src/conflicts.c: *** empty log message ***
5458 * src/system.h: entered into RCS
5460 1993-09-10 Richard Stallman <rms@gnu.org>
5462 * doc/bison.1: entered into RCS
5464 1993-09-06 Noah Friedman <friedman@gnu.org>
5466 * src/version.c: entered into RCS
5468 1993-09-06 Noah Friedman <friedman@gnu.org>
5470 * Makefile.in: *** empty log message ***
5472 1993-07-30 David J. MacKenzie <djm@gnu.org>
5474 * Makefile.in: *** empty log message ***
5476 1993-07-24 Richard Stallman <rms@gnu.org>
5478 * src/bison.s1: *** empty log message ***
5480 1993-07-24 Richard Stallman <rms@gnu.org>
5482 * bison.simple: *** empty log message ***
5484 1993-07-08 David J. MacKenzie <djm@gnu.org>
5486 * Makefile.in: *** empty log message ***
5488 1993-07-04 Richard Stallman <rms@gnu.org>
5490 * src/bison.s1: *** empty log message ***
5492 1993-07-04 Richard Stallman <rms@gnu.org>
5494 * bison.simple: *** empty log message ***
5496 1993-06-26 David J. MacKenzie <djm@gnu.org>
5498 * src/getargs.c: entered into RCS
5500 1993-06-26 David J. MacKenzie <djm@gnu.org>
5502 * doc/bison.texinfo: *** empty log message ***
5504 * doc/bison.1: New file.
5506 1993-06-25 Richard Stallman <rms@gnu.org>
5508 * src/getargs.c: New file.
5510 1993-06-16 Richard Stallman <rms@gnu.org>
5512 * src/bison.s1: *** empty log message ***
5514 1993-06-16 Richard Stallman <rms@gnu.org>
5516 * bison.simple: *** empty log message ***
5518 1993-06-03 Richard Stallman <rms@gnu.org>
5520 * src/bison.s1: New file.
5522 1993-06-03 Richard Stallman <rms@gnu.org>
5524 * doc/bison.texinfo: *** empty log message ***
5526 1993-06-03 Richard Stallman <rms@gnu.org>
5528 * bison.simple: New file.
5530 1993-05-19 Richard Stallman <rms@gnu.org>
5532 * doc/bison.texinfo: New file.
5534 1993-05-07 Noah Friedman <friedman@gnu.org>
5536 * Makefile.in: *** empty log message ***
5538 1993-04-28 Noah Friedman <friedman@gnu.org>
5540 * src/reader.c: *** empty log message ***
5542 1993-04-23 Noah Friedman <friedman@gnu.org>
5544 * src/alloc.h: entered into RCS
5546 1993-04-20 David J. MacKenzie <djm@gnu.org>
5548 * src/version.c: *** empty log message ***
5550 * src/files.c, src/allocate.c:
5553 * src/reader.c: *** empty log message ***
5555 * src/lex.c: entered into RCS
5557 * src/conflicts.c: New file.
5559 * src/symtab.c: entered into RCS
5561 * src/alloc.h: New file.
5563 * src/LR0.c: entered into RCS
5565 1993-04-18 Noah Friedman <friedman@gnu.org>
5567 * src/reader.c: New file.
5569 * src/version.c: *** empty log message ***
5571 1993-04-18 Noah Friedman <friedman@gnu.org>
5573 * Makefile.in: *** empty log message ***
5575 1993-04-17 Noah Friedman <friedman@gnu.org>
5577 * Makefile.in: *** empty log message ***
5579 1993-04-15 Richard Stallman <rms@gnu.org>
5581 * src/main.c, src/files.c:
5584 1993-04-15 Noah Friedman <friedman@gnu.org>
5586 * configure.in: entered into RCS
5588 * configure.in: *** empty log message ***
5590 * configure.in: New file.
5592 1993-04-14 Richard Stallman <rms@gnu.org>
5594 * Makefile.in: New file.
5596 1993-04-13 Richard Stallman <rms@gnu.org>
5598 * src/version.c: New file.
5600 1993-03-25 Richard Stallman <rms@gnu.org>
5602 * src/output.c: entered into RCS
5604 1992-09-25 Richard Stallman <rms@gnu.org>
5606 * configure.bat: entered into RCS
5608 1992-06-22 Richard Stallman <rms@gnu.org>
5610 * src/vmsgetargs.c: entered into RCS
5612 1992-06-22 Richard Stallman <rms@gnu.org>
5614 * doc/bison.rnh: entered into RCS
5616 1992-04-20 David J. MacKenzie <djm@gnu.org>
5618 * README: entered into RCS
5620 1992-01-22 Richard Stallman <rms@gnu.org>
5622 * src/machine.h: entered into RCS
5624 1991-12-21 Richard Stallman <rms@gnu.org>
5626 * src/lalr.c, src/closure.c:
5629 1991-12-20 Richard Stallman <rms@gnu.org>
5631 * src/state.h: entered into RCS
5633 1991-12-18 Richard Stallman <rms@gnu.org>
5635 * src/print.c, src/nullable.c, src/derives.c:
5638 1991-11-03 David J. MacKenzie <djm@gnu.org>
5640 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
5643 1988-09-09 Richard Stallman <rms@gnu.org>
5645 * src/bison.hairy: entered into RCS
5647 1987-12-16 Richard Stallman <rms@gnu.org>
5649 * REFERENCES: entered into RCS