blob: c53408d550653e7086672b6f097105a52157da74 [file] [log] [blame]
2012-01-15 Akim Demaille <>
java: fix reduction traces.
* data/ (yy_reduce_print): Fix state index.
Reported by Tim Landscheidt.
2012-01-12 Jim Meyering <>
build: avoid warning from coverity about lbitset_elt_find
* lib/lbitset.c (lbitset_elt_find): Remove unnecessary test of "elt",
at a point where we know it is non-NULL, due to prior dereference.
2012-01-13 Jim Meyering <>
maint: get fdl.texi from gnulib
* bootstrap.conf (gnulib_modules): Add fdl.
* doc/fdl.texi: Remove file.
* doc/.gitignore: Add it here.
maint: spell "file system" as two separate words
* doc/ Spell it "file system", to avoid a
"make syntax-check" failure.
maint: avoid "the the"
* djgpp/ s/the the/the/
* src/parse-gram.c (lloc_default): Likewise.
* src/parse-gram.y (lloc_default): Likewise, and remove a
trailing space.
2012-01-13 Akim Demaille <>
maint: factor copyright year.
* Use $PACKAGE_COPYRIGHT_YEAR instead of repeating it.
2012-01-13 Akim Demaille <>
maint: catch missing gnulib macros.
* Add m4_pattern_forbid.
2012-01-11 Tim Landscheidt <>
java: remove used variable.
* data/ (yyresult): remove, unused.
2012-01-11 Akim Demaille <>
scanner: fix typo.
* src/scan-skel.l (@`): s/emtpy/empty/.
Reported by Tim Landscheidt.
2012-01-06 Jim Meyering <>
build: avoid warnings about set-but-not-used variables
* lib/bitset_stats.c (bitset_stats_list): Remove declaration
and set of unused local, "type".
* lib/ebitset.c (ebitset_init): Likewise, for "size".
* lib/lbitset.c (lbitset_not): Likewise, for "elt".
2011-08-21 Joel E. Denny <> remove trailing comma from enumerator list.
* data/ (yy::parser): Here. This suppresses a -pedantic
2011-08-21 Joel E. Denny <>
tests: add -pedantic for --enable-gcc-warnings.
This should help to avoid some portability problems. For example,
it would have revealed the empty unions fixed by the last patch
* tests/ (AT_TEST_SYNCLINE): Avoid -pedantic warning
about an empty translation unit.
2011-08-21 Joel E. Denny <>
tests: fix empty unions.
Empty unions are not accepted by the ISO C99 grammar or by at
least some versions of Sun Studio. Reported by Wolfgang S. Kechel
* NEWS (2.5.1): Document fix.
* THANKS (Wolfgang S. Kechel): Add.
* tests/ (GNU Cim Grammar)
(GNU pic (Groff 1.18.1) Grammar.): Remove empty %union.
2011-07-24 Joel E. Denny <>
global: remove unnecessary horizontal tabs.
This change was made by applying emacs' untabify function to
nearly all files in Bison's repository. Required tabs in make
files, ChangeLog, regexps, and test code were manually skipped.
Other notable exceptions and changes are listed below.
* bootstrap: Skip because we sync this with gnulib.
* data/m4sugar/foreach.m4
* data/m4sugar/m4sugar.m4: Skip because we sync these with
* djgpp: Skip because I don't know how to test djgpp properly, and
this code appears to be unmaintained anyway.
* README-hacking (Hacking): Specify that tabs should be avoided
where not required.
2011-07-10 Joel E. Denny <>
build: avoid YACC typo inherited from Autoconf.
The typo shows up in the `configure --help' output. Reported by
W.C.A. Wijngaards and Paul Eggert at
* README-hacking (Release Procedure): Remind about updating
maintainer tools before a release.
* THANKS (W.C.A. Wijngaards): Add.
* (AC_PREREQ): Set to 2.68, which fixes the YACC
2011-07-10 Joel E. Denny <>
build: create xz instead of bzip2 tarballs.
Suggested by Jim Meyering at
* README-hacking (Release Procedure): Update example.
* (AM_INIT_AUTOMAKE): Replace dist-bzip2 with
2011-05-29 Joel E. Denny <>
doc: clean up references to `Locations Overview'.
* doc/bison.texinfo (Locations Overview): Rename node to...
(Locations): ... this, which is its section name. Update menus to
match that and not to use the title `Tracking Locations', which is
a different section.
2011-05-29 Joel E. Denny <>
doc: clean up references to `Tracking Locations'.
* doc/bison.texinfo (Locations): Rename node to...
(Tracking Locations): ... this, which is its section name, and
update all cross references. The trouble is that there is another
node about locations. Its section name is `Locations', which was
easily confused with the node name of this node. Moreover, its
node name is `Locations Overview', which was mistakenly used to
label some cross references to this node.
2011-05-29 Joel E. Denny <>
doc: clean up `Named References' a little.
* doc/bison.texinfo (Named References): Rename section to match
the node name, and update all cross references. Don't use the
acronyms RHS and LHS given that we don't expand them anywhere in
the manual. Try to use @samp and @code properly. Mention that
named references are experimental as we've already stated in NEWS.
(Destructor Decl): Expand the only remaining use of RHS or LHS.
2011-05-29 Joel E. Denny <>
doc: motivate named references.
Suggested by Hans Aberg at
* doc/bison.texinfo (Named References): Explain briefly how
they're better than the traditional positional references.
2011-05-29 Joel E. Denny <>
doc: discuss named references after locations.
Reported by Hans Aberg at
* NEWS (2.5.1): Document.
* doc/bison.texinfo (Named References): Because it discusses
locations in addition to semantic values, move this subsection out
of the section `Defining Language Semantics', where locations have
not yet been introduced, to be a new section after the following
section, `Tracking Locations'.
2011-05-29 Joel E. Denny <>
Prepare for the possibility of a 2.5.1 release.
* NEWS (2.5.1): New heading.
2011-05-14 Joel E. Denny <>
Version 2.5.
* NEWS (2.5): Set date.
2011-05-14 Joel E. Denny <>
Don't use IF_LINT in Bison sources.
It creates unnecessary differences between the sources that Bison
maintainers build and test (given that maintainers normally
configure with --enable-gcc-warnings) and the sources that Bison
users build. Instead, use PACIFY_CC, which doesn't. This change
fixes compiler warnings reported by Tys Lefering at
* Don't AC_DEFINE lint regardless of the configure
options. This change affects imported gnulib sources, where
IF_LINT still appears and depends on lint.
* src/scan-gram.l, src/scan-skel.l: Replace uses of IF_LINT with
* src/system.h (IF_LINT): Remove cpp macro.
(PACIFY_CC): New cpp macro.
2011-05-01 Joel E. Denny <>
Fix precedence for end token.
Since Bison 2.3b, which restored the ability of precedence
directives to assign user token numbers, doing so for user token
number 0 has produced an assertion failure.
* NEWS (2.5): Document fix.
* src/symtab.c (symbol_user_token_number_set): In the case of the
end token, don't decrement ntokens if it was never incremented.
* tests/ (Token number in precedence declaration):
2011-05-01 Joel E. Denny <>
* bootstrap.conf (gnulib_modules): Add all modules suggested by
* src/files.c (file_name_split)
* src/getargs.c (getargs)
* src/location.c (boundary_set_from_string)
* src/output.c (output_skeleton)
* src/parse-gram.y (prologue_declaration)
* src/scan-gram.l (handle_syncline)
* src/symtab.c (symbol_new): Use mbschr and mbsrchr instead of
strchr and strrchr. In the cases of command-line options, file
names, and thus locations, functionality may be improved. In the
case of symbol names, there should be no functional difference as
all characters are ASCII, so the intended benefit is just warning
2011-05-01 Joel E. Denny <>
* NEWS (2.5): Fix minor typos.
2011-05-01 Joel E. Denny <>
doc: clean up quotation style in NEWS.
* NEWS (2.5): For multi-character tokens in example grammar rules,
use "token" not 'token'. In English, use a consistent quotation
style; we might as well follow the precedent seen in info pages:
`quote' not "quote".
2011-04-16 Joel E. Denny <>
tests: pacify gcc 4.6.0's -Wunused-but-set-variable.
Reported by Jim Meyering at
* tests/
(Default %printer and %destructor for mid-rule values): Define
YYLLOC_DEFAULT so that it uses its Rhs argument.
2011-04-16 Joel E. Denny <>
glr.c: omit yyresolveLocations when locations are disabled.
This prevents gcc 4.6.0's -Wunused-but-set-variable from warning
about yyresolveLocations's local yyrhsloc. When locations are
enabled, there's no such warning because YYLLOC_DEFAULT then uses
yyrhsloc. Reported by Jim Meyering at
* data/glr.c (yyresolveLocations): Omit definition when locations
are disabled.
(yyresolveValue): Omit yyresolveLocations invocation when
locations are disabled.
2011-04-16 Joel E. Denny <>
gnulib, autoconf: update.
* README-hacking (Updating a submodule): Give advice on how to
determine the versions of gnulib and autoconf to which we should
(Release Procedure): Note that submodules should be updated.
* bootstrap.conf (gnulib_modules): Rename pipe to spawn-pipe as
suggested in updated gnulib NEWS.
* gnulib: Choose a stable snapshot according to advice in Bison's
* po/ (lib/pipe.c): Rename to...
(lib/spawn-pipe.c): ... this.
* src/output.c: Update to include spawn-pipe.h.
* submodules/autoconf: Update to latest for improvement in m4.m4
that excludes M4 with buggy strstr. The only other changes to
files that we use are copyright updates.
2011-04-09 Joel E. Denny <>
Fix missing updates to GPLv3.
Reported by Tys Lefering at
* src/print-xml.c, src/print-xml.h: In these files.
2011-03-27 Joel E. Denny <>
Add -Wconflicts-sr and -Wconflicts-rr.
Thus, conflict reports are now affected by -Werror and -Wnone
(unless %expect or %expect-rr is specified). Reported by George
Neuner at
* NEWS (2.5): Document.
* doc/bison.texinfo (Bison Options): Document.
* src/complain.c, src/complain.h (set_warning_issued): Export
* src/conflicts.c (conflicts_print): Suppress conflict report
based on -Wno-conflicts-sr and -Wno-conflicts-rr, and treat
conflicts as errors if -Werror.
* src/getargs.c (warnings_flag): Initialize with
warnings_conflicts_sr and warnings_conflicts_rr as well.
(warnings_args, warnings_types): Add entries for
warnings_conflicts_sr and warnings_conflicts_rr.
(usage): Update.
* src/getargs.h (enum warnings): Add entries for
warnings_conflicts_sr and warnings_conflicts_rr.
* tests/ (-W versus %expect and %expect-rr): New test
* tests/ (AT_BISON_CHECK_NO_XML): Update now that the
conflict report can produce a "warnings being treated as errors"
message. Also, check that stderr is now fully scrubbed by -Wnone
when the exit status is 0.
2011-03-27 Joel E. Denny <>
Pacify maintainer-check-posix.
Adding command-line options after the grammar file name is not
permitted, so disable checks that do that when
maintainer-check-posix is running.
* tests/ (AT_BISON_CHECK_NO_XML): Don't run the
problematic checks when POSIXLY_CORRECT=1. Also, for readability,
remove an unnecessary m4_if.
2011-03-27 Joel E. Denny <>
Add -Wother so -Wnone suppresses all warnings.
Reported by George Neuner at
* NEWS (2.5): Document.
* THANKS (George Neuner): Add.
* doc/bison.texinfo (Bison Options): Document.
* src/complain.c, src/complain.h
(warn_at, warn_at_indent, warn): Suppress warning if -Wno-other.
(midrule_value_at): New warning function, similar to yacc_at in
that it's controlled by its own warning category.
* src/getargs.c (warnings_flag): Initialize to warnings_other.
(warnings_args, warnings_types): Add entry for warnings_other.
(usage): Update.
* src/getargs.h (enum warnings): Add entry for warnings_other.
* src/gram.c (grammar_rules_useless_report): If -Wno-other, then
don't print useless rules.
* src/reader.c (symbol_should_be_used): Rather than adjusting the
return value based on whether midrule value warnings are enabled,
accept a new parameter for telling the caller whether true is
being returned for a potential midrule warning.
(grammar_rule_check): Use midrule_value_at for midrule value
warnings, and continue to use warn_at for all other warnings. Let
them check whether the warnings are enabled.
* tests/ (AT_BISON_CHECK): Update documentation.
(AT_BISON_CHECK_NO_XML): Check that -Wnone and --warnings=none
disable all warnings exercised in the test suite.
2011-03-27 Joel E. Denny <>
Don't let -Wnone disable -Werror.
Discussed at
* NEWS (2.5): Document.
* src/getargs.c (flags_argmatch): Accept a new argument that
specifies what flags "all" and thus "none" affect.
(FLAGS_ARGMATCH): Update flags_argmatch invocation.
* tests/ (-Werror is not affected by -Wnone and -Wall):
New test group.
2011-03-27 Joel E. Denny <>
* NEWS (2.5): Document fix for -Wno-CATEGORY.
2011-03-20 Joel E. Denny <>
doc: fix confusing citation of LAC publication.
Suggested by Akim Demaille.
* doc/bison.texinfo (LAC): Here.
2011-03-20 Joel E. Denny <>
lr.default-reductions: rename "full" value to "most".
Unlike "consistent" and "accepting", "full" doesn't answer the
question of "which states".
* doc/bison.texinfo (%define Summary): Update.
(Default Reductions): Update.
* src/print.c (print_reductions): Update.
* src/reader.c (prepare_percent_define_front_end_variables):
* src/tables.c (action_row): Update.
* tests/ (%define enum variables): Update.
* tests/ (%define lr.default-reductions): Update.
2011-03-13 Joel E. Denny <>
* src/parse-gram.c, src/parse-gram.h: Regenerate.
2011-03-09 Akim Demaille <>
named references: fix double free.
In `rhs[name]: "a" | "b"', do not free "name" twice.
Reported by Tys Lefering.
* src/named-ref.h, src/named-ref.c (named_ref_copy): New.
* src/parse-gram.y (current_lhs): Rename as...
(current_lhs_symbol): this.
(current_lhs): New function. Use it to free the current lhs
named reference.
* src/reader.c: Bind lhs to a copy of the current named reference.
* src/symlist.c: Rely on free (0) being valid.
* tests/ Test this.
2011-03-09 Akim Demaille <>
tests: style changes.
* tests/ (Redundant words in LHS brackets)
(Unresolved references): here.
2011-03-06 Joel E. Denny <>
java: fix parser tracing bug.
* NEWS (2.5): Document.
* data/ (YYParser::YYStack::print): Don't skip top
2011-03-06 Joel E. Denny <>
java: finish fixing parser stack popping bug.
* NEWS (2.5): Document.
* data/ (YYParser::YYStack::pop): Fix off-by-one error
in clearing the location stack. Also fix pop function that
accepts no arguments.
2011-03-06 Angelo Borsotti <> (tiny change)
java: fix parser stack popping bug.
Reported at
* THANKS (Angelo Borsotti): Add.
* data/ (YYParser::YYStack::pop): Fix off-by-one error
in clearing the value stack. Previously, the top element of the
stack wasn't cleared and so the value was not garbage collected.
2011-03-06 Joel E. Denny <>
doc: cite publication for LAC.
* doc/bison.texinfo (LAC): Here.
2011-03-06 Joel E. Denny <>
doc: clean up terminology for mysterious conflicts.
* doc/bison.texinfo (Mystery Conflicts): Rename node to...
(Mysterious Conflicts): ... this, which is already the section
title and the name used in the index. Update all cross-references
to this node. Also, don't imply that R/R conflicts are the only
kind of mysterious conflict.
2011-03-06 Joel E. Denny <>
lr.default-reductions: rename "all" value to "full".
States that shift the error token do not have default reductions,
and GLR disables some default reductions, so "all" was a misnomer.
* doc/bison.texinfo (%define Summary): Update.
(Default Reductions): Update.
* src/print.c (print_reductions): Update.
* src/reader.c (prepare_percent_define_front_end_variables):
* src/tables.c (action_row): Update.
* tests/ (%define enum variables): Update.
* tests/ (%define lr.default-reductions): Update.
2011-03-06 Joel E. Denny <>
doc: create a new Tuning LR section in the manual.
And clean up all other documentation of the features described
* NEWS (2.5): Tweak wording of lr.type and parse.lac entries a
bit, update the cross-references to the manual, and point out that
LAC has caveats. Don't be so adamant that IELR+LAC=canonical LR.
That is, as the referenced section in the manual documents, LAC
does not fix infinite parsing loops on syntax errors.
* doc/bison.texinfo: Consistently drop the "(1)" suffix from LALR,
IELR, and LR in @cindex.
(%define Summary): Condense the entries for lr.default-reductions,
lr.keep-unreachable-states, lr.type, and parse.lac into brief
summaries, and cross-reference the appropriate subsections of
Tuning LR. For parse.lac, mention that it's only implemented for
deterministic parsers in C. In parse.error entry, mention LAC,
and add cross-reference to the LAC section.
(Error Reporting): When mentioning parse.error, mention LAC, and
add cross-reference to the LAC section.
(Tuning LR): New section with an extended version of the
documentation removed from %define Summary. Change all
cross-references in the manual to point here instead of there.
(Calc++ Parser): When mentioning parse.error, mention LAC, and add
cross-reference to the LAC section.
(Table of Symbols): In %error-verbose entry, add cross-reference
to Error Reporting.
(Glossary): Capitalize entry titles consistently. Add definitions
for "defaulted state" and "unreachable state". Expand IELR
acronym in IELR's entry.
2011-02-20 Joel E. Denny <>
doc: add bibliography to manual.
* doc/bison.texinfo (Mystery Conflicts): Cross-reference
bibliography instead of citing publications directly.
(Generalized LR Parsing): Likewise.
(Bibliography): New section. Not all entries are cross-referenced
yet, but that will come in future patches.
2011-02-19 Joel E. Denny <>
java: test and document previous bug fix.
* NEWS (2.5): Document it.
* tests/ (_AT_DATA_JAVA_CALC_Y): To one of the yyerror
invocations, pass a location that spans multiple tokens. Change
yyerror to report all of a location rather than just the begin
position. Extend yylex and Position to count tokens on a line.
Remove getHashCode as it's unused. Update all expected output.
2011-02-19 Bernd Kiefer <> (tiny change)
java: fix location handling bug.
Reported at
* data/ (YYParser::yylloc): For non-empty RHS, fix
reversed access to location stack.
* THANKS (Bernd Kiefer): Add.
2011-02-13 Joel E. Denny <>
doc: fix some minor inconsistencies.
* doc/bison.texinfo (%define Summary): Fix mislabeled entry for
(%code Summary): For consistency with the variable list in the
%define Summary, enclose the list of %code qualifiers in a table
instead of an itemize.
2011-02-06 Joel E. Denny <>
doc: clean up new subsections in manual.
* doc/bison.texinfo (%define Summary): Reword so it reads well as
a separate section. For example, add an intro, and move most of
the text outside of the @deffn so it is not indented so far.
(%code Summary): Likewise.
(Table of Symbols): Reword %code entry to match the %code entry in
Decl Summary.
2011-02-06 Joel E. Denny <>
doc: finish splitting apart the manual's Decl Summary section.
Suggested by Akim Demaille at
* doc/bison.texinfo (Decl Summary): Extract most of the %define
entry into...
(%define Summary): ... this new subsection, and update all
cross-references. For readability of the patches, rewriting of
the text so it makes sense as a separate subsection will come in a
later patch. Moreover, the majority of the text describing the
various new LR features should likely move to another new section
2011-02-06 Joel E. Denny <>
doc: begin to split apart the manual's Decl Summary section.
Discussed in thread starting at
* doc/bison.texinfo (Decl Summary): Extract most of the %code
entry into...
(%code Summary): ... this new subsection, and update all
cross-references. For readability of the patches, rewriting of
the text so it makes sense as a separate subsection will come in a
later patch.
2011-02-06 Joel E. Denny <>
doc: clean up naming of various Bison files.
The Bison manual's names for various files associated with a Bison
parser has devolved into inconsistency. This patch makes the
naming consistent for the most important files. First, it chooses
"grammar file" over "input file". The former appears to be more
traditional in the Bison manual, and Bison has other input
files (skeletons). Second, it chooses "parser implementation
file" over names like "parser file", "parser source file", "parser
source code file", and "parser output file". The new name makes
it clearer where Bison generates the main parser implementation,
and it is easily distinguishable from "parser header file".
* doc/bison.texinfo: Implement throughout.
2011-02-06 Joel E. Denny <>
doc: give credit to more of Bison's developers.
* doc/bison.texinfo (Introduction): Don't imply that only Robert
Corbett, Richard Stallman, and Wilfred Hansen have contributed to
Bison. However, I don't have time to write a full history, so
just point readers to THANKS and ChangeLog.
2011-02-06 Joel E. Denny <>
doc: document experimental features better.
* doc/bison.texinfo (Introduction): Say that IELR(1) and canonical
LR(1) are experimental. Mention Java. Normally experimental
features probably shouldn't be mentioned in the introduction.
However, if Bison's limitations to LALR(1), C, and C++ are so
important that they should be mentioned here, then it's important
to point out that Bison is beginning to escape those limitations.
Moreover, these particular experimental features have very little
chance of being removed.
* src/getargs.c (usage): Say that IELR(1) and canonical LR(1) are
2011-01-29 Joel E. Denny <>
Do not allow identifiers that start with a dash.
This cleans up our previous fixes for a bug whereby Bison
discarded `.field' in `$-1.field'. The previous fixes were less
restrictive about where a dash could appear in an identifier, but
the restrictions were hard to explain. That bug was reported and
this final fix was originally suggested by Paul Hilfinger. This
also fixes a remaining bug reported by Paul Eggert whereby Bison
parses `%token ID -123' as `%token ID - 123' and handles `-' as an
identifier. Now, `-' cannot be an identifier. Discussed in
threads beginning at
* NEWS (2.5): Update entry describing the dash extension to
grammar symbol names. Also, move that entry before the named
references entry because the latter mentions the former.
* doc/bison.texinfo (Symbol): Update documentation for symbol
names. As suggested by Paul Eggert, mention the effect of periods
and dashes on named references.
(Decl Summary): Update documentation for unquoted %define values,
which, as a side effect, can no longer start with dashes either.
* src/scan-code.l (id): Implement.
* src/scan-gram.l (id): Implement.
* tests/ (Exotic Dollars): Extend test group to exercise
bug reported by Paul Hilfinger.
* tests/ (Symbols): Update test group, and extend to
exercise bug reported by Paul Eggert.
* tests/ (Stray symbols in brackets): Update test
($ or @ followed by . or -): Likewise.
* tests/ (Invalid inputs): Likewise.
2011-01-24 Joel E. Denny <>
* data/yacc.c: Fix last apostrophe warning from xgettext.
2011-01-09 Paul Eggert <>
Fix minor problems encountered by a fresh bootstrap.
* data/glr.c, data/yacc.c: Do not use apostrophes in '#' comments,
as they confuse xgettext, which tries to parse them as C character
constants in a preprocessor directive.
* data/yacc.c (yy_lac): Don't use printf %d format on *yyesp, as
that expression might not promote to int on some platforms.
* src/parse-gram.c, src/parse-gram.h: Regenerate.
2011-01-09 Joel E. Denny <>
Improve error messages for `$' or `@' followed by `.' or `-'.
Previously, for this special case of an invalid reference, the
usual "symbol not found in production:" was printed. However,
because the symbol name was parsed as the empty string, that
message was followed immediately by a newline instead of a symbol
name. In reality, this is a syntax error, so the reference is
invalid regardless of the symbols actually appearing in the
production. Discussed at
* src/scan-code.l (parse_ref): Report the above case as a syntax
error. Other than that, continue to handle this case like any
other invalid reference that Bison manages to parse because
"possibly meant" messages can still be helpful to the user.
* tests/ ($ or @ followed by . or -): New test group.
2011-01-08 Joel E. Denny <>
doc: don't use @acronym.
Lately, many GNU packages are dropping it. See
* doc/bison.texinfo: Remove all uses.
2011-01-05 Alex Rozenman <>
Do not allow identifiers that start with a negative number.
Reported by Paul Hilfinger as a side effect of named references
support at
Suggested by Paul Eggert.
* src/scan-code.l ({letter}, {id}): Adjust lexical definitions.
* src/scan-gram.l ({letter}, {id}): Likewise.
2011-01-03 Joel E. Denny <>
* ChangeLog (2011-01-02): improve description.
2011-01-03 Joel E. Denny <>
maint: don't update copyright years in bootstrap.
* .x-update-copyright: Add entry for bootstrap.
* bootstrap: Remove 2011 from copyright years. The bootstrap
version we're currently using comes from an older version of
* bootstrap.conf (bootstrap_sync): Add comments explaining this
2011-01-02 Joel E. Denny <>
maint: run "make update-copyright".
2011-01-02 Joel E. Denny <>
maint: prepare to use year ranges in copyright notices.
* README (Copyright statements): New section explaining the range
notation. The GNU maintainers document requires this explanation:
I copied our explanation from coreutils.
* build-aux/update-b4-copyright: Revert 2010-06-17 changes that
disabled Bison's automated use of ranges.
* (update-copyright-env): Likewise.
2011-01-02 Joel E. Denny <>
Correct my email address.
* ChangeLog: In all recent entries.
* THANKS (Joel E. Denny): Here.
2010-12-19 Joel E. Denny <>
doc: cleanup.
* NEWS (2.5): Try to sort entries according to how interesting
users might find them.
2010-12-19 Joel E. Denny <>
doc: cleanup.
* NEWS (2.5): Make some minor improvements to wording, and format
entries more consistently.
* doc/bison.texinfo (Language and Grammar): Point out that IELR
and canonical LR are experimental features.
(Decl Summary): In list of %define variables, make wording more
consistent. Improve discussion of using LALR for GLR.
2010-12-19 Joel E. Denny <>
parse.lac: document.
* NEWS (2.5): Add entry for LAC, and mention LAC in entry for
other corrections to verbose syntax error messages.
* doc/bison.texinfo (Decl Summary): Rewrite entries for
lr.default-reductions and lr.type to be clearer, to mention
%nonassoc's effect on canonical LR, and to mention LAC. Add entry
for parse.lac.
(Glossary): Add entry for LAC.
2010-12-11 Joel E. Denny <>
parse.lac: implement exploratory stack reallocations.
* data/yacc.c: Rename %define variable to Accept parse.lac.memory-trace
with values of "failures" (default) or "full".
(b4_declare_parser_state_variables): Add yyesa, yyes, and
yyes_capacity variables.
(YYSTACK_USE_ALLOCA): Ignore it if LAC requested.
LAC requested.
(YYCOPY_NEEDED): New cpp macro.
(YYCOPY): Define if LAC requested.
(yy_lac_stack_realloc): New function implementing stack
reallocations. Use YYMAXDEPTH for maximum stack size given that
the stack should never need to grow larger than the main state
stack needs to grow without LAC.
(YY_LAC_ESTABLISH): Update yy_lac invocation.
(yy_lac): Add arguments for exploratory stack memory data
recorded in the main parser. Invoke yy_lac_stack_realloc when
reallocation is necessary.
(yysyntax_error): Add the same new arguments and pass them to
(yypstate_delete): Free yyes if necessary.
(yyesa, yyes, yyes_capacity): #define these to yypstate members
in the case of push parsing.
(yyparse, yypush_parse): Initialize yyes and yyes_capacity.
Update yysyntax_error invocations. At yyreturn, free yyes if
* src/parse-gram.y: %define parse.lac full.
* tests/ (LAC: errors for %define): Extend for
* tests/ (LAC: Exploratory stack): Extend to check
that stack reallocs happen when expected.
(LAC: Memory exhaustion): Update to use YYMAXDEPTH and
2010-12-11 Joel E. Denny <>
parse.lac: implement as %define variable.
LAC = lookahead correction. See discussion at
However, one point there must be corrected: because of %nonassoc,
LAC is *not* always redundant for lr.type=canonical-lr.
* data/yacc.c: Accept values of "none" (default) or "full" for
parse.lac. Accept %define to specify
capacity of LAC's temporary exploratory stack. It defaults to 20
and, for now, will not grow dynamically.
(b4_lac_flag, b4_lac_if): New m4 macros. Evaluate as true for
(YY_LAC_ESTABLISH, YY_LAC_DISCARD): New cpp macros that invoke
yy_lac and track when it needs to be invoked
(yy_lac): New function that, given the current stack, determines
whether a token can eventually be shifted. Return status mimics
yyparse return status.
(yysyntax_error): Change yystate argument to yyssp so stack top
can be passed to yy_lac. If LAC is requested, build expected
token list by invoking yy_lac for every token instead of just
checking the current state for lookaheads. Return 2 if yy_lac
exhausts memory.
(yyparse, yypush_parse): Use local variable yy_lac_established and
cpp macros YY_LAC_ESTABLISH and YY_LAC_DISCARD to implement LAC.
Update yysyntax_error invocation. Add yyexhaustedlab code if LAC
is requested.
* tests/ (%nonassoc and eof): Extend to check the
effect of each of -Dlr.type=canonical-lr and -Dparse.lac=full.
(parse.error=verbose and consistent errors): Likewise.
(LAC: %nonassoc requires splitting canonical LR states): New test
group demonstrating how LAC can fix canonical LR.
* tests/ (LAC: Errors for %define): New test group.
* tests/ (LAC: Exploratory stack): New test group.
(LAC: Memory exhaustion): New test group.
2010-11-21 Joel E. Denny <>
build: use gnulib's new bootstrap_sync option.
Now, whenever we update bison's copy of gnulib, bootstrap will
update itself the next time it's run.
* bootstrap: Copy from latest gnulib for bootstrap_sync support.
* bootstrap.conf (bootstrap_sync): Set to true.
* gnulib: Update to latest so bootstrap is in sync now.
2010-11-07 Joel E. Denny <>
yysyntax_error: fix for consistent error with lookahead.
* NEWS (2.5): Document.
* data/yacc.c (yysyntax_error): In a verbose syntax error
message while in a consistent state with a default action (which
must be an error action given that yysyntax_error is being
invoked), continue to drop the expected token list, but don't
drop the unexpected token unless there actually is no lookahead.
Moreover, handle that internally instead of returning 1 to tell
the caller to do it. With that meaning of 1 gone, renumber
return codes more usefully.
(yyparse, yypush_parse): Update yysyntax_error usage. Most
importantly, set yytoken to YYEMPTY when there's no lookahead.
* data/glr.c (yyreportSyntaxError): As in yacc.c, don't drop the
unexpected token unless there actually is no lookahead.
* data/ (yy::parser::parse): If there's no lookahead,
pass yyempty_ not yyla.type to yysyntax_error_.
(yy::parser::yysyntax_error_): Again, don't drop the unexpected
token unless there actually is no lookahead.
* data/ (YYParser::parse): If there's no lookahead,
set yytoken to yyempty_ before invoking yysyntax_error.
(YYParser::yysyntax_error): Again, don't drop the unexpected
token unless there actually is no lookahead.
* tests/ (parse.error=verbose and consistent
errors): Extend test group to further reveal how the previous
use of the simple "syntax error" message was too general. Test
yacc.c, glr.c,, and No longer an expected
* tests/ ... here.
(AT_FULL_COMPILE): Extend to handle Java.
2010-11-07 Joel E. Denny <>
yysyntax_error: more preparation for readability of next patch.
There are no behavioral changes here.
* data/glr.c (yyreportSyntaxError): Reorganize.
* data/ (yy::parser::yysyntax_error_): Reorganize.
* tests/ (parse.error=verbose and consistent errors):
2010-11-07 Joel E. Denny <>
yysyntax_error: prepare for readability of next patches.
These are purely whitespace changes that result in ugly code
but that make the next couple of patches much easier to read.
* data/glr.c (yyreportSyntaxError): Reindent.
* data/ (yy::parser::yysyntax_error_): Reindent.
* data/ (YYParser::yysyntax_error): Reindent.
* data/yacc.c (yysyntax_error): Reindent.
2010-10-31 Joel E. Denny <>
Fix memory leak.
* src/output.c (prepare_rules): Free temporary array.
2010-10-31 Joel E. Denny <>
yysyntax_error: improve invocation readability.
* data/yacc.c (yyparse, yypush_parse): For yysyntax_error
invocation, get rid of the while loop, which is misleading
because there are really at most two iterations.
2010-10-31 Joel E. Denny <>
* ChangeLog: Correct some errors in previous entries.
2010-10-17 Joel E. Denny <>
maint: re-anchor all .gitignore entries.
* bootstrap: Copy from gnulib's latest for the fix to
automatically anchor entries it constructs.
* gnulib: Update to latest just so it has the same bootstrap.
* .gitignore, build-aux/.gitignore, doc/.gitignore:
* lib/.gitignore, m4/.gitignore, po/.gitignore:
* runtime-po/.gitignore: Re-anchor all entries.
2010-10-08 Paul Eggert <>
Fix portability problem on OpenBSD 4.7.
Jim Meyering reported this in
* data/yacc.c: Use EXIT_SUCCESS as a witness for stdlib.h,
not _STDLIB_H. EXIT_SUCCESS has been defined by the standard
for quite some time.
* src/parse-gram.c, src/parse-gram.h: Regenerate.
* tests/ Tamper with the renamed witness.
Adjust to recent changes to gnulib bootstrap.
* .cvsignore, build-aux/.cvsignore, doc/.cvsignore, etc/.cvsignore:
* examples/calc++/.cvsignore, lib/.cvsignore, m4/.cvsignore:
* po/.cvsignore, runtime-po/.cvsignore, src/.cvsignore:
* tests/.cvsignore: Remove; I don't use CVS to maintain Bison
anymore and don't know of anybody else who does. If someone needs
these files, they can resurrect them.
* .gitignore, build-aux/.gitignore, doc/.gitignore, lib/.gitignore:
* m4/.gitignore, po/.gitignore, runtime-po/.gitignore:
Omit leading '/', since bootstrap omits it.
Adjust file names to match current contents better.
* bootstrap: Sync from gnulib: this contains the new gnulib_mk_hook
installed just for us.
* bootstrap.conf (excluded_files): Don't exclude codeset.m4,
glibc21.m4, inttypes_h.m4, size_max.m4, xsize.m4, as they are now
needed somehow. Don't have time to look into why.
(gnulib_modules): Change malloc to malloc-gnu. Do we really assume
the GNU malloc behavior, where malloc (0) != NULL unless we're
out of storage? If not, we can omit malloc-gnu; but for now I left
it in to be safe.
(vc_ignore): Remove.
(gnulib_mk_hook): New function.
* README-hacking: Renamed from HACKING, since gnulib bootstrap now
uses that convention.
2010-09-09 Paul Hilfinger <>
* data/glr.c (yySymbol): Define as int to avoid compiler warnings about
possible change of value.
2010-09-08 Paul Hilfinger <>
* data/glr.c (yy_reduce_print): Change yyrhsVals to yyvsp to remove
compiler errors when using %debug.
Add declaration of yylow when locations in use to avoid compilation
(yyglrReduce): Conditionalize message "Parse ... rejected by rule..."
on whether we are in split mode, for consistency with behavior of
non-GLR parsing.
2010-09-01 Akim Demaille <>
Address GCC warnings about shadowed local variables (yyflag).
* data/glr.c (YYCHK): Rename yyflag as yychk_flag.
(yyprocessOneStack): Reduce the scope of yyaction, yyconflicts,
yyrule, and yyflag.
2010-08-05 Joel E. Denny <>
Version 2.4.3.
* NEWS (2.4.3): Set date.
2010-08-04 Joel E. Denny <>
maint: add gettext version to release announcements.
Suggested by Paul Hilfinger at
* (bootstrap-tools): Add gettext.
2010-08-04 Joel E. Denny <>
doc: fix -W and %expect documentation some.
* NEWS (2.4.3): Mention that there are documentation fixes.
* doc/bison.texinfo (Expect Decl): Make it clear that %expect
turns conflicts into errors not warnings.
(Shift/Reduce): Likewise.
(Bison Options): Don't mention -Wsyntax. It doesn't exist.
2010-08-01 Joel E. Denny <>
-Werror: fix for rules useless in parser after conflicts.
* NEWS (2.4.3): Document fix.
* src/complain.c (error_message): Extend to handle incomplete
error messages so warn and warn_at can be used in more cases.
* src/gram.c (grammar_rules_useless_report): Use warn_at so that
-Werror is always obeyed.
* src/reduce.c (reduce_print): Use warn so that the "warnings
being treated as errors" message is printed consistently before
the first warning message. This makes testing easier.
* tests/ (AT_BISON_WERROR_MSG): New macro.
(AT_BISON_CHECK_NO_XML): Extend to check -Werror and
--warnings=error when warnings appear in bison's stderr.
2010-07-29 Joel E. Denny <>
maint: enable gnits only at stable releases.
* (AM_INIT_AUTOMAKE): Underscore or dash in a
version string should disable gnits. Explain in comments.
2010-07-28 Joel E. Denny <>
i18n: update.
* po/ Add src/graphviz.c.
2010-07-28 Joel E. Denny <>
i18n: fix for gnulib.
* po/ Add remaining gnulib files that have
translatable strings.
2010-07-25 Joel E. Denny <>
build: fix our adjustments for gnulib files in lib.
* For prepending lib/ to the values of config
variables, fix detection of empty values. Also, due to recent
gnulib changes, add LIBUNISTRING_UNITYPES_H and
LIBUNISTRING_UNIWIDTH_H to the list of those variables.
2010-07-25 Joel E. Denny <>
maint: use announce-gen's new --mail-headers.
* HACKING (Announce): Update instructions.
* (announcement_Cc_): Define.
* (AM_GNU_GETTEXT_VERSION): Update to 0.18 as
required by latest gnulib.
* gnulib: Update to latest.
2010-07-24 Joel E. Denny <>
tests: handle Valgrind that complains about >&-.
* tests/ (AT_CHECK_OUTPUT): Extend to accept pre-tests.
(Output files: -dv >&-): Skip test group if running
2010-07-23 Paul Hilfinger <hilfingr@EECS.Berkeley.EDU>
* NEWS: Describe new semantic-predicate feature.
* data/c.m4 (b4_predicate_case): New definition.
* data/java.m4 (b4_predicate_case): New definition.
* data/glr.c (yyimmediate): Add definition.
(yydoAction): Remove comment, now obsolete.
(yyglrReduce): Alter comment to indicate that semantic values
need not be deferred.
Remove YY_REDUCE_PRINT from here; done in yydoAction.
(yyprocessOneStack): Pass immediate flag.
Delete stacks rejected by predicates in newly split-off parsers.
Change handling of yyerr so that only current stack gets deleted
when semantic predicate fails.
(yyfillin): Don't crash if a semantic value is unresolved (as may
happen in predicate rules).
Copy lr state as well in debugging mode.
Update comment on setting of yysval to include yyloc as well.
(yy_reduce_print): Add yynormal argument. Perform fillin properly.
Report unresolved RHS values.
(yyimmediate): New table.
* src/gram.h (struct rule): Add is_predicate field.
* src/output.c (user_actions_output): Use b4_predicate_case for
(prepare_symbols): Output yyimmediate.
* src/scan-gram.l: Add %? token, SC_PREDICATE state.
* src/scan-code.l (code_props_rule_action_init): Add is_predicate
* src/scan-code.h (struct code_props): Add is_predicate field.
(code_props_rule_action_init): New interface.
* src/parse-gram.y (%?{...}): New token.
(rhs): Add %?{...} rule.
* src/parse-gram.c: Regenerate.
* src/parse-gram.h: Regenerate.
* src/reader.c (grammar_current_rule_action_append): Add
immediate argument.
(grammar_midrule_action): Use new interface for
(grammar_current_rule_action_append): Ditto.
(packgram): Transfer is_predicate value.
* src/reader.h (grammar_current_rule_action_append): New interface.
* doc/bison.texinfo: Document semantic predicates (%?).
* data/glr.c (yylhsNonterm, yyisDefaultedState,yyDefaultAction)
(yyresolveLocations,yyresolveValue,yyreducePrint): Update parameter
names in comments and mention all parameters.
(struct yyGLRState): Fix description of yyposn field.
(yyresolveLocations): Correct comment so as not to imply action when
2010-06-17 Paul Eggert <>
Update from GFDL GFDL 1.2 to 1.3.
* doc/bison.texinfo: Update GFDL version number.
* doc/fdl.texi: Update to version 1.3, taken from:
Do not use date ranges in copyright notices.
* TODO, bootstrap, bootstrap.conf:
* build-aux/update-b4-copyright,,
* data/README, data/bison.m4, data/c++-skel.m4, data/c++.m4:
* data/c-skel.m4, data/c.m4, data/glr.c, data/
* data/java-skel.m4, data/java.m4, data/
* data/, data/, data/
* data/stack.hh, data/variant.hh, data/xslt/bison.xsl:
* data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl:
* data/xslt/xml2xhtml.xsl, data/yacc.c, djgpp/Makefile.maint:
* djgpp/, djgpp/config.bat, djgpp/config.sed:
* djgpp/, djgpp/config_h.sed, djgpp/djunpack.bat:
* djgpp/, djgpp/subpipe.c, djgpp/subpipe.h:
* djgpp/testsuite.sed, doc/bison.texinfo, doc/
* doc/refcard.tex, etc/README, etc/, etc/
* examples/calc++/, examples/extexi:
* examples/, lib/abitset.c, lib/abitset.h:
* lib/bbitset.h, lib/bitset.c, lib/bitset.h:
* lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c:
* lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h:
* lib/ebitset.c, lib/ebitset.h, lib/get-errno.c:
* lib/get-errno.h, lib/lbitset.c, lib/lbitset.h:
* lib/libiberty.h, lib/, lib/main.c, lib/timevar.c:
* lib/timevar.def, lib/timevar.h, lib/vbitset.c:
* lib/vbitset.h, lib/yyerror.c, m4/bison-i18n.m4:
* m4/c-working.m4, m4/cxx.m4, m4/subpipe.m4, m4/timevar.m4:
* src/AnnotationList.c, src/AnnotationList.h:
* src/InadequacyList.c, src/InadequacyList.h, src/LR0.c:
* src/LR0.h, src/Sbitset.c, src/Sbitset.h, src/assoc.c:
* src/assoc.h, src/closure.c, src/closure.h, src/complain.c:
* src/complain.h, src/conflicts.c, src/conflicts.h:
* src/derives.c, src/derives.h, src/files.c, src/files.h:
* src/flex-scanner.h, src/getargs.c, src/getargs.h:
* src/gram.c, src/gram.h, src/graphviz.c, src/ielr.c:
* src/ielr.h, src/lalr.c, src/lalr.h, src/
* src/location.c, src/location.h, src/main.c:
* src/muscle-tab.c, src/muscle-tab.h, src/named-ref.c:
* src/named-ref.h, src/nullable.c, src/nullable.h:
* src/output.c, src/output.h, src/parse-gram.y:
* src/print-xml.c, src/print-xml.h, src/print.c, src/print.h:
* src/print_graph.c, src/print_graph.h, src/reader.c:
* src/reader.h, src/reduce.c, src/reduce.h, src/relation.c:
* src/relation.h, src/scan-code.h, src/scan-code.l:
* src/scan-gram.h, src/scan-gram.l, src/scan-skel.h:
* src/scan-skel.l, src/state.c, src/state.h, src/symlist.c:
* src/symlist.h, src/symtab.c, src/symtab.h, src/system.h:
* src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h:
* tests/, tests/, tests/
* tests/, tests/, tests/
* tests/, tests/
* tests/, tests/, tests/
* tests/, tests/, tests/
* tests/, tests/, tests/
* tests/, tests/, tests/
* tests/, tests/, tests/
Don't use date ranges in copyright notices.
2010-05-11 Akim Demaille <> give a chance to user defined YYLLOC_DEFAULT.
* data/ (YYLLOC_DEFAULT): Move its definition from the
header file to the implementation file, after the user %code
* NEWS (2.5): Document this.
2010-05-11 Akim Demaille <>
doc: please Emacs.
* doc/bison.texinfo (Local Variables): Move this after the
LocalWords, since the latter are looked for in the whole document,
while the former are looked for only at its end.
Require american spell checking.
2010-05-10 Akim Demaille <>
doc: fix documentation.
* doc/bison.texinfo (C++ Scanner Interface): Fix yylex signature.
(C++ Bison Interface): Fix skeleton name.
(C++ Parser Interface): Fix semantic_type and location_type names.
Document yy::parser::token.
Reported by Jerry Quinn.
2010-05-10 Akim Demaille <>
c++: use YYRHSLOC.
* data/ (YYRHSLOC): New.
* data/ If location_type was user defined, do not include
location.hh, and do not produce location.hh and position.hh.
Check that supports user defined location_type.
* NEWS: Document this.
2010-05-07 Akim Demaille <>
doc: fix typo.
* tests/ here.
2010-05-04 Akim Demaille <>
tests: enhance AT_SYNCLINES_COMPILE.
* tests/ (AT_SYNCLINES_COMPILE): More distcc patterns.
(AT_TEST_SYNCLINE): Remove GCC 4.5 protection which is already
taken care of in AT_SYNCLINES_COMPILE.
2010-05-04 Akim Demaille <> don't generate location.hh when location_type is defined
* data/bison.m4 (b4_percent_define_get): Accept a default value.
* data/c++.m4: Do not provide a default value for the %define
variable location_type, rather, use b4_percent_define_get with a
default argument where its value is needed.
* data/ Do not load (which outputs both
location.hh and position.hh) if the user defined location_type.
Do not include location.hh either.
2010-05-04 Akim Demaille <> minor refactoring.
* data/ Don't issue empty namespaces.
2010-05-04 Akim Demaille <>
tests: fix %printer.
Currently, there is no check that %printer ... <foo> (nor
%destructor) is about an existing <foo> type. This C++ test had
it wrong (<::std::string> vs. <std::string>).
* tests/ (AT_CHECK_VARIANTS): In list.yy, redefine the
pretty-printing of lists into something better for parser traces.
Update the expected output.
Fix correspondance between %type/%token and %printer.
2010-05-04 Akim Demaille <> location_type: make sure we don't depend on loc.(begin|end).
* tests/ (Span): Instead of begin/end, as in the built-in
location class, use first and last.
Define YYLLOC_DEFAULT to adjust to these changes.
* tests/ (_AT_BISON_OPTION_PUSHDEFS): Adjust to the
location_type changes.
2010-05-01 Joel E. Denny <>
tests: fix maintainer-xml-check.
* data/xslt/xml2dot.xsl (xsl:template match="bison-xml-report"):
Update output to include comments now produced by --graph.
(xsl:template match="automaton"): As for --graph, name the
digraph after the grammar file.
* src/print-xml.c (escape_bufs): Enlarge array.
(print_xml): Add bug-report and url attributes to
bison-xml-report element.
2010-05-01 Joel E. Denny <>
In DOT output, convert from "/*" comments to "//" comments.
This handles the possibility that a "*/" might appear in
variable portions of those comments at some point in the future.
* src/graphviz.c (start_graph): Implement.
2010-04-30 Joel E. Denny <>
Document that undefined %prec identifier warnings will remain.
* NEWS (2.4.3): Here.
(2.4.2): Here.
2010-04-30 Joel E. Denny <>
Revert 2009-12-30 change for undefined %prec token complaints.
That is, keep them as warnings because that should be sufficient
to satisfy POSIX without creating backward compatibility issues.
Suggested by Richard Stallman at
* NEWS (2.5): Remove mention of complaint.
* src/reader.c (grammar_rule_check): Convert complaint back to
* tests/ (%prec's token must be defined): Update.
2010-04-25 Joel E. Denny <>
build: don't require src/bison during bootstrap.
Suggested by Eric Blake at
* bootstrap.conf (bootstrap_epilogue): New function to make sure
src/parse-gram.[ch] are stamped later than src/parse-gram.y.
2010-04-25 Joel E. Denny <>
i18n: fix untranslatable string.
Reported by Goran Uddeborg at
* src/muscle-tab.c (muscle_percent_define_insert): Here.
2010-04-13 Akim Demaille <>
tests: calc: minor refactoring.
* tests/ (_AT_DATA_CALC_Y): Simplify yylex.
2010-04-13 Akim Demaille <>
tests: calc: simplify location management.
define the appropriate AT_LOC accessors.
* tests/ Use AT_LOC accessors.
2010-04-13 Akim Demaille <>
test location_type.
* tests/ (_AT_DATA_CALC_Y): When %define location_type is
used, provide a user location type and use it.
(Simple LALR1 C++ Calculator): Add a test case for location_type.
2010-04-13 Akim Demaille <>
tests: check fclose's return value.
* tests/ (_AT_DATA_CALC_Y): Check fclose's return status.
2010-04-13 Akim Demaille <>
tests: don't depend on the actual location type.
* tests/ Use yy::parser::location_type rather than
yy::location, since the former is always right, and might point to
another type than the latter.
2010-04-13 Akim Demaille <>
formatting changes.
* tests/ Formatting changes.
2010-04-13 Akim Demaille <> remove useless forward declaration.
* data/ Include location.hh before stack.hh.
Remove the useless forward declarations of position and location.
Reported by Chris Morley.
* data/ Likewise.
2010-04-11 Joel E. Denny <>
* NEWS (2.4.3): Mention fix for Sun Studio C++.
2010-04-10 Joel E. Denny <>
tests: fix for newer Sun Studio C++.
Reported by Dagobert Michelsen at
* THANKS (Dagobert Michelsen): Add.
* (AC_PREREQ): Set to 2.64 so we get the latest
Autoconf macro for handling the restrict keyword.
* gnulib: Update to latest, which no longer overrides that macro
from Autoconf.
2010-04-03 Joel E. Denny <>
portability: fix pointer arithmetic to conform to C standard.
Reported by Tys Lefering at
This fix is already implemented in glr.c and does not apply to
* data/ (yy::parser::parse): Increase size of
yyerror_range and adjust subscripting so you don't have to
subtract one from the beginning of the array.
* data/yacc.c (b4_declare_parser_state_variables,
yyparse, yypush_parse): Likewise.
2010-04-05 Akim Demaille <>
remove useless include.
* src/graphviz.h: Don't include stdbool.h.
2010-04-05 Akim Demaille <>
graph: sign the output file.
* src/graphviz.c (start_graph): Issue comments about Bison.
Suggested by Tys Lefering.
2010-03-31 Joel E. Denny <>
portability: fix test suite for GCC 4.5's new #error message.
Reported by Tys Lefering at
* NEWS (2.4.3): Mention.
* tests/ (AT_TEST_SYNCLINE): Implement.
2010-03-30 Akim Demaille <>
fix comments.
* src/graphviz.h: Add missing license notice.
2010-03-25 Akim Demaille <>
tests: fix 250: parse.error=verbose overflow.
* tests/ (parse.error=verbose overflow): Avoid the
double inclusion of stdlib.h as it triggers hard errors.
2010-03-23 Joel E. Denny <>
portability: fix for BSD make.
Reported by Johan van Selst at
* tests/ ($(TESTSUITE)): Qualify package.m4 in
this dependency list as in package.m4's target rule.
2010-03-23 Joel E. Denny <>
portability: fix spawning on at least FreeBSD 8 and FreeBSD 9.
Reported by Johan van Selst at
* NEWS (2.4.3): New.
* THANKS (Johan van Selst): Add.
* etc/prefix-gnulib-mk (prefix): Adjust regex for makefile
targets so that gnulib's new c++defs.h is matched.
* gnulib: Update to latest.
2010-03-20 Joel E. Denny <>
maint: update for changes to gnulib's announce-gen.
* HACKING (Announce): RELEASE_TYPE=major must now be written
2010-03-20 Joel E. Denny <>
Version 2.4.2.
* NEWS (2.4.2): Set version and date. For the recent test suite
portability fixes, don't be so optimistic about their success
given the lack of feedback on the affected platforms.
2010-02-22 Joel E. Denny <>
tests: fix maintainer-xml-check for recent changes.
AT_BISON_CHECK_NO_XML rather than AT_BISON_CHECK because an
output file whose name conflicts with a previous output file
is now never generated.
2010-02-22 Joel E. Denny <>
portability: fix several issues with M4 subprocess.
M4's output pipe was not being drained upon fatal errors during
scan_skel. As a result, broken-pipe messages from M4 were seen
on at least AIX, HP-UX, Solaris, and RHEL4, and this caused a
failure in the test suite. The problem was that, on platforms
where the default disposition for SIGPIPE is ignore instead of
terminate, M4 sometimes saw fwrite fail with errno=EPIPE and
then reported it. However, there's some sort of race condition,
because the new test group occasionally succeeded.
Reported by Albert Chin at
There were also problems with the test suite livelocking on
Tru64 5.1b. Reported by Didier Godefroy at
Switching to create_pipe_bidi suggested by Akim Demaille.
To attempt to solve both of these problems, switch to gnulib's
create_pipe_bidi and register M4 process as a slave. Along the
way, clean up file name conflict handling, which was affected by
the broken-pipe problem before the switch.
* NEWS (2.4.2): Document.
* THANKS (Didier Godefroy): Add.
* bootstrap.conf (gnulib_modules): Add pipe.
* gnulib: Update to latest to make sure we have all the latest
* lib/ (lib_libbison_a_SOURCES): Remove subpipe.h and
* po/ (lib/subpipe.c): Remove.
* src/files.c (compute_output_file_names): Update invocations
of output_file_name_check.
(output_file_name_check): In the case that the grammar file
would be overwritten, use complain instead of fatal, but replace
the output file name with /dev/null. Use the /dev/null solution
for the case of two conflicting output files as well because it
seems safer in case Bison one day tries to open both files at
the same time.
* src/files.h (output_file_name_check): Update prototype.
* src/output.c (output_skeleton): Use create_pipe_bidi and
wait_subprocess. Assert that scan_skel completely drains the
* src/scan-skel.l (at_directive_perform): Update
output_file_name_check invocation.
* tests/ (AT_CHECK_CONFLICTING_OUTPUT): Check that the
grammar file actually isn't overwritten.
(Conflicting output files: -o foo.y): Update expected output.
* tests/ (Fatal errors but M4 continues producing
output): New test group.
2010-02-04 Joel E. Denny <>
* HACKING (Release Procedure): Add reminder about keeping
POTFILES files up-to-date.
* po/ (src/muscle-tab.c, src/scan-skel.l): Add.
2010-02-01 Joel E. Denny <>
Code cleanup.
* tests/ (abs_top_srcdir): Remove shell variable,
which is already defined in atconfig.
2010-01-22 Joel E. Denny <>
tests: fix missing include caught by g++ 4.4.1.
Reported by Tys Lefering.
* HACKING (Release checks): Add note about trying a recent GCC.
* tests/ (_AT_DATA_DANCER_Y): For C++, include
cstdlib for abort.
(_AT_DATA_EXPECT2_Y): Likewise.
2010-01-21 Joel E. Denny <>
* (gnulib_dir): Assume gnulib is a subdirectory.
2010-01-21 Joel E. Denny <>
maint: automate PACKAGE_COPYRIGHT_YEAR update, and update it.
* HACKING (Release Procedure): Update notes on copyright years.
* (update-package-copyright-year): New target rule.
* build-aux/update-package-copyright-year: New file.
* (update-copyright): Add update-package-copyright-year
as a dependency.
2010-01-19 Joel E. Denny <>
* bootstrap: Import improvements from latest gnulib.
2010-01-19 Joel E. Denny <>
build: require Automake 1.11.1 to avoid a security flaw.
* HACKING (Release Procedure): Don't document Automake security
flaw here.
* (AM_INIT_AUTOMAKE): Require 1.11.1, and explain
why here.
2010-01-19 Joel E. Denny <>
gnulib: update to latest.
2010-01-19 Joel E. Denny <>
ChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c.
2010-01-15 Joel E. Denny <>
Thank the developer of the initial push parser implementation.
This unfortunate oversight is several years old.
* THANKS (Odd Arild Olsen): Add.
2010-01-04 Joel E. Denny <>
Fix some comments concerning LR(0) versus LALR(1).
Stop equating LR(0) with nondeterminism and LALR(1) with
determinism. That is, if all states are consistent, then LR(0)
tables are deterministic. On the other hand, LALR(1) tables
might be nondeterministic before conflict resolution, and GLR
permits LALR(1) tables to remain nondeterministic.
* src/LR0.c, src/LR0.h: Here.
* src/lalr.c, src/lalr.h: Here.
* src/main.c (main): Here.
* src/state.c, src/state.h: Here.
* src/ielr.h (ielr): In preconditions, expect LR(0) not LALR(1)
parser tables.
2010-01-04 Joel E. Denny <>
maint: run "make update-copyright"
2009-12-30 Joel E. Denny <>
POSIX: complain if %prec's token was not defined.
* NEWS (2.5): Document.
* src/reader.c (grammar_rule_check): Convert warning to
* tests/ (%prec's token must be defined): Update.
2009-12-30 Joel E. Denny <>
POSIX: warn if %prec's token was not defined.
Reported by Florian Krohm at
* NEWS (2.4.2): Document.
* src/reader.c (grammar_rule_check): Implement.
(grammar_current_rule_prec_set): Add comments explaining that we
here assume a %prec identifier is a token, but we still manage
to support POSIX.
* tests/ (%prec's token must be defined): New test
2009-12-31 Joel E. Denny <>
* HACKING (Release Procedure): Recommend a secure automake.
2009-12-29 Joel E. Denny <>
portability: `<' and `>' are not always defined on addresses.
Specifically, don't sort objects by their memory addresses when
they're not allocated in the same array or other object. Though
I haven't found a test case where that fails on my platform, C
says the behavior is undefined.
* src/AnnotationList.c (AnnotationList__insertInto): Remove
FIXME. Use new id field of InadequacyList nodes rather than
their memory addresses when sorting.
(AnnotationList__compute_from_inadequacies): Add
inadequacy_list_node_count argument to pass to
* src/AnnotationList.h
(AnnotationList__compute_from_inadequacies): Update prototype
and documentation for new argument.
* src/InadequacyList.c (InadequacyList__new_conflict): Add
node_count argument and use it to assign a unique ID.
* src/InadequacyList.h (InadequacyListNodeCount): New typedef.
(InadequacyList): Add id field.
(InadequacyList__new_conflict): Update prototype and
documentation for new argument.
* src/ielr.c (ielr_compute_annotation_lists): Update
AnnotationList__compute_from_inadequacies invocation.
2009-12-20 Joel E. Denny <>
Fix handling of yychar manipulation in user semantic actions.
The problem was that yacc.c didn't always update the yychar
translation afterwards. However, other skeletons appear to be
fine. glr.c appears to already translate yychar before every
use. does not define yychar and does not document its
replacement, yyla, for users. It does provide yyclearin, but
that does not manipulate yyla and thus requires no translation
update. In, yychar is out of scope during semantic
* NEWS (2.5): Document.
* data/yacc.c (YYBACKUP): Don't bother translating yychar into
yytoken here.
(yyparse, yypush_parse): Instead, translate before every use of
yytoken, and add comments explaining this approach.
* tests/ (Destroying lookahead assigned by semantic
action): New test group checking that translation happens before
lookahead destructor calls at parser return. Previously,
incorrect destructors were called.
* tests/ (parse.error=verbose and consistent
errors): New test group checking that translation happens at
syntax error detection before the associated verbose error
message and the associated lookahead destructor calls. While
the destructor call is fixed by this patch, the verbose error
message is currently incorrect due to another bug (see
comments in test group), so this is an expected failure for now.
2009-12-21 Joel E. Denny <>
YYFAIL: warn about uses and remove from
* NEWS (2.5): Document.
* data/ (YYParser::YYFAIL): Rename to YYERRLAB,
and make it private. Update all uses.
* src/scan-code.l (SC_RULE_ACTION): Implement warning.
2009-12-21 Joel E. Denny <>
YYFAIL: deprecate.
* NEWS (2.4.2): Document deprecation and the phase-out plan.
* data/ (YYParser::YYFAIL): Add comment about
* data/yacc.c (YYFAIL): Likewise, and suppress warnings about
YYFAIL from GCC cpp's -Wunused-macros.
* doc/bison.texinfo (Java Action Features): Remove YYFAIL
(LocalWords): Remove YYFAIL.
2009-12-20 Joel E. Denny <>
tests: cleanup.
* tests/ (Syntax error discarding no lookahead): Don't
ignore stderr. Instead, eliminate remaining warnings.
2009-12-18 Joel E. Denny <> don't discard non-existent lookahead on syntax error.
* data/ (yy::parser::parse): Check yyempty first.
* tests/ (Syntax error discarding no lookahead): New test
2009-12-17 Joel E. Denny <>
Code cleanup.
* src/symtab.c, src/symtab.h (symbol_class_get_string): Remove
function, which is no longer used.
2009-12-16 Joel E. Denny <>
Add gcc's -Wundef to test suite and fix another warning from it.
* NEWS (2.4.2): Update description of -Wundef fix.
* (WARN_CXXFLAGS_TEST): New substitution.
(WARN_CFLAGS_TEST): New substitution.
* data/glr.c: Avoid warning about __STRICT_ANSI__.
* tests/ (CFLAGS): Use WARN_CFLAGS_TEST instead of
2009-12-16 Joel E. Denny <>
* data/yacc.c: Reformat m4 a little.
2009-12-16 Joel E. Denny <>
Document gcc -Wundef fix.
* NEWS (2.4.2): Here.
* THANKS (Jonathan Nieder): Add.
2009-12-15 Jonathan Nieder <> (tiny change)
Simplify when location tracking is disabled.
* data/yacc.c: Do not check YYLTYPE_IS_TRIVIAL if location
tracking is not enabled. Instead, unconditionally define
YY_LOCATION_PRINT as a no-op for backward compatibility.
2009-12-15 Jonathan Nieder <> (tiny change)
Avoid warnings from gcc -Wundef
* data/glr.c: Check if YYENABLE_NLS and YYLTYPE_IS_TRIVIAL are
defined before using them.
* data/ Likewise.
* data/yacc.c: Likewise.
2009-12-15 Joel E. Denny <>
autoconf: update to latest for fix of M4 detection.
Reported by Eric Blake.
* submodules/autoconf: Update.
2009-12-15 Joel E. Denny <>
portability: use -DGNULIB_POSIXCHECK.
Reported by Eric Blake. See discussions at
* HACKING (Release checks): Suggest -DGNULIB_POSIXCHECK.
* bootstrap.conf (gnulib_modules): Add all the printf modules
suggested by -DGNULIB_POSIXCHECK. Add realloc-posix as
suggested by -DGNULIB_POSIXCHECK for gnulib's own vasnprintf.c.
(excluded_files): Remove m4/printf-posix.m4.
* tests/ (LIBS): As for LDADD in src/, add
lib/libbison.a so gnulib libraries can be linked.
2009-12-15 Joel E. Denny <>
gnulib: update for fix of fprintf-posix, which we'll use soon.
* etc/prefix-gnulib-mk (prefix): Adjust regex for make file
targets so that gnulib's new arg-nonnull.h and link-warning.h
are matched.
* gnulib: Update.
2009-12-14 Joel E. Denny <>
Enable assertion output and --disable-assert for configure.
* bootstrap.conf (gnulib_modules): Add assert module.
* src/system.h (aver): Define as assert, and summarize the
discussion on this issue.
2009-12-14 Joel E. Denny <>
Expand GLR acronym in summary of Bison.
Based on discussion with Akim Demaille starting at
* doc/bison.texinfo (Introduction): Here.
* src/getargs.c (usage): Here.
2009-10-03 Alex Rozenman <>
Document named references.
* doc/bison.texinfo (Actions): Add new example and xref to
Using Named References node.
(Using Named References): New node.
2009-10-16 Joel E. Denny <>
* src/Sbitset.c (Sbitset__new_on_obstack): Use Sbitset instead
of char*.
(Sbitset__isEmpty): Use Sbitset instead of char*.
* src/Sbitset.h (Sbitset): Make it a pointer to unsigned char
instead of char. This helps to avoid casting errors.
(Sbitset__or): Use Sbitset instead of char*.
2009-10-16 Joel E. Denny <>
portability: don't assume 8-bit bytes.
That is, use CHAR_BIT and UCHAR_MAX instead of 8 and 0xff.
* src/Sbitset.h (Sbitset__nbytes): Here.
(Sbitset__byteAddress): Here.
(Sbitset__bit_mask): Here.
(Sbitset__last_byte_mask): Here.
(Sbitset__ones): Here.
2009-10-11 Joel E. Denny <>
portability: use va_start and va_end in the same function.
* src/complain.c (error_message): Move va_end from here...
(ERROR_MESSAGE): ... to here.
2009-10-08 Joel E. Denny <>
* data/bison.m4: Update comments for rename to muscle-tab.h.
2009-10-07 Joel E. Denny <>
Minor code cleanup.
* src/muscle-tab.c (MUSCLE_USER_NAME_CONVERT): Remove macro and
replace all uses with UNIQSTR_CONCAT.
* src/uniqstr.c (uniqstr_vsprintf): New function.
* src/uniqstr.h (uniqstr_vsprintf): Add prototype.
2009-10-06 Joel E. Denny <>
* TODO (Complaint submessage indentation): New.
2009-10-04 Joel E. Denny <>
Minor code cleanup.
* src/parse-gram.y: Clean up sorting of declarations.
Use types to simplify %printer declarations where possible.
Provide %printer for BRACKETED_ID and symbol.prec.
* src/symtab.c: Whitespace change.
2009-10-04 Joel E. Denny <>
tests: skip tests of file names that platform does not support.
Reported by Michael Raskin at
* THANKS (Michael Raskin): Add.
* tests/ (AT_CHECK_OUTPUT_FILE_NAME): Fix. Cygwin used
to fail at least for file names containing ":" or "\".
2009-09-23 Joel E. Denny <>
yysyntax_error: avoid duplicate lookahead collection.
Except when memory reallocation is required, this change
eliminates the need to invoke yysyntax_error twice and thus to
repeat the collection of lookaheads. It also prepares for
future extensions that will make those repetitions more
expensive and that will require additional memory management in
yysyntax_error. Finally, it fixes an obscure bug already
exercised in the test suite.
* data/yacc.c (yysyntax_error): Add arguments for message
buffer variables stored in the parser. Instead of size, return
status similar to yyparse status but indicating success of
message creation. Other than the actual reallocation of the
message buffer, import and clean up memory management code
(yyparse, yypush_parse): ... here.
* tests/ (parse.error=verbose overflow): No longer
an expected failure.
2009-09-23 Joel E. Denny <>
yysyntax_error: test memory management more.
* tests/ (NO_WERROR_CFLAGS): New cpp macro.
* tests/ (parse.error=verbose and
YYSTACK_USE_ALLOCA): New test group.
(parse.error=verbose overflow): New test group that reveals an
obscure bug. Expected fail for now.
2009-10-04 Joel E. Denny <>
benchmarks: use %debug consistently among grammars.
* etc/ (generate_grammar_triangular): Do not activate
%debug by default. It can affect the timings even if yydebug=0.
(generate_grammar_calc): For consistency with other grammars,
use YYDEBUG environment variable to set yydebug.
2009-10-03 Joel E. Denny <>
Remove dead code.
* src/symtab.c (symbol_pack): Here because every symbol's number
is always defined by this time.
2009-10-03 Alex Rozenman <>
Add additional space after periods in NEWS.
* NEWS (2.5): here.
2009-09-29 Joel E. Denny <>
Use the correct conversion specifier for size_t.
Reported by Jim Meyering.
* src/Sbitset.h (SBITSET__INDEX__CONVERSION_SPEC): New, "zu"
because Sbitset__Index is size_t.
* src/Sbitset.c (Sbitset__fprint): Use it instead of %d.
2009-09-27 Joel E. Denny <>
tests: don't abuse AT_BISON_CHECK.
* tests/ (parse-gram.y: LALR = IELR): Move
additional shell commands outside of AT_BISON_CHECK.
2009-09-26 Joel E. Denny <>
tests: check that parse-gram.y's IELR and LALR are identical.
* tests/ (abs_top_srcdir): New shell variable.
* tests/ (parse-gram.y: LALR = IELR): New test
2009-09-19 Alex Rozenman <>
Keep sub-messages aligned. Fix strings for translation.
* src/location.h (location_print): Add return value.
* src/location.c (location_print): Return number of printed
* src/complain.h (complain_at_indent, warn_at_indent): Prototype
new functions.
* src/complain.cpp (indent_ptr): New static variable.
(error_message, complain_at_indent, warn_at_indent): Implement
the alignment mechanism.
* src/scan-code.l (parse_ref, show_sub_messages): Fix strings
for translations. Use new alignment mechanism.
* tests/ Adjust test-cases.
* NEWS (2.5): Add an announcement about named references.
2009-09-17 Akim Demaille <>
doc: fixes.
* doc/bison.texinfo: here.
Reported by Alex Rozenman.
2009-09-16 Akim Demaille <>
doc: and variants.
* doc/bison.texinfo (Decl Summary): Document the "lex_symbol" and
"variant" %define variables.
(C++ Semantic Values): Split into...
(C++ Unions, C++ Variants): these.
The latter is new.
(C++ Parser Interface): Fix type names.
Document parser::syntax_error.
Document the fact that locations are not mandatory.
(C++ Scanner Interface): Split into...
(Split Symbols, Complete Symbols): these.
The later is new.
(Calc++ Parsing Driver): Use variants.
Add more comments.
Adjust style.
(Calc++ Parser): Declare all the tokens, no
longer accept raw characters.
Remove %union.
Adjust types and printers.
Remove destructors.
(Calc++ Scanner): Use make_<SYMBOL> functions.
Use strerror in error message.
2009-09-16 Akim Demaille <>
doc: spell checking.
* doc/bison.texinfo: here.
2009-09-16 Akim Demaille <>
doc: comment changes.
* doc/bison.texinfo: Comment changes.
2009-09-16 Akim Demaille <> factor the yytranslate_ invocation in make_SYMBOLS.
* data/c++.m4, data/ (parser::symbol_type): Change the
constructor to take a token_type instead of the (internal) symbol
Call yytranslate_.
* data/variant.hh (b4_symbol_constructor_define_): Therefore,
don't call yytranslate_ here.
2009-09-16 Akim Demaille <>
TODO: statistics.
* TODO (Figures): New.
2009-09-13 Joel E. Denny <>
tests: clean up test group titles.
* tests/ Remove "Push Parsing: " from test group titles
because these are already under the banner "Push Parsing Tests".
2009-09-12 Alex Rozenman <>
Provide an additional sub-message for clarity.
Add "symbol not found in production" error message when
an "invalid reference" is detected in named references
* src/scan-code.l: Update "invalid reference" case.
* tests/ Adjust test-cases.
2009-09-10 Joel E. Denny <>
Clean up yacc.c a little.
* data/yacc.c: Clean up M4 for readability, and make output
whitespace more consistent. For the main parse function
comment, instead of saying "yyparse or yypush_parse", say either
"yyparse" or "yypush_parse" depending on which it actually is.
2009-09-10 Joel E. Denny <>
Fix --enable-gcc-warnings.
* src/parse-gram.y (%printer <param>): Handle param_none.
2009-09-09 Akim Demaille <> syntax_error as exceptions.
It is common to use sort of factories in the user actions. These
factories may check some "syntactic" constraints that are not
enforced by the grammar itself. This is possible using YYERROR
within the action itself. Provide the user with a means to throw
a syntax_error exception.
* data/c++.m4 (b4_public_types_declare, b4_public_types_define):
Declare and define yy::parser::syntax_error.
* data/ Include stdexcept.
(yy::parser::parse): Wrap the user action within a try/catch.
* data/ Include stdexcept.
2009-09-09 Akim Demaille <> add missing "inline".
* data/c++.m4 (b4_public_types_define): Add missing inline to
implementations provided in headers.
2009-09-09 Akim Demaille <>
%param: documentation.
* NEWS (2.6): Document %param, %lex-param, and %parse-param
* doc/bison.texinfo: Document that %lex-param and %parse-param
are n-ary.
Changes some examples to demonstrate it.
(Calc++ Parser): Use %param.
2009-09-09 Akim Demaille <>
2009-09-09 Akim Demaille <>
style changes.
* src/parse-gram.y (add_param): Scope changes.
2009-09-09 Akim Demaille <>
%parse: support several arguments.
* src/parse-gram.y (current_param): New.
(param_type): Add param_none.
(params): New nonterminal.
Use it.
2009-09-09 Akim Demaille <>
2009-09-09 Akim Demaille <>
Provide a means to factor lex-param and parse-param common
* src/parse-gram.y (param_type): New.
Define a %printer for it.
(add_param): Use it.
(%parse-param, %lex-param): Merge into...
(%parse): this new token.
Adjust the grammar to use it.
* src/scan-gram.l (RETURN_VALUE): New.
Use it to support %parse-param, %lex-param and %param.
2009-09-03 Joel E. Denny <>
Use aver not assert.
* src/output.c: Don't include assert.h.
(output_skeleton): Use aver not assert.
* src/system.h (aver): In documentation of why, add links to
Paul Eggert's explanations in the mailing lists.
2009-09-05 Alex Rozenman <>
Use "Unresolved reference" error message when no symbols were found
in a symbolic reference resolution. Remove .expr and -expr from
the shown reference when the reference is unresolved.
* src/scan-code.l: Change the error message, adjust location columns,
rename variable "exact_mode" to "explicit_bracketing".
* tests/ Adjust existing tests and add a new one.
2009-09-04 Akim Demaille <>
Adjust synclines in src/parse-gram.[ch].
* tests/ Do some magic (including working around issues
with ylwrap) when this wrapper is used to compile
2009-09-03 Joel E. Denny <>
Complain about unused %define variables and %code qualifiers.
* NEWS (2.5): Document.
* data/bison.m4 (b4_check_user_names): Complain instead of warn.
* doc/bison.texinfo (Decl Summary): Document complaint, and
improve %define documentation a little otherwise.
* tests/ (Reject unused %code qualifiers): Update.
(%define errors): Update.
(%define, --define, --force-define): Update.
(%define backward compatibility): Update.
(Unused %define api.pure): Update.
* tests/ (Push Parsing: Unsupported Skeletons): Update.
2009-09-03 Joel E. Denny <>
Don't suppress warnings about unused parse.error.
* data/bison.m4 (b4_error_verbose_flag): Don't examine value of
%define variable parse.error unless b4_error_verbose_flag is
actually expanded in a skeleton.
2009-09-03 Akim Demaille <>
* NEWS (2.4.2): Add "Internationalization" item.
2009-09-03 Akim Demaille <>
bootstrap: fix/improve find_tool.
* bootstrap (find_tool): Improve error messages.
Fix typo about find_tool_names.
2009-08-29 Joel E. Denny <>
Fix gcc 3.4.4 shadowing warning reported by Eric Blake.
* src/scan-code.h (code_props_rule_action_init): Rename
named_ref arg to name so it doesn't shadow named_ref type. This
makes it consistent with the function definition in scan-code.l
2009-08-28 Joel E. Denny <>
%define: accept unquoted values.
* NEWS (2.5): Group all %define changes together, and document
this one. Remove quotes in IELR and canonical LR entry.
* doc/bison.texinfo: Remove quotes in most examples throughout.
(Decl Summary): Update %define documentation.
(Table of Symbols): Likewise.
* src/ielr.c (LrType): Update documentation.
* src/parse-gram.y (content.opt): Add production for ID.
* tests/ Remove quotes in most tests.
* tests/ Likewise.
* tests/ Likewise.
* tests/ Likewise.
* tests/ Likewise.
* tests/ Likewise.
* tests/ Likewise.
* tests/ Likewise.
2009-08-28 Joel E. Denny <>
%define lr.type: make values lowercase IDs.
That is, "LALR" => "lalr", "IELR" => "ielr", and
"canonical LR" => "canonical-lr".
* NEWS (2.5): Update documentation.
* doc/bison.texinfo (Decl Summary): Likewise.
* src/ielr.c (ielr): Use new values.
* src/ielr.h (ielr): Update documentation.
* src/reader.c (prepare_percent_define_front_end_variables): Use
and validate new values.
* tests/ (AT_TEST_EXISTING_GRAMMAR): Update test
* tests/ (AT_TEST_LR_TYPE): Likewise.
2009-08-27 Eric Blake <>
scan-gram: avoid portability trap with ctype usage.
Avoid compiler warning.
2009-08-27 Joel E. Denny <>
tests: use perl for printing special sequences to files.
And skip tests if perl is not available. This is better than
playing tricks with shell portability. Suggested by Akim
* tests/ (Bad character literals): Use it here for
omitting final newlines.
(Bad escapes in literals): Use it here for special characters.
2009-08-26 Joel E. Denny <>
tests: show a use of %define lr.default-reductions "consistent"
* tests/ (%nonassoc and eof): Extend to test that it
prevents the omission of expected tokens for %error-verbose.
2009-08-26 Akim Demaille <>
tests: portability fix.
* tests/ (Bad escapes in literals): Don't expect "echo
'\0'" to output \ then 0.
2009-08-26 Joel E. Denny <>
Actually handle the yytable zero value correctly this time.
* data/bison.m4 (b4_integral_parser_tables_map): Don't mention
zero values in the YYTABLE comments.
* data/glr.c (yytable_value_is_error): Don't check for zero
* data/ (yy_table_value_is_error_): Likewise.
* data/yacc.c (yytable_value_is_error): Likewise.
* data/ (yy_table_value_is_error_): Likewise.
(yysyntax_error): Fix typo in code: use yytable_ not yycheck_.
* src/tables.h: In header comments, explain why it's useless to
check for a zero value in yytable.
2009-08-25 Joel E. Denny <>
More fixes related to last two patches.
* data/bison.m4 (b4_integral_parser_tables_map): Fix YYTABLE
comments: zero indicates syntax error not default action.
* data/c.m4 (b4_table_value_equals): Comment that YYID must be
* data/glr.c (yyis_pact_ninf): Rename to...
(yypact_value_is_default): ... this.
(yyisDefaultedState): Update for rename.
(yyis_table_ninf): Rename to...
(yytable_value_is_error): ... this, and check for value zero
besides just YYTABLE_NINF.
(yygetLRActions): Check for default value from yypact. It
appears that this check is always performed before this function
is invoked, and so adding the check here is probably redundant.
However, the code may evolve after this subtlety is forgotten.
Also, update for rename to yytable_value_is_error. Because that
macro now checks for zero, a different but equivalent branch of
the if-then-else here is evaluated.
(yyreportSyntaxError): Update for rename to
yytable_value_is_error. The zero condition was mishandled
(yyrecoverSyntaxError): Update for renames. No behavioral
* data/, data/ (yy_pact_value_is_default_):
New function.
(yy_table_value_is_error_): New function.
(parse): Use new functions where possible. No behavioral
(yysyntax_error_, yysyntax_error): Use yy_table_value_is_error_.
The zero condition was mishandled before.
* data/yacc.c (yyis_pact_ninf): Rename to...
(yypact_value_is_default): ... this.
(yyis_table_ninf): Rename to...
(yytable_value_is_error): ... this, and check for value zero
besides just YYTABLE_NINF.
(yysyntax_error): Update for rename to yytable_value_is_error.
The zero condition was mishandled before.
(yyparse): Update for renames. No behavioral changes.
* src/tables.h: Improve comments about yypact, yytable, etc.
more. Most importantly, say yytable value of zero means syntax
error not default action.
2009-08-25 Joel E. Denny <>
Fix %error-verbose for conflicts resolved by %nonassoc.
* NEWS (2.5): Document.
* data/glr.c (yyreportSyntaxError): Fix this by checking
* data/yacc.c (yysyntax_error): Likewise.
* data/ (yysyntax_error_): Fix this by checking
* data/ (yysyntax_error): Likewise.
* tests/ (%nonassoc and eof): Update expected output
and remove FIXME.
2009-08-25 Joel E. Denny <>
Some code and documentation improvements.
* data/c.m4 (b4_table_value_equals): New macro to capture
some repeated code.
* data/glr.c (yyis_pact_ninf): Use it here.
(yyis_table_ninf): Likewise.
(yyreportSyntaxError): Improve internal comments.
* data/yacc.c (yyis_pact_ninf): New macro copied from glr.c.
Use it everywhere possible.
(yyis_table_ninf): Likewise.
(yysyntax_error): Improve internal comments.
* data/ (yysyntax_error_): Likewise.
* data/ (yysyntax_error): Likewise.
* src/tables.h: Improve comments about yypact, yytable, etc.
2009-08-21 Joel E. Denny <>
Use locale when quoting.
quote rather than implementing quoting here.
2009-08-20 Eric Blake <>
Make previous patch more robust.
* src/output.c (ARRAY_CARDINALITY): New macro, copied from
(output_skeleton): Use it.
Suggested by Akim Demaille.
Import latest m4/m4.m4.
* submodules/autoconf: Update to autoconf 2.64.
* (M4_GNU_OPTION): New define.
* src/output.c (output_skeleton): Use it to resolve FIXME.
* NEWS: Mention this.
2009-08-19 Joel E. Denny <>
Fix complaints about escape sequences.
Discussed starting at
For a \0 and similar escape sequences meaning the null
character, report an invalid escape sequence instead of an
invalid null character because the latter does not actually
appear in the user's input.
In all escape sequence complaints, don't escape the initial
backslash, and don't quote when the sequence appears at the end
of the complaint line unless there's whitespace that quotearg
won't escape.
Consistently say "invalid" not "unrecognized".
Consistently prefer "empty character literal" over "extra
characters in character literal" warning for invalid escape
sequences; that is, consistently discard those sequences.
* tests/ (Bad escapes in literals): New.
2009-08-19 Akim Demaille <>
doc: fixes.
* doc/bison.texinfo: Fix minor Texinfo errors.
2009-08-19 Akim Demaille <>
tests: distcc compliance.
* tests/ (AT_SYNCLINES_COMPILE): Discard distcc's
error messages from the output.
2009-08-19 Akim Demaille <>
variables: simplify the upgrade of namespace into api.namespace.
This patch simplifies "variables: rename namespace as
api.namespace", commit 67501061076ba46355cfd9f9361c7eed861b389c.
Suggested by Joel E. Denny in
* src/muscle-tab.c (muscle_percent_variable_update): New.
(muscle_percent_define_insert): Use it in replacement of the
previous tr invocation.
Remove variable_tr, no longer needed.
* data/bison.m4 (b4_percent_define_copy_, b4_percent_define_copy):
* data/c++.m4: No longer handle namespace -> api.namespace.
* tests/ (%define backward compatibility): Check that
namespace is treated as api.namespace.
2009-08-19 Akim Demaille <>
doc: %initial-action to initialize yylloc.
Reported by Bill Allombert.
* doc/bison.texinfo: Set fill-column to 76.
(Location Type): Document the use of %initial-action to initialize
2009-08-19 Akim Demaille <> use state_type.
* data/ (yysyntax_error_): Use state_type.
Move argument names into yy*.
2009-08-19 Akim Demaille <> get rid of yyparse's yystate.
yystate and yystack_[0].state are equal, keep only the latter.
The former was also used as a temporary variable to compute the
post-reduction state. Move this computation into an auxiliary
* data/glr.c (yyLRgotoState): Fuse variable definition and first
* data/ (yy_lr_goto_state_): New.
(yyparse): Use it.
Replace remaining uses of yystate by yystate_[0].state.
Remove the former.
2009-08-19 Akim Demaille <> destroy $$ when YYERROR is called.
* data/ (yyreduce): Compute the resulting state before
running the user action so that yylhs is a valid symbol.
(yyerrorlab): Since yylhs is complete (it knows its type), we can
simply call yy_destroy_ to destroy $$ on YYERROR invocations.
* tests/ (AT_CHECK_VARIANTS): Test YYERROR with variants.
2009-08-18 Joel E. Denny <>
maint: update for gnulib's recent update-copyright changes
* gnulib: Update.
* .x-update-copyright (COPYING): Add as it's no longer implied
when .x-update-copyright is present.
* (update-copyright-local): Remove, now ignored.
(update-copyright): Declare update-b4-copyright as a dependency.
2009-08-17 Akim Demaille <>
build: require gettext 0.17.
Suggested by Bruno Haible.
* require gettext 0.17 to ensure compatibility with
2009-08-17 Akim Demaille <>
build: lower gettext requirements.
Bison was uselessly requiring the formatstring macros from
gettext, which resulted in mo files not being installed on systems
that perfectly supported Bison mo files. Lower the requirement.
* Require need-ngettext instead of
Reported by Martin Jabocs.
Suggested by Bruno Haible.
* INSTALL: Restructure.
(Internationalization): New.
2009-08-14 Joel E. Denny <>
maint: fix use of copyright year intervals.
* gnulib: Update.
* bootstrap.conf (gnulib_modules): Update getopt to getopt-gnu
as now recommended in gnulib/NEWS.
* build-aux/update-b4-copyright: Fix.
* (update-copyright-env): Configure update-copyright.
2009-08-13 Joel E. Denny <>
Make it easier to write deterministic tests.
Continues Akim's work from his 2009-06-10 commits.
* src/reader.c (check_and_convert_grammar): Don't add any
symbols after the first symbols_do invocation.
* src/symtab.c (symbols_sorted): New static global.
(user_token_number_redeclaration): Update comments.
(symbol_from_uniqstr): If a new symbol is being created, assert
that symbols_sorted hasn't been allocated yet.
(symbols_free): Free symbols_sorted.
(symbols_cmp, symbols_cmp_qsort): New functions.
(symbols_do): Sort symbol_table into symbols_sorted on first
* tests/ (Numbered tokens): Recombine tests now that the
output should be deterministic across multiple numbers.
2009-08-12 Akim Demaille <>
tests: GCC 4.5 compliance.
* tests/ (AT_SYNCLINES_COMPILE): Adjust to GCC 4.5's
messages about #error.
2009-08-12 Akim Demaille <>
build: fix the generation of the documentation.
Some of our targets use "bison --help", but they can't depend on
"bison" itself (to avoid additional requirements on the user), so
they used to call "make src/bison" in the commands. Then
concurrent builds may fail: one make might be aiming one of its
jobs at compiling src/bison, and another job at generating the man
page. If the latter is faster than the former, then we have two
makes that concurrently try to compile src/bison.
This might also be a more convincing explanation for the failure
described in the patch "build: fix paths".
* (SUFFIXES): Initialize.
* build-aux/move-if-change: New, symlink to gnulib's.
* build-aux/ Ship it.
* doc/common.x: Remove, merged into...
* doc/bison.x: here.
* doc/ (doc/ New.
($(CROSS_OPTIONS_TEXI)): Depend on it.
Use src/bison.
(.x.1): Replace with...
(doc/bison.1): this explicit, simpler, target.
(common_dep): Remove, inlined where appropriate.
(SUFFIXES, PREPATH): Remove, unused.
2009-08-12 Akim Demaille <>
gnulib: improve prefixing.
* (gl_PREFIXED_LIBOBJS): Don't rename it, rather,
change the value of...
(gl_LIBOBJS): this.
Adjust more variables.
* etc/prefix-gnulib-mk (prefix_assignment): Don't rename
(prefix): Also transform rules whose targets have slashes.
Use $prefix liberally.
Map @MKDIR_P@ to $(MKDIR_P).
Prefix directories that are mkdir'd.
2009-08-12 Akim Demaille <>
build: fix paths.
When using $(top_builddir) inconsistently, Make (including GNU
Make) is sometimes confused. As a result it may want to build
lib/ and $(top_builddir)/lib/ (the same
file, different names) concurrently, which, amusingly enough,
might end with:
ranlib lib/libbison.a
ranlib lib/libbison.a
make[2]: *** [lib/libbison.a] Segmentation fault
on OS X.
* doc/, src/ Do not use $(top_builddir) when not
2009-08-12 Akim Demaille <>
distcheck: fix.
* examples/calc++/ (EXTRA_DIST): Ship calc.stamp.
2009-08-10 Joel E. Denny <>
* tests/ (TESTSUITE_AT): Add
2009-08-10 Joel E. Denny <>
Miscellaneous code readability improvements.
* src/reader.c (reader): Move %define front-end variable
defaults and checking into...
(prepare_percent_define_front_end_variables): ... this new
* src/scan-gram.l (INITIAL): For consistency with string
literals, don't store open quote on character literal. It's
discarded before returning anyway.
(SC_ESCAPED_CHARACTER): Similarly, don't store close quote.
Make length test more readable, and make the character stored
for an empty literal more obvious while consistent with the
previous behavior.
* src/symtab.c, src/symtab.h: Rename USER_NUMBER_ALIAS to
* src/symtab.c (symbol_make_alias): Remove comment from symtab.c
that is repeated in symtab.h. Improve argument names to make it
clear which side of the symbol-string alias pair is which.
(symbol_check_alias_consistency): Improve local variable names
for the same purpose.
* src/symtab.h (struct symbol): Make comments about aliases
(symbol_make_alias): Improve comments and argument name.
* src/output.c (token_definitions_output): Update for rename to
USER_NUMBER_HAS_STRING_ALIAS and improve comments about aliases.
2009-08-08 Alex Rozenman <>
Convert "misleading reference" messages to warnings.
* src/scan-code.l: New function 'show_sub_messages', more
* tests/ Adjust tests.
2009-08-06 Joel E. Denny <>
maint: run "make update-copyright"
2009-08-06 Joel E. Denny <>
maint: make update-b4-copyright easier to use
* build-aux/update-b4-copyright: In warnings, report line
numbers rather than character positions.
* (update-copyright-local): Set to update-b4-copyright so
that update-copyright runs it.
* gnulib: Update.
2009-08-05 Joel E. Denny <>
maint: clean up update-b4-copyright code
* build-aux/update-b4-copyright: Do not accept 2-digit
UPDATE_COPYRIGHT_YEAR, which was not handled correctly.
Don't accept a `[' in a b4_copyright argument.
Format code more consistently.
Don't assume b4*copyright never occurs.
2009-08-04 Joel E. Denny <>
maint: automate b4_copyright updates.
* (update-b4-copyright): New target rule.
* build-aux/ (EXTRA_DIST): Add update-b4-copyright.
* build-aux/update-b4-copyright: New.
* data/yacc.c: Remove stray characters around b4_copyright
2009-08-04 Joel E. Denny <>
maint: automate annual package-wide copyright-year update.
* .x-update-copyright: New.
* (EXTRA_DIST): Remove
* bootstrap.conf (gnulib_modules): Add maintainer-makefile and
update-copyright. Remove gnumakefile, which is implied by
* (bootstrap-tools): Copy from old
* gnulib: Update.
* Remove, now copied from gnulib.
* examples/extexi: Add missing "(C)" in copyright statement so
update-copyright can recognize it.
* src/LR0.h: Likewise.
* src/print.h: Likewise.
* src/print_graph.h: Likewise.
* src/gram.c: Add missing comma in copyright statement.
* src/gram.h: Likewise.
2009-08-04 Joel E. Denny <>
Fix "make distcheck".
* examples/calc++/ Say $(srcdir)/calc.stamp instead
of just calc.stamp.
2009-08-01 Joel E. Denny <>
Pacify "gcc -Wunused" for the input function from Flex.
Reported by Alex Rozenman. This warning shows up with gcc-4.3.0
and later.
* src/scan-code.l: Add "%option noinput", which I cannot find in
the Flex manual, but which Flex has supported since at least as
far back as 2.5.4. However, if any of our developers still use
Flex 2.5.4, they'll need to stop configuring with
--enable-gcc-warnings because "%option noinput" didn't work
correctly until Flex 2.5.6.
* src/scan-gram.l: Likewise.
* src/scan-skel.l: Likewise.
2009-07-31 Alex Rozenman <>
Fix --enable-gcc-warnings problems.
* src/reader.c: Adjust variable names.
* src/scan-code.l: Fix prototypes and adjust names.
* src/named-ref.c: Remove redundant "if".
2009-07-29 Joel E. Denny <>
Fix a --enable-gcc-warnings problem.
* src/scan-gram.l (SC_ESCAPED_CHARACTER): Actually use length
2009-07-24 Joel E. Denny <>
Warn about character literals not of length one.
* NEWS (2.5): Document.
* src/scan-gram.l (INITIAL): Remove comment that we don't check
the length.
(SC_ESCAPED_CHARACTER): Warn if length is wrong.
* tests/ (Bad character literals): New test group.
2009-07-24 Alex Rozenman <>
Fix some memory leaks.
* src/named-ref.c: Add a pointer check (named_ref_free).
* src/scan-code.l: New function (variant_table_free). Called in
* src/symlist.c: Call to named_ref_free (symbol_list_free).
2009-07-24 Joel E. Denny <>
* src/lalr.c (state_lookahead_tokens_count): Correct comment.
2009-07-22 Joel E. Denny <>
Some M4 cleanup in the testsuite.
Suggested by Eric Blake at
* tests/ (_AT_TEST_EXISTING_GRAMMAR): Do not
complicate the code by distinguishing between a missing value
and an empty string value for an optional argument. This fix is
allowed by the similar fix in AT_TEST_TABLES_AND_PARSE below.
* tests/ (_AT_TEST_TABLES_AND_PARSE): Merge into...
(AT_TEST_TABLES_AND_PARSE): ... this now that the special
arguments are not needed because of the following changes.
Fix stale comments.
Bison developers should use GNU M4 and should not use
POSIXLY_CORRECT when building the test suite, so do not
complicate the code by avoiding $10 and above.
Do not quote an empty string value for an optional argument, and
do not distinguish between a missing value and an empty string
2009-07-15 Joel E. Denny <>
Revert unnecessary column realignment in --help output.
Reported by Akim Demaille at
* src/getargs.c (usage): Here.
2009-07-04 Alex Rozenman <>
Alphabetical order in src/
* src/ Adjust.
2009-07-04 Alex Rozenman <>
Style changes and factoring.
* src/named-ref.h: Add comments.
* src/parse-gram.y: Readability and style changes.
* src/reader.c: Factoring: assign_named_ref function.
* src/scan-code.l: Factoring and style changes. Rename
parse_named_ref to parse_ref. Use "c-ctype.h" from gnulib.
Use "unsigned" type for variant index. Improve readablity.
* src/scan-gram.l: Change error messages and add comments.
* src/symlist.h: symbol_list_null: New function decl.
* src/symlist.c: symbol_list_null: Implement here.
* tests/ Adjust for new error messages.
2009-06-29 Eric Blake <>
scan-code: avoid compiler warnings
* src/scan-code.l (parse_named_ref): Use correct specifiers.
2009-06-29 Akim Demaille <>
build: avoid concurrent extraction of calc++.
* examples/calc++/ (calc.stamp): New.
Depend on it to create the sources of calc++ so that concurrent
builds don't launch several "extexi" in parallel.
Not only this is inefficient, this also builds incorrect sources
with several extractions mixed together.
2009-06-29 Akim Demaille <>
parse.error: fix.
* data/bison.m4: Move code related to specific variables after the
definition of the variable-maintaining macros so that we don't
"invoke" b4_percent_define_check_values before it is defined.
2009-06-29 Akim Demaille <>
variables: parse.error
Implement, document, and test the replacement of %error-verbose
by %define parse.error "verbose".
* data/bison.m4 (b4_error_verbose_if): Reimplement to track the
values of the parse.error variable.
Make "simple" its default value.
Check the valid values.
* src/parse-gram.y: Use %define parse.error.
Support it.
* src/scan-gram.l: Support %error-verbose.
* doc/bison.texinfo (Decl Summary): Replace the documentation of
%define error-verbose by that of %define parse.error.
* NEWS: Document it.
* tests/, tests/ Use parse.error instead of
2009-06-27 Alex Rozenman <>
Implement support for named symbol references.
* src/parse-gram.y: Add new syntax (named_ref.opt).
* src/reader.c: Store named refs in symbol lists.
* src/reader.h: New argument for symbol_append and
action_append functions.
* src/scan-code.h: Add new field (named_ref) into
code_props data structure. Keeps named ref of midrule
* src/scan-code.l: Support for named refs in semantic
action code. New function 'parse_named_ref'.
* src/scan-gram.l: Support bracketed id.
* src/symlist.c: Store named refs in symbol lists.
* src/symlist.h: New field in symbol list: named_ref.
* src/named-ref.h: New file, a struct for named_ref.
* src/named-ref.cp: New file, named_ref_new function.
* src/ Add two new files.
* tests/ Include new test group:
* tests/ this new file.
2009-06-25 Akim Demaille <>
hash: check insertion for memory exhaustion.
* src/uniqstr.c (uniqstr_new): New.
2009-06-24 Akim Demaille <>
variables: rename namespace as api.namespace.
Discussed in
* data/bison.m4 (b4_percent_define_copy_, b4_percent_define_copy):
(b4_percent_define_use): New.
Use it where applicable.
* data/c++.m4: Replace uses of the variable "namespace" by
Default the latter to the former.
* doc/bison.texinfo (Decl Summary): Document "namespace" as
Document api.namespace.
Use @samp to document %define uses, keep @code for identifiers.
* NEWS: Likewise.
* tests/, tests/ Test api.namespace instead of
namespace. (The tests passed with namespace.)
2009-06-11 Akim Demaille <>
style changes.
* data/xslt/xml2dot.xsl, data/xslt/xml2xhtml.xsl: Space changes.
* src/print-xml.c: Style changes.
* tests/ Comment changes.
2009-06-11 Akim Demaille <>
xml: beware of user strings used to give a %prec to rules.
* tests/ (%prec with user strings): New.
* src/gram.c (grammar_rules_print_xml): Escape the precedence for
XML output.
2009-06-11 Akim Demaille <>
hash: check insertion for memory exhaustion.
* src/muscle-tab.c (muscle_insert, muscle_grow)
* src/state.c (state_hash_insert): Check the return value of
2009-06-11 Akim Demaille <>
tests: honor TESTSUITEFLAGS in every check target.
* tests/ (RUN_TESTSUITE): New.
(check-local, installcheck-local, maintainer-check-g++)
(maintainer-check-posix, maintainer-check-valgrind): Use it.
2009-06-10 Akim Demaille <>
deterministic test suite.
Some consistency checks on symbols are performed after all the
symbols were read, by an iteration over the symbol table. This
traversal is nondeterministic, which can be a problem for test
Avoid this.
Addresses another form of nondeterminism reported by Joel E. Denny.
* tests/ (Numbered tokens): Split the hexadecimal/decimal
test in two.
Use different file names for the three tests to make the
maintenance easier.
2009-06-10 Akim Demaille <>
gnulib: update.
* gnulib: Update to latest.
* lib/.cvsignore, lib/.gitignore, m4/.cvsignore,
* m4/.gitignore: Regen.
* src/symtab.c (symbol_from_uniqstr, semantic_type_from_uniqstr):
Call xalloc_die on hash_insert failures.
Requested by the new __warn_unused_result__ attribute of
2009-06-10 Akim Demaille <>
deterministic user-token-number redeclaration errors.
Address nondeterminism reported by Joel E. Denny.
* src/uniqstr.h: Comment changes.
* src/location.h (boundary_cmp, location_cmp): New.
* src/symtab.c (user_token_number_redeclaration): New.
(symbol_translation): Use it.
* tests/ (Numbered tokens): Adjust the expected output.
2009-05-25 Akim Demaille <>
build: avoid ignored errors.
* doc/ ($(CROSS_OPTIONS_TEXI)): Don't generate ignored
errors, they pollute the output.
2009-05-22 Joel E. Denny <>
Convert multiple variable definition warnings to complaints.
* NEWS (2.5): Add a new entry for that change.
* doc/bison.texinfo (Decl Summary): Update %define entry.
(Bison Options): Update -D/--define/-F/--force-define entry.
* src/muscle-tab.c (muscle_percent_define_insert): Implement.
* src/muscle-tab.h (muscle_percent_define_insert): Update
* tests/ (`%define errors'): Update.
(`%define, --define, --force-define'): Update.
2009-05-22 Joel E. Denny <>
-F/--force-define and relative %define/-D/--define priorities.
* NEWS (2.5): Add documentation to -D/--define entry.
* build-aux/ Hard-code association of
--force-define with %define.
* doc/bison.texinfo (Decl Summary): In %define entry,
cross-reference command-line options.
(Bison Options): Add documentation to -D/--define entry.
(Option Cross Key): Widen column for --force-define row.
* src/getargs.c (usage): Document -F/--force-define. Realign
options in output.
(short_options, long_options, getargs): Parse -F/--force-define,
and update muscle_percent_define_insert invocations.
* src/muscle-tab.h (muscle_percent_define_how): New enum type.
(muscle_percent_define_insert): Add argument with that type.
* src/muscle-tab.c (muscle_percent_define_insert): Implement
-F/--force-define behavior and priorities.
(muscle_percent_define_ensure): Update
muscle_percent_define_insert invocation.
* src/parse-gram.y (prologue_declaration): Update
muscle_percent_define_insert invocations.
* tests/ (`%define, --define'): Rename to...
(`%define, --define, --force-define'): ... this and extend.
2009-05-22 Joel E. Denny <>
Update some comments to make sense for -D.
* data/bison.m4 (b4_check_user_names): In header comments, say
"user occurrence" instead of "grammar occurrence".
* src/muscle-tab.h (muscle_percent_define_insert): Likewise.
(muscle_percent_code_grow): Likewise just for consistency.
2009-05-20 Joel E. Denny <>
* data/c++.m4 (b4_namespace_close): Simplify slightly.
2009-05-19 Joel E. Denny <>
Handle a trailing `:' in a user-supplied C++ namespace better.
* data/c++.m4 (b4_namespace_close): Don't let it be printed
among the closing braces here. This fix might make the
generated code easier to debug, but otherwise it should be
insignificant because a trailing `:' is a C++ error already.
2009-05-19 Akim Demaille <>
remove useless variable.
* src/getargs.c (skeleton_arg): Remove now useless variable.
Should help the compiler see that this printf-like call is sane.
2009-05-15 Akim Demaille <>
Rename token.prefix as api.tokens.prefix.
Discussed here.
* NEWS, data/bison.m4, data/c.m4, data/java.m4, doc/bison.texinfo,
* tests/, tests/, tests/, tests/
(token.prefix): Rename as...
(api.tokens.prefix): this.
2009-05-11 Akim Demaille <>
doc: use C++ headers.
* doc/bison.texinfo (Calc++ Scanner): Prefer C++ headers to C
2009-05-11 Akim Demaille <>
doc: token.prefix
* doc/bison.simple (Decl Summary): Document token.prefix.
(Calc++ Parser): Various fixes.
Formatting changes.
Use token.prefix.
Introduce a macro TOKEN to shorten the code and make it more
(Calc++ Scanner): Adjust.
* NEWS (Variable token.prefix): New.
2009-05-04 Akim Demaille <>
bison: catch bad symbol names.
* src/scan-gram.l({int}{id}): Report as an invalid identifier.
* tests/ Adjust.
2009-05-04 Akim Demaille <>
identifiers: dashes are letters.
Dashes can now start identifiers (symbols and directives).
* src/scan-gram.l ({letter}): Add dash.
({id}): Remove it.
* tests/ (Symbols): Adjust.
Remove stray comment.
* tests/ (Invalid inputs): Adjust error message.
* doc/bison.texinfo (Symbols): Update.
2009-05-01 Joel E. Denny <>
Declare %code to be a permanent feature.
* NEWS (2.4.2): Here.
* doc/bison.texinfo (Prologue Alternatives): Don't say it's
(Decl Summary): Likewise.
2009-04-30 Joel E. Denny <>
Convert underscores to dashes in some %define variable names.
For now, just api.push-pull and lr.keep-unreachable-states.
Maintain old names for backward compatibility.
* NEWS (2.5): Document.
* data/c.m4 (b4_identification): Update comment.
* data/yacc.c: Update access.
* doc/bison.texinfo: Update.
* etc/ (bench_push_parser): Update use.
* src/files.c (tr): Move to...
* src/getargs.c, src/getargs.h (tr): ... here because I can't
think of a better place to expose it. My logic is that, for all
uses of tr so far, command-line arguments can be involved, and
getargs.h is already included.
* src/main.c (main): Update access.
* src/muscle_tab.c (muscle_percent_define_insert): Convert old
variable names to new variable names before assigning value.
* src/reader.c (reader): Update setting default.
* tests/ Update uses.
* tests/ (Unreachable States After Conflict
Resolution): Update use.
* tests/ (%define enum variables): Update use.
(%define backward compatibility): New test group.
* tests/ Update uses.
* tests/ Update uses.
* tests/ Update uses.
2009-04-30 Joel E. Denny <>
Set all front-end %define defaults in one place.
* src/main.c (main): Move lr.keep_unreachable_states default...
* src/reader.c (reader): ... to here.
2009-04-29 Joel E. Denny <>
Rename lr.default_reductions to lr.default-reductions.
* NEWS (2.5): Here.
* doc/bison.texinfo: Here.
* src/lalr.c (initialize_LA): Here.
* src/print.c (print_reductions): Here.
* src/reader.c (reader): Here.
* src/tables.c (action_row): Here.
* tests/ (%define enum variables): Here.
2009-04-29 Joel E. Denny <>
Pacify ./configure --enable-gcc-warnings.
* tests/ (Symbols): Prototype yyerror and yylex.
2009-04-29 Joel E. Denny <>
Document how `%define "var" "value"' is not M4-friendly.
* src/parse-gram.y (variable): In comments here.
2009-04-24 Joel E. Denny <>
Clean up recent patches a little.
Reported by Akim Demaille.
* doc/bison.texinfo (Understanding): Fix typos.
* src/print.c (print_reductions): Don't use negated variable.
2009-04-24 Joel E. Denny <>
List accepted values for a %define enum variable with an invalid value.
Suggested by Akim Demaille at
* data/bison.m4 (_b4_percent_define_check_values): Implement.
* src/muscle-tab.c (muscle_percent_define_check_values): Implement.
* tests/ (%define lr.default_reductions invalid values): Merge
(%define enum variables): ... here, and update output.
2009-04-23 Joel E. Denny <>
Rename "default rule" to "default reduction".
This includes changing variable names in code, changing
comments, and renaming %define lr.default_rules to %define
* NEWS (2.5): Update IELR documentation.
* data/bison.m4 (b4_integral_parser_tables_map): Adjust YYDEFACT
* data/glr.c, data/ Sync copyright dates.
* doc/bison.texinfo (Decl Summary): Adjust lr.default_reductions
and lr.type documentation. Make some other wording
(Glossary): Adjust cross-references and Default Reduction
* src/lalr.c (state_lookahead_tokens_count): Adjust code.
Remove a confusing comment pointed out by Akim Demaille.
(initialize_LA): Adjust code.
* src/print-xml.c (print_reductions): Adjust code.
* src/print.c (print_reductions): Adjust code.
* src/reader.c (reader): Adjust code.
* src/tables.c (action_row): Adjust code.
(token_actions): Adjust code.
* src/tables.h: Adjust YYDEFACT documentation.
* tests/ (%define lr.default_rules invalid values):
Rename test group to...
(%define lr.default_reductions invalid values): ... this, and
update grammar file and expected output.
* tests/ (AT_TEST_LR_DEFAULT_RULES): Rename to...
(AT_TEST_LR_DEFAULT_REDUCTIONS): ... this, and update.
2009-04-21 Akim Demaille <>
tests: check the use of dashes and periods in symbols.
* tests/ (Symbol): New test group.
2009-04-21 Joel E. Denny <>
Document %define lr.type and lr.default_rules.
* NEWS (2.5): Add an entry.
* src/getargs.c (usage): Mention IELR(1) and canonical LR(1)
besides just LALR(1) and GLR(1).
* doc/bison.texinfo (Introduction): Likewise.
(Language and Grammar): Bison is no longer limited to LALR(1)
(GLR parsing): Say deterministic or LR(1) rather than LALR(1)
when trying to distinguish from GLR. Talk about LR(1) grammars
rather than LALR(1) grammars.
(Decl Summary): In %define api.push_pull entry, say it applies
to deterministic parsers in C rather than LALR(1) parsers in C.
Add lr.default_rules entry.
Add lr.type entry.
(Mystery Conflicts): Bison is no longer limited to LALR(1)
(Generalized LR Parsing): Same changes as for the previous GLR
(Memory Management): Say deterministic rather than LALR(1).
(Understanding): Correct some bison output.
Index discussion of "accepting state".
Say deterministic rather than LALR(1).
(Bison Options): In --yacc entry, say deterministic rather than
In --report, --graph, and --xml entries, just don't mention
(C++ Parsers): Say deterministic rather than LALR(1).
(Table of Symbols): Likewise in YYSTACK_USE_ALLOCA entry.
(Glossary): Add Accepting State, Consistent State, Default Rule,
and IELR(1) definitions.
In Generalized LR (GLR) definition, make same changes as in
previous GLR sections.
In LALR(1) definition, say Bison uses LALR(1) by default rather
than implying Bison is limited to LALR(1).
(LocalWords): Add IELR.
2009-04-21 Joel E. Denny <>
Finish implementing %define lr.type.
Its value can be "LALR", "IELR", or "canonical LR".
* lib/timevar.def (TV_IELR_PHASE1): New var.
(TV_IELR_PHASE2): New var.
(TV_IELR_PHASE3): New var.
(TV_IELR_PHASE4): New var.
* src/ (bison_SOURCES): Add AnnotationList.c,
AnnotationList.h, InadequacyList.c, InadequacyList.h, Sbitset.c,
Sbitset.h, ielr.h, and ielr.c.
* src/getargs.h, src/getargs.c (enum trace, trace_args,
trace_types): Add trace_ielr.
* src/lalr.h, src/lalr.c (ngotos): Export it.
(F): Rename to...
(goto_follows): ... this, update all uses, and export it.
(set_goto_map): Export it.
(map_goto): Export it.
(compute_lookahead_tokens): Don't free goto_follows yet. Now
handled in ielr.
(initialize_LA): Export it. Move lookback allocation to...
(lalr): ... here because, for canonical LR, initialize_LA must
be invoked but lookback and much of the rest of LALR isn't
* main.c (main): Instead of lalr, invoke ielr, which invokes
* src/reader.c (reader): Default lr.type to "LALR".
Default lr.default_rules to "accepting" if lr.type is "canonical
LR". Leave the default as "all" otherwise.
Check for a valid lr.type value.
* src/state.h, src/state.c (struct state_list): Add state_list
(state_new): Initialize state_list member to NULL.
(state_new_isocore): New function, exported.
* tests/ (AT_TEST_EXISTING_GRAMMAR): New macro that
exercises all values of lr.type.
(GNU AWK Grammar): Rename test group to...
(GNU AWK 3.1.0 Grammar): ... this, and extend to use
(GNU Cim Grammar): Extend to use AT_TEST_EXISTING_GRAMMAR.
(GNU pic Grammar): Rename test group to...
(GNU pic (Groff 1.18.1) Grammar): ... this, and extend to use
* tests/ (AT_TEST_LR_TYPE): New macro that exercises
all values of lr.type.
(Single State Split): New test groups using AT_TEST_LR_TYPE.
(Lane Split): Likewise.
(Complex Lane Split): Likewise.
(Split During Added Lookahead Propagation): Likewise.
2009-04-21 Joel E. Denny <>
Add new files for IELR and canonical LR implementation.
* src/AnnotationList.c: New.
* src/AnnotationList.h: New.
* src/InadequacyList.c: New.
* src/InadequacyList.h: New.
* src/Sbitset.c: New.
* src/Sbitset.h: New.
* src/ielr.c: New.
* src/ielr.h: New.
2009-04-20 Joel E. Denny <>
Implement %define lr.default_rules.
Its value describes the states that are permitted to contain
default rules: "all", "consistent", or "accepting".
* src/reader.c (reader): Default lr.default_rules to "all".
Check for a valid lr.default_rules value.
* src/lalr.c (state_lookahead_tokens_count): If lr.default_rules
is "accepting", then only mark the accepting state as
(initialize_LA): Tell state_lookahead_tokens_count whether
lr.default_rules is "accepting".
* src/tables.c (action_row): If lr.default_rules is not "all",
then disable default rules in inconsistent states.
* src/print.c (print_reductions): Use this opportunity to
perform some assertions about whether lr.default_rules was
obeyed correctly.
* tests/ (AT_TEST_TABLES_AND_PARSE): New macro that
helps with checking the parser tables for a grammar.
* tests/ (%define lr.default_rules invalid values): New
test group.
* tests/ (AT_TEST_LR_DEFAULT_RULES): New macro using
(`no %define lr.default_rules'): New test group generated by
(`%define lr.default_rules "all"'): Likewise.
(`%define lr.default_rules "consistent"'): Likewise.
(`%define lr.default_rules "accepting"'): Likewise.
2009-04-20 Akim Demaille <>
Formatting change.
2009-04-20 Akim Demaille <>
bison: factoring.
* src/output.c (token_definitions_output): Use symbol_id_get
instead of duplicating its logic.
2009-04-20 Akim Demaille <>
variables: prefer error-verbose to error_verbose.
* data/bison.m4 (b4_error_verbose_if): Based on error-verbose
instead of error_verbose.
* src/scan-gram.l (%error-verbose): Map to the error-verbose
* doc/bison.texinfo: Promote %define error-verbose instead of
* tests/ Prefer %define error-verbose to %error-verbose.
2009-04-15 Akim Demaille <>
variables: accept dashes.
* data/bison.m4 (b4_percent_define_if_define_): Also map dashes to
* src/scan-gram.l ({id}): Also accept dashes after the initial
({directive}): Use {id}.
* src/parse-gram.y: Comment and formatting changes.
* doc/bison.texinfo (Symbols): Adjust the lexical definitions of
* src/complain.h, src/complain.c (yacc_at): New.
* src/symtab.c (symbol_new): Use yacc_at to report inappropriate
symbol names.
* src/output.c (token_definitions_output): Do not #define token
names with dashes.
2009-04-20 Akim Demaille <>
Consistently refer to Yacc, not YACC.
* src/getargs.c (usage, warnings_args): s/YACC/Yacc/.
2009-04-17 Joel E. Denny <>
Pacify make maintainer-check-posix.
* tests/ (%define, --define): Move bison command-line
options before grammar file name.
2009-04-04 Joel E. Denny <>
Document semicolon warnings.
* NEWS (2.5): Here.
2009-04-14 Akim Demaille <>
variables: use `parse.assert' instead of `assert'.
* TODO (assert): Remove.
* data/bison.m4 (b4_assert_if): Replace with...
(b4_parse_assert_if): this.
* data/, data/variant.hh, tests/ Adjust.
* doc/bison.texinfo (Decl Summary): Document parse.assert.
2009-04-14 Akim Demaille <>
variables: use `parse.trace' instead of `debug'.
* src/getargs.c (getargs): Map -t to %define trace.parse.
* src/scan-gram.l (%debug): Map to %define trace.parse.
* data/bison.m4 (b4_percent_define_if_define): Map `.' in variable
names to `_' in macro names.
(b4_debug_if): Replace with...
(b4_parse_trace_if): this.
* data/glr.c, data/, data/, data/,
* data/yacc.c: Adjust.
* doc/bison.texinfo (Decl Summary): Document %debug as obsoleted.
Use @code to label the variable list.
Document the variable parse.trace.
(Tracing): Promote the parse.trace variable.
* TODO: %printer is not documented.
2009-04-14 Akim Demaille <>
doc: minor fixes.
* doc/bison.texinfo (Decl Summary): Fix entry about %debug.
(Table of Symbols): Remove duplicate entry for %debug.
2009-04-10 Eric Blake <>
submodules: update to latest
* submodules/autoconf: Use latest upstream Autoconf.
2009-04-06 Eric Blake <>
Work around autoconf 2.63b bug in testsuite.
* tests/ (AT_CHECK_OUTPUT_FILE_NAME): Avoid tripping
autoconf bug related to # in test.
2009-04-06 Joel E. Denny <>
* NEWS (2.5): New section. Describe new -D/--define feature.
2009-04-06 Akim Demaille <>
* src/parse-gram.h, src/parse-gram.c: Regen.
2009-04-06 Akim Demaille <>
rename muscle_tab.* as muscle-tab.* for consistency.
* src/muscle_tab.h, src/muscle_tab.c: Rename as...
* src/muscle-tab.h, src/muscle-tab.c: these.
* src/getargs.c, src/, src/main.c, src/output.c,
* src/parse-gram.y, src/reader.c, src/scan-code.l: Adjust.
2009-04-06 Akim Demaille <>
Makefile: introduce $(BISON).
* src/ (BISON): New.
(YACC): Use it.
2009-04-06 Akim Demaille <>
parser: handle %locations as %define locations.
* src/getargs.h, src/getargs.c (locations_flag): Remove.
* src/getargs.c, src/scan-code.l: Use muscle_percent_define_ensure
to set "locations" to true.
* src/output.c (prepare): Don't output "locations".
* src/scan-gram.l (%locations): Handle it as a %<flag>.
* src/parse-gram.y: It's no longer a token.
Don't handle it.
* data/bison.m4 (b4_locations_if): Define it with
* data/c.m4, data/ Adjust.
2009-04-06 Akim Demaille <>
* src/parse-gram.c: Regen.
2009-04-06 Akim Demaille <>
muscle: factor the handling of obsolete of obsolete directives.
Suggested by Joel E. Denny.
* src/muscle_tab.h, src/muscle_tab.c (muscle_percent_define_ensure):
New, extracted from...
* src/parse-gram.y (prologue_declaration: pure-parser): here.
Remove it.
(prologue_declaration: "%<flag>"): Use
(%error-verbose, %pure-parser): No longer tokens.
* src/scan-gram.l (pure-parser): Return as a %<flag>.
2009-04-06 Joel E. Denny <>
Fix options documentation.
* build-aux/ As in --help output, write optional
arguments as [=ARG] not =[ARG].
* doc/bison.texinfo (Bison Options): Add -W/--warnings argument.
2009-04-04 Joel E. Denny <>
Replace BISON_PROG_GNU_M4 with Autoconf's AC_PROG_GNU_M4.
If the first m4 in $PATH is wrong, it keeps looking. Moreover, its
requirements for a correct m4 are stricter.
* m4/m4.m4: Make it a symbolic link to submodules/autoconf/m4/m4.m4.
* Update to use AC_PROG_GNU_M4.
Reported by Eric Blake.
2009-04-03 Joel E. Denny <>
Help with updating web manual.
* HACKING: Incorporate instructions from gnulib/doc/README.
* bootstrap.conf (gnulib_modules): Add gendocs.
2009-04-03 Akim Demaille <>
* src/parse-gram.h, src/parse-gram.c: Regen.
2009-04-03 Akim Demaille <>
Factor %FLAG at scan level.
* src/parse-gram.y (PERCENT_DEBUG, PERCENT_ERROR_VERBOSE): Token
definitions and associated rules, replaced by....
(PERCENT_FLAG): this new token type, and rule.
* src/scan-gram.l (RETURN_PERCENT_FLAG): New.
Use it for %debug and %error-verbose.
2009-04-03 Akim Demaille <>
* src/parse-gram.h, src/parse-gram.c: Regen.
2009-04-03 Akim Demaille <>
Treat %debug as %define debug.
* data/bison.m4 (b4_debug_if): New.
* data/glr.c, data/, data/, data/yacc.c,
* data/ Use it instead of b4_debug_flag.
* src/getargs.h, src/getargs.c (debug_flag): Remove.
* src/output.c (prepare): Don't output it.
* src/parse-gram.y: Treat %debug as %define debug.
2009-04-03 Akim Demaille <>
Treat %error-verbose as %define error_verbose.
This allows to pass -Derror_verbose on the command line. Better
yet, it allows to pass -Derror_verbose=$(ERROR_VERBOSE), with
ERROR_VERBOSE being defined as false or true.
* data/bison.m4 (b4_percent_define_if_define): Instead of relying
on b4_percent_define_ifdef, for does not check the defined value,
but only whether the symbol is defined, rely on
b4_percent_define_flag_if, so that a value of "false" is processed
as a false.
If not defined, define the flag to "false".
(b4_error_verbose_if): New.
* data/glr.c, data/, data/yacc.c: Use it instead of
* src/getargs.h, src/getargs.c (error_verbose_flag): Remove.
* src/output.c (prepare): Don't output it.
* src/parse-gram.y (%error-verbose): Treat as %define error_verbose.
2009-04-03 Joel E. Denny <>
Fix strange %define locations for default values.
Reported by Akim Demaille at
and discussed again starting at
* data/bison.m4 (b4_percent_define_default): Leave syncline blank
because location information is bogus.
Use angle brackets to delimit fake file name because square brackets
look like underexpanded m4. Choose a better fake file name.
Use negative line numbers.
* src/muscle_tab.c (muscle_percent_define_default): Likewise.
* src/location.c (location_print): If line for a boundary is negative,
only print that boundary's file name.
* src/location.h: Document that.
* tests/ (%define Boolean variables: invalid skeleton
defaults): Update output.
2009-04-03 Joel E. Denny <>
Pacify ./configure --enable-gcc-warnings.
* (AM_CFLAGS): Remove $(WERROR_CFLAGS) because many files
in lib won't compile with it.
* src/ (src_bison_CFLAGS): Use $(WERROR_CFLAGS) here only.
2009-03-31 Akim Demaille <>
bootstrap: --help to stdout.
* bootstrap (usage): Don't send --help to stderr.
Use a here doc instead of a long string.
2009-03-31 Akim Demaille <>
bootstrap: README-hacking no longer exists
* bootstrap (checkout_only_file): Set to HACKING.
2009-03-26 Akim Demaille <>
doc: merge HACKING and README-hacking.
Two files is confusing.
Reported by Alexandre Duret-Lutz.
* README-hacking: Merge into...
* HACKING (Working from the repository): here.
2009-03-26 Akim Demaille <>
doc: update README-hacking.
* README-hacking: We now use git and git submodules.
Reported by Ralf Wildenhues and Alexandre Duret-Lutz.
2009-03-26 Akim Demaille <> avoid GCC 4.3 warnings.
GCC 4.3 now warns about "a || b && c" and asks for explicit
Reported by Alexandre Duret-Lutz.
* data/ Update copyright years.
(Position::operator==): Use parens to make precedence explicit.
Compare lines and columns first, as they are more likely to be
different, and they are faster to compare.
2009-03-26 Akim Demaille <>
gnulib: update.
* gnulib: Update to latest.
* src/ (AM_CFLAGS): Move to...
* here.
* etc/prefix-gnulib-mk (prefix_assignment): Also transform
2009-03-02 Akim Demaille <>
Comment changes.
2009-03-02 Akim Demaille <>
Share b4_yytranslate_define.
* data/ (b4_yytranslate_define): Move to...
* data/c++.m4: here.
2009-03-02 Akim Demaille <>
Use locations in the variant example.
Yes, this obfuscates the point of this example, variants only.
But cannot work (yet?) without locations. This change
makes it easier to use this example with
* examples/variant.yy (assert): %define it.
(locations): Request them.
(yylex): Bind the location to the stage.
2009-03-02 Akim Demaille <>
Dub make_TOKEN as a public type interface.
* data/c++.m4 (b4_symbol_constructor_declare)
(b4_symbol_constructor_define): New empty stubs.
(b4_public_types_declare, b4_public_types_define): Use them.
* data/ (b4_symbol_constructor_declare)
(b4_symbol_constructor_define_, b4_symbol_constructor_define):
Move to...
* data/variant.hh: here.
Remove the "b4_variant_if" parts, as variant.hh is loaded only if
* data/ No longer invoke b4_symbol_constructor_define and
b4_symbol_constructor_declare, as it is now done by
b4_public_types_define and b4_public_types_declare.
2009-03-02 Akim Demaille <>
Coding style changes.
* data/ (b4_symbol_constructor_declaration_)
(b4_yytranslate_definition): Rename as...
(b4_yytranslate_define): these.
* data/variant.hh (b4_variant_definition): Rename as...
(b4_variant_define): this.
2009-03-02 Akim Demaille <>
Factor b4_assert_if, b4_lex_symbol_if, and b4_variant_if.
* data/bison.m4 (b4_percent_define_if_define): New.
* data/c++.m4 (b4_variant_if): Move to...
* data/bison.m4: Here, using b4_percent_define_if_define.
* data/ (b4_assert_if, b4_lex_symbol_if): Move to...
* data/bison.m4: Here, using b4_percent_define_if_define.
2009-03-02 Akim Demaille <>
Dub symbol_type_base as a public type.
* data/c++.m4 (b4_public_types_declare): Now define
symbol_type_base and symbol_type.
(b4_public_types_define): New.
In both cases, the definitions are taken verbatim from
* data/ Adjust.
2009-03-02 Akim Demaille <>
* data/c++.m4 (b4_public_types_declare): New.
* data/, data/ Use it.
2009-03-02 Akim Demaille <>
* data/c++.m4 (b4_semantic_type_declare): New.
Factors and generalizes what was in and
* data/variant.hh (b4_semantic_type_declare): Redefine it for
* data/, data/ Use it.
2009-02-26 Akim Demaille <>
Upgrade gnulib.
* gnulib: Upgrade from master.
* lib/.cvsignore, lib/.gitignore, m4/.cvsignore, m4/.gitignore:
2009-02-25 Akim Demaille <>
Remove useless arguments.
* data/glr.c (yy_reduce_print): $$ and @$ are not used and not
2009-02-25 Akim Demaille <>
Comment changes.
* data/ here.
2009-02-25 Akim Demaille <>