Filewatcher File Search File Search
Content Search
» » » » » bison_2.4.1.dfsg-3_i386.deb » Content »
pkg://bison_2.4.1.dfsg-3_i386.deb:467926/usr/share/doc/bison/  info  control  downloads

bison - A parser generator that is compatible with YACC…  more info»


2008-12-11  Joel E. Denny  <>

	Version 2.4.1.
	* NEWS: Set version and date.
	* lib/ Update copyright year.
	* tests/ Update copyright year.

2008-12-11  Joel E. Denny  <>

	Semicolon feature removal is not about future language support.
	* NEWS: The semicolon feature is no longer active for newer languages,
	so don't claim that it causes trouble for them.

2008-12-11  Joel E. Denny  <>

	* gnulib: Update submodule to HEAD.

2008-12-09  Akim Demaille  <>

	Update data/README.
	* data/README: Document,, m4sugar and xslt.

2008-12-05  Eric Blake  <>

	Build testsuite with newer autoconf.
	* tests/ (m4_expand): Don't override in newer autoconf,
	where the underlying implementation changed.
	(_AT_VERBOSE_GLR_STDERR): Expand to double-quoted strings,
	since some of them contain unbalanced ')'.

2008-11-19  Joel E. Denny  <>

	* NEWS: Clarify a little.

2008-11-19  Joel E. Denny  <>

	* NEWS: Update for recent changes.

2008-11-18  Joel E. Denny  <>

	Fix unexpanded macros in GLR defines file.
	Reported by Csaba Raduly at
	* THANKS (Csaba Raduly): Add.
	* data/glr.c: Fix overquoting on b4_prefix for yylval and yylloc.
	* tests/ (_AT_DATA_CALC_Y): If %defines is specified, generate
	lexer in a separate module that includes the defines file.
	(AT_CHECK_CALC): Use AT_FULL_COMPILE and request compilation of lexer
	Adjust AT_LOC and AT_VAL to use AT_NAME_PREFIX.
	(AT_FULL_COMPILE): New, copied from master branch and extended to
	support an additional source file.

2008-11-17  Joel E. Denny  <>

	Don't let maintainer-*-check targets force a version update.
	* (_is-dist-target): Implement.  maintainer-check* was already

2008-11-17  Di-an Jan  <>

	* doc/bison.texinfo: Synchronize ``Detail Node Listing''.
	Align menus.  Adjust word wrapping.  Use node names for menu names.
	(Examples): Don't abbreviate node names.
	(LocalWords): Remove abbreviations.
	(Copying): Make description a sentence.
	(Java Action Features): Remove period to match the rest of menu.

2008-11-11  Paolo Bonzini  <>

	* bootstrap.conf: Replace m4/warning.m4 with warnings module.
	* Adjust usage.
	* lib/ Replace $(WARNING_CFLAGS) with $(WARN_CFLAGS).
	* src/ Replace $(WARNING_CFLAGS) with $(WARN_CFLAGS).
	* tests/ Replace $(WARNING_*FLAGS) with $(WARN_*FLAGS).

2008-11-07  Joel E. Denny  <>

	Don't add a semicolon to actions for %skeleton or %language.
	It breaks Java test cases as reported by Akim Demaille.
	* src/scan-code.l: Implement.

2008-11-07  Joel E. Denny  <>

	Clean up %skeleton and %language priority implementation.
	* src/getargs.c (skeleton_prio): Use default_prio rather than 2, and
	remove static qualifier because others will soon need to see it.
	(language_prio): Likewise.
	(getargs): Use command_line_prio rather than 0.
	* src/getargs.h (command_line_prio, grammar_prio, default_prio): New
	enum fields.
	(skeleton_prio): Extern it.
	(language_prio): Extern it.
	* src/parse-gram.y: Use grammar_prio rather than 1.

2008-11-04  Akim Demaille  <>

	* NEWS: Mention the trailing semicolon in action.

2008-11-04  Akim Demaille  <>

	Reformat NEWS.
	* NEWS: Use more outline-mode markup.
	Suggested by Jim Meyering.

2008-11-04  Joel E. Denny  <>

	Fix user actions without a trailing semicolon.
	Reported by Sergei Steshenko at
	* THANKS (Sergei Steshenko): Add.
	* src/scan-code.l (SC_RULE_ACTION): Fix it.
	* tests/ (Fix user actions without a trailing semicolon):
	New test case.

2008-11-02  Joel E. Denny  <>

	Initiate further development.
	* NEWS: Create an empty section for new entries.
	* gnulib: Update submodule to HEAD.

2008-11-02  Joel E. Denny  <>

	* NEWS: Version 2.4.

2008-11-02  Joel E. Denny  <>

	Prepare for next release.
	* NEWS: Briefly mention changes since 2.3b.
	* README: Say GNU m4 1.4.6, which we've been requiring in release
	announcements already, not 1.4.3, which breaks the build.

2008-11-02  Joel E. Denny  <>

	Say %language is experimental.
	We're thinking of extending it's effect on output file naming.  See the
	thread at
	* NEWS: Say it's experimental.
	* doc/bison.texinfo (Decl Summary): Say it's experimental, and so don't
	recommend it over %skeleton for now.
	(Bison Options): Likewise.
	(C++ Bison Interface): Use %skeleton not %language.
	(Calc++ Parser): Use %skeleton not %language.
	* src/getargs.c (usage): Say it's experimental.

2008-11-01  Di-an Jan  <>
	    Paolo Bonzini  <>

	Support all Java parser class modifiers.
	* data/java.m4 (b4_percent_define_get3): New.
	(b4_final_if, b4_strictfp_if): New.
	* data/ (final, strictfp, extends, implements): Support.
	* doc/bison.texinfo (final, strictfp, extends, implements): Add
	* tests/ (AT_CHECK_JAVA_MINIMAL): New.
	(Java parser class modifiers): New test.
	(Java parser class extends and implements): New test.

	Model exception propagation better with throws and lex_throws.
	* data/java.m4 (b4_list2): New.
	(throws): Change default.
	* data/ (yyaction): Add throws.
	(parse): Add lex_throws in addition to throws.
	* doc/bison.texinfo (throws, lex_throws): Add documentation.
	* tests/ (Java throws specifications): New test.

	Improve documentation for Java parsers.
	* doc/bison.texinfo (Java Parsers): Add subsections.
	Don't quote first argument of %define.
	(Java Bison Interface): Document output files.  Move documentation
	of parser class and merge into Java Parser Interface.  Document
	features that error out.  Document directives with no effect.
	Move note about Javadoc higher.
	(Java Semantic Values): Explicitly mention stype.
	Document that generic types cannot be used.
	(Java Location Values): Use @deftypeivar.  Document constructors.
	Correct return value for toString.
	(Java Parser Interface): List undocumented constants/fields.
	Move documentation of fields added by %parse-param closer to list
	of members.  Document that token names are added as fields.
	Document constructors accurately.  Remove error method.
	(Java Scanner Interface): Move note on %pure-parser to Java Bison
	Interface.  Describe %code lexer and yylex accutately.
	Remove documentation that does not match the code.
	(Java Action Features): New.
	(Java Differences): Add reference.  Add item on semantic values.
	Add note about @{ ... @}.  Clarify %% epilogue placement.
	(Java Declarations Summary): New.

	Fix Java skeleton.
	* data/java.m4 (b4_prefix): Correct quoting for m4_define_default.
	(b4_remove_comma): Quote test argument.
	(b4_identification): Remove "bison" field.
	* tests/ (Java parser class and package names): New test.
	(Java %parse-param and %lex-param): New test.
	(Java stype, position_class and location_class): New test.

2008-10-31  Di-an Jan  <>

	* data/lalr1.jave: Update copyright years.
	(YYParser): Correct name of "generated from" file in Javadoc:
	use b4_file_name instead of @ofile@.
	(Location constructor): Correct Javadoc parameter name.
	(yylloc): Add missing opening m4 quote after b4_location_if.
	This removes a stray [ in the Javadoc of Lexer.getStartPos.
	(Lexer.yyerror): Fix incorrect m4 and Javadoc.
	(YYParser constructor): Correct Javadoc parameter name.

2008-10-30  Joel E. Denny  <>

	Always put auxiliary code files in the same dir as other output files.
	* src/files.c (compute_file_name_parts): When the user specifies
	--output but not --file-prefix, extract the directory prefix from the
	file prefix not from the grammar file name.  This affects the location
	of files like location.hh generated by the C++ skeleton.  The includes
	in the other output files require this fix.
	* tests/ (AT_CHECK_OUTPUT): Automatically create directories
	for expected output files.
	(Output files): Add a test for the above.

2008-10-29  Joel E. Denny  <>

	* gnulib: Update submodule to HEAD.

2008-10-28  Joel E. Denny  <>

	Update copyright year.
	* src/files.c: Here.

2008-10-28  Di-an Jan  <>  (tiny change)

	Don't overwrite the input file.
	* src/files.c (output_file_name_check): Fatal error if using input file
	for output.
	* tests/ (AT_CHECK_CONFLICTING_OUTPUT): Add return status
	(Conflicting output files): Add test.

2008-10-28  Akim Demaille  <>

	Space changes.
	* data/ Formatting changes.

2008-10-28  Akim Demaille  <>

	Don't define debugging functions when !YYDEBUG.
	* data/ (debug_stream, set_debug_stream)
	(debug_level_type, debug_level, set_debug_level): Don't
	declare them when YYDEBUG is not defined.
	The implementation are already YYDEBUG-aware.

2008-10-28  Akim Demaille  <>

	Prefer "continue" for empty loop bodies.
	* etc/ Use "continue" instead of {}.

2008-10-28  Akim Demaille  <>

	Space and comments changes.
	* data/c++.m4, data/glr.c, data/ Copyright year changes.
	* data/c.m4, data/ Space changes.

2008-10-28  Akim Demaille  <>

	Make gnulib a submodule.
	* gnulib: New.
	* .gitmodules (gnulib): New.

2008-10-18  Joel E. Denny  <>

	Fix yyerror_range for user-defined location type in C++.  Reported by
	Georg Sauthoff at
	* data/ (parse): Change type of yyerror_range to location_type.
	* THANKS (Georg Sauthoff): Add.

2008-10-18  Joel E. Denny  <>

	Update several administrative files mainly to facilitate releasing.
	* HACKING (Administrivia): Make the git-merge-changelog notes more
	(Test suite): Don't say is not exercised in the test suite.
	(Release Procedure): Update for git and add numerous details that were
	previously missing.
	* (EXTRA_DIST): Remove Makefile.cfg and Makefile.maint.
	* (announcement): Don't list bison as a bootstrap tool so
	that announcements don't claim we bootstrapped with whatever bison
	happened to be in PATH.  Add flex as a bootstrap tool.
	* Makefile.maint: Remove, previously replaced by
	* Makefile.cfg: Remove, and migrate settings to...
	* ... here for the sake of `make announcement'.
	* bootstrap.conf (gnulib_modules): Add announce-gen.
	* README: Say GNU Bison instead of just Bison.  Suggested by Karl

2008-10-08  Di-an Jan  <>  (tiny change)

	Small but important bugfixes for the Java skeleton.
	* data/ (yyerror): Change Location to b4_location_type.
	(yy_symbol_print): Call toString on yyvaluep.

2008-08-29  Akim Demaille  <>

	Clarify UPDATED use.
	* doc/bison.texinfo: It refers to the last edition of this file,
	not to the release date of Bison.
	Reported by Joel E. Denny.

2008-08-29  Akim Demaille  <>

	* README: Update FAQ pointer.
	Reported by Joel E. Denny.

2008-08-27  Eric Blake  <>

	Resync m4sugar from autoconf.
	* data/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine)
	(m4_init): Adjust to latest m4.git changes.
	(m4_mapall_sep, _m4_list_cmp, m4_version_compare): Reduce side
	* data/m4sugar/foreach.m4 (_m4_shiftn): Fix off-by-one bug.
	(_m4_list_cmp): Reduce side effects.

2008-08-27  Akim Demaille  <>

	Check yyerrok in
	* tests/ (calc.y): Use yyerrok on "( error )".
	(AT_CHECK_CALC): Add a check that ensures that yyerrok works as

2008-08-27  Akim Demaille  <>

	Support yyerrok in
	YYBACKUP is still to import back into
	* data/ (yyerrork, yyclearin, YYRECOVERING): Define.

2008-08-26  Joel E. Denny  <>

	For maintainer-check*, don't recompile for a $(VERSION) update.
	* New file.
	(_is-dist-target): Override the one in GNUmakefile.
	* (EXTRA_DIST): Add

2008-08-26  Joel E. Denny  <>

	Update for recent change to gnulib.
	* src/parse-gram.y: Don't include strverscmp.h.  It comes from
	string.h now.

2008-08-15  Eric Blake  <>

	Remaining m4sugar merge from autoconf.
	* data/m4sugar/m4sugar.m4: Copy entire file from autoconf.
	* data/m4sugar/foreach.m4: New file, copied from autoconf.
	* data/ (dist_m4sugar_DATA): Distribute it.
	* src/output.c (output_skeleton): Tell m4 how to find it.

	Partial m4sugar merge from autoconf: m4_map.
	* data/m4sugar/m4sugar.m4 (m4_fst): Delete.
	(m4_map, m4_map_sep, _m4_map): Rewrite more efficiently.
	(m4_apply, _m4_apply, m4_mapall, m4_mapall_sep): New macros.
	* data/java.m4 (b4_token_enums): Use more efficient short-circuit
	for empty list.
	* data/c.m4 (b4_token_defines, b4_token_enums, b4_c_ansi_formals):
	(b4_parse_param_for): Avoid m4_fst, now that autoconf no longer
	declares it.

2008-08-07  Joel E. Denny  <>

	Keep .version and PACKAGE_VERSION in sync.
	* ($(top_srcdir)/.version): Declare configure as a
	dependency, and add comments justifying this in more detail.  Discussed
	starting at

2008-08-06  Eric Blake  <>

	Partial m4sugar merge from autoconf: m4_shiftn.
	* data/m4sugar/m4sugar.m4 (m4_shiftn): Faster implementation.
	(m4_shift2, m4_shift3): New macros.
	(m4_case, m4_bmatch, m4_bpatsubsts, m4_join): Adjust clients.
	* data/c.m4 (b4_c_function_def, b4_c_ansi_function_def)
	(b4_c_ansi_function_decl, b4_c_function_call): Likewise.
	* data/java.m4 (b4_remove_comma): Likewise.

	Partial m4sugar merge from autoconf: m4_wrap vs. m4 1.6.
	* data/m4sugar/m4sugar.m4 (m4_unquote, m4_wrap_lifo): New macros.
	(m4_wrap): Guarantee FIFO order, in spite of m4 1.6.
	(m4_init): Consolidate wrapped text into single m4_wrap.
	* data/bison.m4 (b4_check_user_names_wrap): Stick with LIFO order
	in wrapped text.

2008-08-05  Eric Blake  <>

	Partial m4sugar merge from autoconf: builtins, version.m4.
	* data/m4sugar/m4sugar.m4 (changeword): Nuke.
	(m4_prepend): Remove, as it is unused and inherently quadratic,
	whereas m4_append is linear in newer m4.
	(m4_mkstemp): New builtin.
	(m4_symbols): Make rename conditional.
	(m4_version_prereq): Ensure fatal error if used in bison, which
	intentionally lacks version.m4.

	Fix comments in m4sugar.
	* data/m4sugar/m4sugar.m4: Comment changes, borrowed from autoconf.

2008-08-02  Joel E. Denny  <>

	Update for recent .gitignore fix in Gnulib.
	* bootstrap: Back out 2008-07-18 hack now that gnulib-tool creates
	anchored .gitignore entries.

2008-08-02  Joel E. Denny  <>

	Set gnu or gnits strictness.
	* (AM_INIT_AUTOMAKE): Set gnu strictness during
	development and gnits strictness for releases.  Based on Eric Blake's
	suggestion at

2008-07-31  Paolo Bonzini  <>

	* NEWS: Clarify documentation of %language.

2008-07-31  Paolo Bonzini  <>

	Support usage of git-merge-changelog.
	* .gitattributes: New.
	* HACKING: Document usage of git-merge-changelog.
	* bootstrap: Install git-merge-changelog entries in .git/config
	if appropriate.

2008-07-27  Joel E. Denny  <>

	Remove remaining dependence on CVS Id keyword.
	* ChangeLog: For the sake of people still using CVS, don't use dollars
	when mentioning Id.
	* data/xslt/bison.xsl: Remove Id from header comments, where it was
	unusual anyway.
	* data/xslt/xml2dot.xsl: Likewise.
	* data/xslt/xml2text.xsl: Likewise.
	* data/xslt/xml2xhtml.xsl: Likewise.
	* doc/ (PROJECT_NUMBER): Don't use ID.
	* doc/ (neutralize): Remove, no longer needed.
	(.x.1): Don't use neutralize.
	(edit): Don't substitute for ID.
	(Doxyfile): Don't define Id, and thus don't depend on ChangeLog.

2008-07-27  Joel E. Denny  <>

	Fix dependence on computed configure variables.
	* doc/ (common_dep): Depend on $(top_srcdir)/configure not
	$(top_srcdir)/ so that changes to computed variables, such
	as PACKAGE_VERSION, are seen.
	* tests/ ($(srcdir)/package.m4): Likewise.

2008-07-20  Joel E. Denny  <>

	Update copyright dates for recent changes.
	* Here.
	* src/ Here.
	* src/reduce.c: Here.
	* tests/ Here.

2008-07-18  Joel E. Denny  <>

	Use git-version-gen for version names between releases.
	* .cvsignore (.tarball-version, GNUmakefile, *~): Add.
	* .gitignore (/.tarball-version, /GNUmakefile, /*~): Add.
	* .prev-version: New.
	* Remove.
	* ChangeLog: Remove the Id previously used for capturing the CVS
	* GNUmakefile: Remove, now copied from Gnulib.
	* Add code suggested by comments in
	(EXTRA_DIST): Remove GNUmakefile, handled by Gnulib.  Add,
	.prev-version, and .version.
	* NEWS (2.3b+): Rename to...
	(?.?): ... this because we're dropping the "+" version naming scheme,
	but, in general, we still can't be sure of our next release name.
	* bootstrap: Add a quick hack to remove from .gitignore the
	GNUmakefile entry that gnulib adds.  We already have a /GNUmakefile
	entry.  This should really be fixed in gnulib instead.
	* bootstrap.conf (gnulib_modules): Add gnumakefile.
	* (AC_INIT): Set version name by invoking
	(AC_CONFIG_FILES): Remove .version, now generated by
	* New, copied from coreutils.
	* doc/.cvsignore (bison.1): Add.
	* doc/.gitignore (/bison.1): Add.
	* doc/bison.1: Remove, generated.
	* src/.cvsignore (revision.c): Remove.
	* src/.gitignore (/revision.c): Remove.
	* src/ (bison_SOURCES): Remove revision.c and revision.h.
	(BUILT_SOURCES): Remove revision.c.
	(revision.c): Remove.
	* src/getargs.c (version): Don't print revision after the VERSION.
	* src/revision.h: Remove.

2008-07-16  Joel E. Denny  <>

	Fix untranslatable composition of sentences.  Reported by Goran
	Uddeborg at
	* THANKS (Goran Uddeborg): Add.
	* src/reduce.c (reduce_print): Report the number of nonterminals and
	rules useless in the grammar in separate sentences.
	* tests/ (Useless Rules): Update output.
	(Reduced Automaton): Likewise.
	(Underivable Rules): Likewise.
	(Empty Language): Likewise.

2008-07-15  Joel E. Denny  <>

	Fix some .gitignore and .cvsignore problems.
	* bootstrap (insert_sorted_if_absent): Replace all uses with...
	(insert_vc_ignore): ... this new function, which prepends `/' to all
	.gitignore entries before passing them to insert_sorted_if_absent.
	* bootstrap.conf (vc_ignore): Set to '.cvsignore .gitignore' so that
	.cvsignore files are maintained even though Bison developers run
	bootstrap while using Git.
	* .cvsignore (*.patch *.log log patches applied): Remove, apparently
	unneeded by Bison.
	(gnulib): Add.
	* .gitignore (/*.patch *.log log patches applied): Remove, broken and
	unneeded.  Reported by Eric Blake.
	* lib/.gitignore (/*~): Add.
	* po/.cvsignore, runtime-po/.cvsignore: Sync with .gitignore.
	* examples/calc++/.gitignore (/calc++.exe): Add.  Reported by Eric
	* src/.gitignore (/bison.exe): Add.  Reported by Eric Blake.

2008-07-15  Joel E. Denny  <>

	Improve forward-compatibility with GNU M4.  Reported by Eric Blake at
	* bootstrap.conf (gnulib_modules): Add unsetenv.
	* lib/.gitignore, lib/.cvsignore (/unsetenv.c): Add.
	* m4/.gitignore, m4/.cvsignore (/environ.m4): Add.
	(/setenv.m4): Add.
	* src/output.c (output_skeleton): For the m4 invocation, pass -dV as
	the first argument because it may become position-dependent, and unset
	POSIXLY_CORRECT so Bison's skeletons have access to GNU M4 extensions.
	Add comments explaining these issues in more detail.

2008-07-14  Joel E. Denny  <>

	Add .gitignore everywhere based on .cvsignore.
	* .gitignore: New.
	* build-aux/.gitignore: New.
	* data/.gitignore: New.
	* doc/.gitignore: New.
	* etc/.gitignore: New.
	* examples/.gitignore: New.
	* examples/calc++/.gitignore: New.
	* lib/.gitignore: New.
	* m4/.gitignore: New.
	* po/.gitignore: New.
	* runtime-po/.gitignore: New.
	* src/.gitignore: New.
	* tests/.gitignore: New.

2008-05-27  Joel E. Denny  <>

	* NEWS (2.3b+): New section, empty for now.
	* (AC_INIT): 2.3b -> 2.3b+.

2008-05-27  Joel E. Denny  <>

	* NEWS (2.3b): Update release date since there has been a delay in
	getting the announcements and tarballs out.

2008-05-23  Joel E. Denny  <>

	* NEWS: Version 2.3b.
	* (AC_INIT): Likewise.
	(PACKAGE_COPYRIGHT_YEAR): Update to 2008.

2008-05-23  Joel E. Denny  <>

	* HACKING: Don't say don't mention HACKING in the ChangeLog.  We've
	been doing it for years.
	(Test suite): Mention maintainer-push-check and maintainer-xml-check.
	(Release Procedure): Add FIXME about make alpha being unmaintained.

2008-05-13  Joel E. Denny  <>

	* data/yacc.c: Reformat m4 a little for readability.
	* src/lalr.c (build_relations): Correct comment.

2008-05-12  Juan Manuel Guerrero  <>

	DJGPP specific issue.
	* djgpp/config.sed: Fixes required to run configure scripts generated
	by autoconf 2.62.

2008-05-07  Joel E. Denny  <>

	* HACKING (Release Procedure): is now

2008-05-06  Joel E. Denny  <>

	* THANKS: Add Eric Blake.

2008-04-23  Eric Blake  <>

	Revert prior patch, by working around autoconf regression.
	* tests/ (m4_expand): Add workaround for autoconf 2.62.
	("Output file name: ("): Uncomment test.
	("Output file name: )"): Likewise.
	Based on an idea from Noah Misch.

2008-04-21  Joel E. Denny  <>

	Work-around an Autoconf 2.62 AT_SETUP bug that was not present in
	2.61.  Reported by Juan Manuel Guerrero at
	* tests/ ("Output file name: ("): Comment out test case for
	("Output file name: )"): Likewise.

2008-04-21  Joel E. Denny  <>

	* GNUmakefile: Update git-version-gen invocation so make dist

2008-04-21  Joel E. Denny  <>

	Update to the current gnulib CVS repository, and fix trigraph handling
	in Bison.
	* bootstrap: Update gnulib CVS repository URL.
	(symlink_to_dir): Encapsulate the code that guarantees the destination
	directory exists into...
	(check_dst_dir): ... this new function, and...
	(cp_mark_as_generated): ... reuse it here so that bootstrap doesn't
	fail when copying files into lib/uniwidth/.
	* src/output.c (prepare_symbols): When writing yytname muscles, where
	symbol names will be encoded in C-string literals, tell quotearg to
	escape trigraphs.  This used to be the default in gnulib.
	* tests/ (Token definitions): Because of the change in
	gnulib's quotearg behavior, string_as_id in parse-gram.y no longer
	escapes trigraphs in symbol names.  Thus, yytname no longer has
	trigraphs unnecessarily doubly escaped.  Update test case output.
	Extend test case to be sure Bison's own error messages will no longer
	have trigraphs in symbol names unnecessarily escaped once.

2008-04-20  Joel E. Denny  <>

	Fix make dist infinite loop reported by Juan Manuel Guerrero at
	* .cvsignore: Add .version.
	* New.
	* bootstrap.conf (gnulib_modules): Add git-version-gen.
	* (AC_CONFIG_FILES): Add .version.
	* build-aux/.cvsignore: Add git-version-gen.

2008-03-08  Joel E. Denny  <>

	* NEWS (2.3a+): Mention that -g now takes an argument.
	* doc/bison.texinfo (Bison Options): Reword -W entry a little for
	consistency.  Update the -g and -x entries now that they take
	arguments.  Use brackets to indicate optional arguments.
	* src/getargs.c (usage): Explain the relationship between arguments of
	long and short options more completely.  Document --defines and -d
	separately since the former takes an argument but, for POSIX Yacc, the
	latter does not.
	(short_options): Let -W take an optional argument like --warnings.
	(getargs): Sort cases.

2008-02-28  Akim Demaille  <>

	* doc/bison.texinfo: Fix a few typos.

2008-02-28  Akim Demaille  <>

	* doc/bison.texinfo (Bison Options): Document -W.
	Based on Joel E. Denny's NEWS entry, and Automake's documentation.

2008-02-28  Akim Demaille  <>

	* src/getargs.c (short_options): Split and sort for readability.
	-g and -x take optional arguments, just like their long options.
	* build-aux/ Use /x to make the regexp easier to
	Fix the handling of $opt which resulted in all the argument to be
	considered as optional.

2008-02-22  Joel E. Denny  <>

	* NEWS (2.3a+): Don't say %language is experimental.  Mention Java and
	say its interface is experimental.
	* doc/bison.texinfo (Decl Summary): In the %language entry, mention
	(Bison Options): In the -L and --language entry, mention Java.
	(Java Bison Interface): Say the interface is experimental.
	* src/getargs.c (usage): Mention -L and --language.

	* NEWS (2.3a+): Say the push parsing interface is experimental.
	* doc/bison.texinfo (Push Decl): Likewise.
	(Decl Summary): Likewise in the "%define api.push_pull" entry.
	(Push Parser Function): Likewise.
	(Pull Parser Function): Likewise.
	(Parser Create Function): Likewise.
	(Parser Delete Function): Likewise.
	(Table of Symbols): Likewise in the yypstate_delete, yypstate_new,
	yypull_parse, and yypush_parse entries.

	* NEWS (2.3a+): Mention XML support, and say the schema is
	* doc/bison.texinfo (Bison Options): Mention -x and --xml.
	* src/getargs.c (usage): Say the XML schema is experimental.

	* NEWS (2.3a+): Say option instead of flag.

2008-02-21  Wojciech Polak  <>

	* data/xslt/xml2xhtml.xsl (xsl:template match="/"): Change footer

2008-02-20  Joel E. Denny  <>

	Fix impure push parser compile error reported by Bob Rossi at
	* data/yacc.c: Clean up whitespace in the output a little.
	(yypstate_allocated): Define for impure push parsers regardless of
	whether the pull interface is also requested.
	* tests/ (Push Parsing: Multiple impure instances): Extend to
	check impure push parsers without the pull interface.

	* data/yacc.c (yypstate_new): Don't try to invoke yyerror since
	yyerror takes arguments specified by %parse-param while yypstate_new
	does not.
	* doc/bison.texinfo (Parser Create Function): Document that
	yypstate_new returns 0 for multiple impure parser instances.
	* tests/ (Push Parsing: Multiple impure instances): Update
	expected stderr output.

2008-02-19  Joel E. Denny  <>

	* runtime-po/ (push.c): Remove.

2008-02-17  Joel E. Denny  <>

	* data/ (dist_pkgdata_DATA): Remove push.c.
	* data/push.c: Rename to...
	* data/yacc.c: ... this, overwriting it.
	* etc/ (bench_grammar): `%pure-parser'-> `%define api.pure'.
	`%push-pull-parser' -> `%define api.push_pull "both"'.
	Remove old yacc.c tests, and update push.c tests to yacc.c.

2008-02-17  Joel E. Denny  <>

	* data/bison.m4 (b4_percent_code_get): Output %code block comments like
	`"%code top" blocks' instead of `%code "top" blocks'.
	* data/push.c: Import yacc.c changes from 2008-01-09 and 2007-08-03.
	Clean up whitespace in the output a little.

2008-02-16  Joel E. Denny  <>

	Fix documentation problems reported by Tim Josling at
	* NEWS (2.3a+): Mention removal of --no-parser, -n, and %no-parser.
	* doc/bison.texinfo (Token Decl): Token numbers are *nonnegative*
	integers.  Explain the effect of literal string aliases on error
	messages.  Copy token 0 documentation from the C++ skeleton

2008-02-16  Joel E. Denny  <>

	Accept a token number in a %left, %right, or %nonassoc for POSIX
	conformance.  Reported by Tim Josling at
	* NEWS (2.3a+): Mention.
	* doc/bison.texinfo (Precedence Decl): Describe how literal strings
	and code numbers are treated by precedence declarations.
	* src/parse-gram.y (precedence_declaration): Use symbols.prec instead
	of symbols.1.
	(symbols.prec): New, just like symbols.1 but uses symbol.prec instead
	of symbol.
	(symbol.prec): New, just like symbol but allows INT.
	* src/symtab.c (symbol_user_token_number_set): Remove an aver that no
	longer holds.
	* tests/ (Token number in precedence declaration): New
	test case.

2008-02-06  Juan Manuel Guerrero  <>

	DJGPP specific issues.
	* djgpp/config.bat: Add filenames that are not 8.3 clean and that must
	be changed.  Copyright timestamp adjusted.
	* djgpp/config.sed: Add filenames that are not 8.3 clean and that must
	be changed.  Copyright timestamp adjusted.
	* djgpp/ Copyright timestamp adjusted.
	* djgpp/config_h.sed: Copyright timestamp adjusted.
	* djgpp/djunpack.bat: Copyright timestamp adjusted.
	* djgpp/fnchnage.lst: Add filenames that are not 8.3 clean to the
	filename translation list.
	* djgpp/subpipe.c (init_subpipe): Check the environment variables
	TMPDIR, TMP and TEMP, in that order, to determinate where the temp
	files shall be created.  Before trying to use the temp dir where the
	environment variable points to check that the dir really exists. If
	not default to the cwd as temp dir.  Copyright timestamp adjusted.
	* djgpp/subpipe.h: Copyright timestamp adjusted.
	* djgpp/testsuite.sed: Copyright timestamp adjusted.

2008-01-30  Paul Eggert  <>

	* doc/bison.texinfo: Update Back-Cover text to reflect new GNU wording.

2008-01-09  Paul Eggert  <>

	* data/yacc.c (yyparse): Correct the comment when locations aren't used.
	Problem reported by Claudio Saavedra in

2008-01-05  Wojciech Polak  <>

	* data/xslt/xml2xhtml.xsl (xsl:template match="/"): Precede an XHTML
	document's title with the input grammar file name.

2007-12-22  Joel E. Denny  <>

	Automate regression testing of the XML/XSLT implementation.  Discussed
	starting at
	* (XSLTPROC): New substitution.
	* (maintainer-xml-check): New phony target invoking...
	* tests/ (maintainer-xml-check): ... this new phony target
	invoking make maintainer-check with BISON_TEST_XML=1.
	* tests/ (XSLTPROC): New.
	* tests/ (AT_BISON_CHECK): New macro to (1) instruct Valgrind
	not to report reachable memory when Bison is expected to have a
	non-zero exit status and (2) to compare XML/XSLT output with --graph
	and --report=all output for every working grammar when
	(AT_BISON_CHECK_NO_XML): Likewise, but skip XML checks.
	* tests/ (ORIGINAL_AT_CHECK): Remove this and...
	(AT_CHECK): ... don't redefine this since this was the old way to
	quell Valgrind.
	* tests/ Rewrite all AT_CHECK invocations for bison as
	AT_BISON_CHECK invocations.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	* tests/ Likewise.
	(Big triangle): Use AT_BISON_CHECK_NO_XML instead since this grammar
	tends to hang xsltproc.
	(Big horizontal): Likewise.

2007-12-08  Joel E. Denny  <>

	In XML output, remove redundant class attribute on symbol element.
	* data/xslt/bison.xsl (xsl:key name="bison:symbolByName"): New.
	* data/xslt/xml2xhtml.xsl (xsl:template match="symbol"): Use it to
	look up a symbol to determine whether it's a nonterminal or terminal.
	* src/gram.c (rule_rhs_print_xml): Remove class attribute.
	* src/state.c (state_rule_lookahead_tokens_print_xml): Likewise.

	Add prec/assoc information to XML output.
	* src/gram.c (grammar_rules_print_xml): For each rule that has a
	%prec, add a percent_prec attribute.
	* src/print-xml.c (print_grammar): For each terminal that has a
	precedence or associativity, add a prec or assoc attribute.
	(xml_indent): New.
	(xml_puts): Use xml_indent.
	(xml_printf): Use xml_indent.
	* src/print-xml.h (xml_indent): Prototype.

	* tests/ (GNU pic Grammar): Fix a rule miscopied from

2007-12-08  Joel E. Denny  <>

	* data/xslt/bison.xsl (bison:ruleNumber): Rename to...
	(bison:ruleByNumber): ... this for clarity.
	* data/xslt/xml2dot.xsl (xsl:template match="item"): Update.
	* data/xslt/xml2text.xsl (xsl:template match="item"): Update.
	(xsl:template match="reduction"): Update.
	(xsl:template match="item"): Update.
	(xsl:template match="reduction"): Update.

	In the XML output, don't print the list of rules where symbols appear.
	Compute it in XSLT instead.  Discussed at
	* data/xslt/bison.xsl (bison:ruleByLhs): New.
	(bison:ruleByRhs): New.
	* data/xslt/xml2text.xsl (xsl:template match="terminal"): Use
	(xsl:template match="terminal/rule"): Remove.
	(xsl:template match="nonterminal"): Use bison:ruleByLhs and
	(xsl:template match="nonterminal/left/rule|nonterminal/right/rule"):
	* data/xslt/xml2xhtml.xsl (xsl:template match="terminal"): Use
	bison:ruleByRhs and mode="number-link" for rule template.
	(xsl:template match="terminal/rule"): Remove.
	(xsl:template match="nonterminal"): Use bison:ruleByLhs and
	bison:ruleByRhs and mode="number-link" for rule template.
	(xsl:template match="nonterminal/left/rule|nonterminal/right/rule"):
	Rewrite as...
	(xsl:template match="rule" mode="number-link"): ... this.
	* src/print-xml.c (print_grammar): Don't print the list of rules.

2007-12-01  Joel E. Denny  <>

	Don't let --report affect XML output; always print all information.
	Discussed at
	* src/conflicts.c (log_resolution): Implement.
	* src/print-xml.c (print_core): Implement.
	(print_state): Implement.
	(print_xml): Implement.

	* NEWS (2.3a+): Fix quotes.
	* src/parse-gram.y (prologue_declaration): For consistency with -v,
	don't let %verbose clear the list specified by --report.

2007-11-26  Akim Demaille  <>

	* data/ (dist_pkgdata_DATA): Ship and install bison.xsl.

2007-11-24  Joel E. Denny  <>

	In the XML output, list useless and unused symbols and rules with the
	useful ones and add a "usefulness" attribute.  Discussed starting at
	* src/gram.c (grammar_rules_partial_print_xml): Remove.
	(grammar_rules_print_xml): Print all rules instead of just those
	useful in the grammar, and add a "usefulness" attribute.
	* src/gram.h (grammar_rules_partial_print_xml): Remove prototype.
	* src/print-xml.c (print_rules_useless_in_parser): Remove.
	(print_grammar): Print all nonterminals instead of just useful ones,
	and add a "usefulness" attribute to nonterminals and terminals.
	(print_xml): Don't print a separate "reductions" or
	"rules-useless-in-parser" element.
	* src/reduce.c (reduce_output): Use reduce_token_unused_in_grammar.
	(reduce_xml): Remove.
	(reduce_token_unused_in_grammar): New.
	(reduce_nonterminal_useless_in_grammar): New.
	* src/reduce.h (reduce_xml): Remove prototype.
	(reduce_token_unused_in_grammar): Add prototype.
	(reduce_nonterminal_useless_in_grammar): Add prototype.
	* data/xslt/xml2text.xsl: Update for XML changes.
	* data/xslt/xml2xhtml.xsl: Update for XML changes.
	* tests/ (Useless Terminals): Update output.
	(Useless Rules): Update output.
	(Reduced Automaton): Update output.

	Say "Terminals unused in grammar" instead of "Unused terminals".
	* NEWS (2.3a+): Update.
	* doc/bison.texinfo (Understanding): Update example output.
	* src/reduce.c (reduce_output): Implement.
	* data/xslt/xml2text.xsl: Implement.
	* data/xslt/xml2xhtml.xsl: Implement.

2007-11-18  Joel E. Denny  <>

	Accept --report-file=FILE to override the default `.output' filename.
	* NEWS (2.3a+): Mention.
	* doc/bison.texinfo (Bison Options): Add an entry.
	* src/files.c (compute_output_file_names): Don't override
	spec_verbose_file if already set.
	* src/getargs.c (usage): Document --report-file.
	(REPORT_FILE_OPTION): New anonymous enum member.
	(long_options): Add entry for it.
	(getargs): Add case for it setting spec_verbose_file.

	* build-aux/ Don't record a short option just because
	there's an arg.
	* doc/.cvsignore: Add yacc.1.

2007-11-14  Akim Demaille  <>

	* doc/ New.
	*, doc/ Adjust.
	* (PACKAGE_COPYRIGHT_YEAR): New substitution, and new
	config.h symbol.
	Use AC_SUBST for assignments too.
	* src/getargs.c (version): Use PACKAGE_COPYRIGHT_YEAR.

2007-11-10  Joel E. Denny  <>

	* src/gram.c: Remove comments that duplicate comments in gram.h.

	When reporting useless rules and nonterminals, say "useless in grammar"
	instead of "useless", and say "useless in parser" instead of "never
	reduced".  Discussed starting at
	* NEWS (2.3a+): Mention this change.
	* data/xslt/xml2text.xsl: Update output text and expected input XML
	element names to match changes below.
	* data/xslt/xml2xhtml.xsl: Likewise.
	(xsl:template match="bison-xml-report"): Add missing entry in Table of
	Contents: "Rules useless in parser due to conflicts".
	* doc/bison.texinfo (Decl Summary): Reword a little.
	(Understanding): Update example output for changes below.
	* src/gram.c: (rule_useful_p): Rename to...
	(rule_useful_in_grammar_p): ... this.
	(rule_useless_p): Rename to...
	(rule_useless_in_grammar_p): ... this.
	(rule_never_reduced_p): Rename to...
	(rule_useless_in_parser_p): ... this.
	(grammar_rules_print): Update for renames.
	(grammar_rules_print_xml): Update for renames.
	(grammar_rules_never_reduced_report): Rename to...
	(grammar_rules_useless_report): ... this since it is used for either
	kind of useless rule.
	* src/gram.h: Reword comments and update function names in prototypes.
	* src/main.c (main): Say "rule useless in parser due to conflicts".
	* src/print-xml.c (print_rules_never_reduced): Rename to...
	(print_rules_useless_in_parser): ... this, and rename output XML
	element "rules-never-reduced" to "rules-useless-in-parser".
	(print_xml): Update for rename.
	* src/print.c (print_results): Say "Rules useless in parser due to
	* src/reduce.c (reduce_grammar_tables): Say "rule useless in grammar".
	(nonterminals_reduce): Say "nonterminal useless in grammar".
	(reduce_output): Say "Nonterminals useless in grammar".
	Say "Rules useless in grammar".
	(reduce_xml): Rename output XML element "useless" to
	(reduce_print): Don't report the count of grammatically useless rules
	as "rules never reduced" just because %yacc is specified.
	In the correct report of this count, say nonterminal(s) and rule(s)
	"useless in grammar".
	* tests/ (S/R in initial): Update expected output.
	(Defaulted Conflicted Reduction): Likewise.
	(Unreachable States After Conflict Resolution): Likewise.
	* tests/ (GNU pic Grammar): Likewise.
	* tests/ (Useless Nonterminals): Likewise.
	(Useless Rules): Likewise.
	(Reduced Automaton): Likewise.
	(Underivable Rules): Likewise.
	(Empty Language): Likewise.

2007-11-09  Joel E. Denny  <>

	* data/bison.m4 (b4_cat): Put a newline after the end delimiter of the
	here document and before the EOF so that BSD's implementation of Bourne
	shell doesn't parse the delimiter as part of the here document.
	* doc/.cvsignore: Add cross-options.texi.
	* src/getargs.c (usage): Add a blank line after the warning categories.

2007-11-08  Paolo Bonzini  <>

	* data/ (Lexer): Remove usage of b4_pure_if.

2007-11-05  Akim Demaille  <>

	Remove Id: from bison.1.
	* doc/ (remove_time_stamp): Include the sed invocation.
	(perl -0777 -pi -e 's/\.PP\nId): New.
	(.x.1): Use it to ignore the version control revision.

2007-11-05  Akim Demaille  <>

	* build-aux/ Ship
	* doc/ Always refer to cross-options.texi with

2007-11-04  Akim Demaille  <>

	Generate the long/short option cross-table.
	* build-aux/ New.
	* doc/ (cross-options.texi): New.
	* doc/bison.texinfo: Use it.

2007-11-04  Akim Demaille  <>

	Generate bison.1 using help2man.
	* doc/common.x, doc/bison.x: New.
	* doc/ (bison.1, .x.1): New.
	The code is taken from autoconf-2.61/man/
	* Look for help2man.

2007-11-04  Akim Demaille  <>

	Complete --help.
	* src/getargs.c (usage): Document -W, make it clear that -d,
	-g and -x have optional arguments.

2007-11-04  Akim Demaille  <>

	Find sha1sum when named gsha1sum.
	* bootstrap (find_tool): New.
	($SHA1SUM): New.

2007-10-28  Joel E. Denny  <>

	Deprecate %pure-parser and add `%define api.pure'.  Discussed starting
	* NEWS (2.3a+): Mention.
	* data/bison.m4 (b4_pure_if): Don't define it here.
	* data/c.m4 (b4_identification): Depend on individual skeletons to
	define b4_pure_flag, b4_push_flag, or b4_pull_flag if they use the
	values of the %define variables api.pure or api.push_pull.  Define
	YYPURE, YYPUSH, and YYPULL accordingly.
	* data/glr.c: Define b4_pure_if based on `%define api.pure' unless has already defined b4_pure_flag.
	* data/push.c: Define b4_pure_if based on `%define api.pure'.
	Remove YYPUSH and YYPULL since they're back in b4_identification again.
	* data/yacc.c: Define b4_pure_if based on `%define api.pure'.
	* doc/bison.texinfo (Pure Decl): Update.
	(Push Decl): Update.
	(Decl Summary): Add api.pure to %define entry.
	In %pure-parser entry, say it's deprecated and reference %define.
	(Pure Calling): Update.
	(Error Reporting): Update.
	(C++ Scanner Interface): Update.
	(How Can I Reset the Parser): Update.
	(Table of Symbols): In %pure-parser entry, say it's deprecated and
	reference %define.
	* src/getargs.c (pure_parser): Remove global variable.
	* src/getargs.h (pure_parser): Remove extern.
	* src/output.c (prepare): Don't define pure_flag muscle.
	* src/parse-gram.y (prologue_declaration): Implement %pure-parser as a
	wrapper around `%define api.pure'.
	* tests/ (Simple LALR Calculator): Update.
	(Simple GLR Calculator): Update.
	* tests/ (GLR: Resolve ambiguity, pure, no locations):
	(GLR: Resolve ambiguity, pure, locations): Update.
	(GLR: Merge conflicting parses, pure, no locations): Update.
	(GLR: Merge conflicting parses, pure, locations): Update.
	* tests/ (Uninitialized location when reporting
	ambiguity): Update
	* tests/ (Unused %define api.pure): New test case.
	* tests/ (_AT_BISON_OPTION_PUSHDEFS): Update definition for
	* tests/ (Push Parsing: Memory Leak for Early Deletion): Update.

2007-10-28  Joel E. Denny  <>

	%define push_pull -> %define api.push_pull.  Discussed starting at
	* data/push.c: Expect the new name.
	* data/yacc.c: Likewise.
	* doc/bison.texinfo (Push Decl): Update.
	(Decl Summary): Update %define entry.
	(Push Parser Function): Update.
	(Pull Parser Function): Update.
	(Parser Create Function): Update.
	(Parser Delete Function): Update.
	* tests/ (Simple LALR Calculator): Update.
	* tests/ (%define enum variables): Update.
	* tests/ (Push Parsing: Memory Leak for Early Deletion): Update.
	(Push Parsing: Multiple impure instances): Update.
	(Push Parsing: Unsupported Skeletons): Update.
	* tests/ (Exploding the Stack Size with Alloca): Update.
	(Exploding the Stack Size with Malloc): Update.

	* NEWS (2.3a+): Add an entry for the push parser, and clean up the
	other entries some.

2007-10-27  Joel E. Denny  <>

	For the XML output's terminal element, rename @number to @token-number,
	and add @symbol-number.  In the nonterminal element, rename @number to
	@symbol-number.  Discussed starting at
	* data/xslt/xml2text.xsl (xsl:template match="terminal"): Update for
	(xsl:template match="nonterminal"): Likewise.
	* data/xslt/xml2xhtml.xsl (xsl:template match="terminal"): Likewise.
	(xsl:template match="nonterminal"): Likewise.
	* src/print-xml.c (print_grammar): Implement.

2007-10-21  Joel E. Denny  <>

	* data/xslt/xml2dot.xsl (xsl:template match="automaton/state"): After
	2007-10-11 change, the child elements here are items not rules.
	(xsl:template match="item"): New.
	(xsl:template match="rule"): Update for new reduced itemset.
	(xsl:template match="point"): Remove.
	(xsl:template match="empty"): For consistency with --graph, don't
	output "/* empty */".
	* data/xslt/xml2text.xsl (xsl:template match="terminal"): When invoking
	line-wrap, don't pass a negative value as first-line-length since this
	won't work with the following changes.
	(xsl:template name="line-wrap"): Simplify slightly.
	(xsl:template name="ws-search"): Eliminate recursion.
	* src/print_graph.c (print_core): Don't print a reduction's lookahead
	set next to an item whose dot is not at the end of the RHS even if it
	happens to be associated with the same rule.

2007-10-19  Joel E. Denny  <>

	Add %define lr.keep_unreachable_states.
	* NEWS (2.3a+): Mention it in the entry for unreachable state removal.
	* doc/bison.texinfo (Decl Summary): Mention it in the %define entry.
	* src/main.c (main): Implement it.
	* tests/ (Unreachable States After Conflict Resolution):
	Extend to test it, and fix a typo.

2007-10-19  Joel E. Denny  <>

	* NEWS (2.3a+): Add entry for recent .output file lookahead set fix.
	* doc/bison.texinfo (Understanding): Remove a bogus lookahead set in
	the example .output text.
	* tests/ (Extra lookahead sets in report): Improve wording
	of comments.

2007-10-17  Wojciech Polak  <>

	* src/print-xml.c (print_grammar): Renamed
	<terminal> and <nonterminal> attributes:
	"type" to "number" and "symbol" to "name".
	* data/xslt/xml2text.xsl (xsl:template match="terminal"):
	Use new attribute names.
	(xsl:template match="nonterminal"): Likewise.
	* data/xslt/xml2xhtml.xsl: Likewise.

2007-10-17  Joel E. Denny  <>

	* doc/bison.texinfo (Bison Options): Add entry for --print-datadir.
	(Option Cross Key): Likewise.

	* src/print-xml.c (print_core): Don't print a reduction's lookahead set
	next to an item whose dot is not at the end of the RHS even if it
	happens to be associated with the same rule.
	* src/print.c (print_core): Likewise.
	* tests/ (Unresolved SR Conflicts): Update output.
	(Resolved SR Conflicts): Update output.
	* tests/ (Extra lookahead sets in report): New test case.

2007-10-11  Wojciech Polak  <>

	* src/print-xml.c (print_core): Remove item set
	* data/xslt/bison.xsl (bison:ruleNumber): New key.
	Improve processing time. Suggested by Joel E. Denny.
	* data/xslt/xml2dot.xsl (xsl:template name="escape"):
	Write xsl:param "required" attribute as comment.
	* data/xslt/xml2text.xsl (xsl:template match="item"): New.
	(xsl:template match="rule"): Support new reduced itemset.
	(xsl:template match="point"): Remove.
	* data/xslt/xml2xhtml.xsl: Likewise.

2007-10-09  Joel E. Denny  <>

	* src/getargs.c (version): Update copyright year.

2007-10-09  Joel E. Denny  <>

	Make xml2dot.xsl and --graph produce the same output.
	* data/xslt/xml2dot.xsl (xsl:template match="rule"): Use a `
	instead of a `\n'.  That is, don't add escapes yet or they'll be doubly
	escaped later.
	(xsl:template name="output-node"): Use the new escape template instead
	of the string-replace template directly.
	(xsl:template name="output-edge"): Likewise.
	(xsl:template name="escape"): New, escapes backslashes and newlines in
	addition to quotation marks.
	* src/graphviz.c (start_graph, output_node, output_edge): Add
	whitespace to output for legibility.

	Make xml2text.xsl and --report produce the same output, and remove the
	XML "conflicts" element since a conflict summary is easily extracted
	from the automaton.
	* data/xslt/bison.xsl: New.
	(xsl:template match="state" mode="bison:count-conflicts): New.
	* data/xslt/xml2text.xsl: Import bison.xsl.
	(xsl:template match="bison-xml-report"): Instead of styling the
	"conflicts" element, style the "automaton" element with mode
	"conflicts".  Unlike the former, the latter lists S/R and R/R
	conflicts for a state on the same line.
	(xsl:template match="conflicts"): Remove.
	(xsl:template match="conflict"): Remove.
	(xsl:template match="terminal"): Line-wrap the list of rules in which
	the terminal is used.
	(xsl:template match="nonterminal"): Likewise for nonterminals.
	(xsl:template match="automaton" mode="conflicts"): New.
	(xsl:template match="state" mode="conflicts"): New.
	(xsl:template name="line-wrap"): New.
	(xsl:template name="ws-search"): New.
	* data/xslt/xml2xhtml.xsl: Import bison.xsl.
	(xsl:template match="bison-xml-report"): Instead of styling the
	"conflicts" element, style the "automaton" element with mode
	(xsl:template match="conflicts"): Remove.
	(xsl:template match="conflict"): Remove.
	(xsl:template match="automaton" mode="conflicts"): New.
	(xsl:template match="state" mode="conflicts): New.
	* src/conflicts.c (conflicts_output_xml): Remove.
	* src/conflicts.h (conflicts_output_xml): Remove prototype.
	* src/print-xml.c (print_xml): Don't invoke conflicts_output_xml.
	* src/print.c (print_grammar): Consistently wrap at the 66th column so
	the corresponding XSLT is easier.  Also, never wrap between a word and
	the comma that follows it.

2007-10-08  Joel E. Denny  <>

	Improve C++ namespace support.  Discussed starting at
	* data/c++.m4: (b4_namespace_ref, b4_namespace_open,
	b4_namespace_close): New macros that interpret the %define variable
	"namespace" so its value can contain "::" to indicate nested
	* data/ (b4_namespace): Don't define, and replace all uses with
	the above macros.
	* data/ (b4_namespace): Likewise.
	* data/ (b4_namespace): Likewise.
	* doc/bison.texinfo (Decl Summary): Move `%define push_pull' entry
	inside a new table in the general %define entry.  Document `%define
	namespace' there as well.  Point the %name-prefix entry to it since it
	explains it more completely in the case of C++.
	(C++ Bison Interface): Mention `%define namespace' instead of
	(Table of Symbols): Remove the `%define push_pull' entry.  The %define
	entry suffices.
	* tests/ (Relative namespace references): New test case.
	(Absolute namespace references): New test case.
	(Syntactically invalid namespace references): New test case.
	* tests/ (C++ namespace reference errors): New test case.

2007-10-08  Joel E. Denny  <>

	Add syncline support and location accessor to internal %define
	* data/bison.m4 (b4_percent_define_get_loc): New.
	(b4_percent_define_get_syncline): New.
	(b4_percent_define_flag_if): Use b4_percent_define_get_loc.
	(b4_percent_define_default): Record defining location as line 1 rather
	than 0 for the sake of synchronizing #line's, and define
	(b4_percent_define_check_values): Use b4_percent_define_get_loc.
	* src/muscle_tab.c (muscle_syncline_grow): New.
	(muscle_code_grow): Use muscle_syncline_grow.
	(muscle_percent_define_insert): Use muscle_percent_define_get_loc, and
	define b4_percent_define_syncline(VARIABLE).
	(muscle_percent_define_get_loc): New.
	(muscle_percent_define_get_syncline): New.
	(muscle_percent_define_flag_if): Use muscle_percent_define_get_loc, and
	remove some unused variables.
	(muscle_percent_define_default): Record defining location as line 1
	rather than 0 for the sake of synchronizing #line's, and define
	(muscle_percent_define_check_values): Use
	* src/muscle_tab.h (muscle_percent_define_get_loc): Prototype.
	(muscle_percent_define_get_syncline): Prototype.
	* tests/ (%define Boolean variables: invalid skeleton
	defaults): Update output for location change.
	(Complaining during macro argument expansion): Extend to test
	b4_percent_define_get_loc and b4_percent_define_get_syncline errors.

2007-10-07  Joel E. Denny  <>

	Fix some error-reporting macro bugs.
	* data/bison.m4 (b4_cat): New.
	(b4_error, b4_error_at): Use b4_cat to send error directives directly
	to stdout so they don't become arguments to other macros.  Update
	comments and add examples.
	(b4_warn, b4_warn_at, b4_complain, b4_complain_at): Update comments and
	add examples.
	(b4_fatal, b4_fatal_at): Likewise, and invoke m4_exit(1) immediately
	after printing the error directive so that M4 doesn't report subsequent
	problems that are induced by this problem.
	* src/scan-skel.l: Recognize @` digraph outside of directive arguments
	instead of just in them.  Recognize @\n in both places.  Both expand to
	the empty string.  Needed by b4_cat.
	* tests/ (Complaining during macro argument expansion):
	New test case.
	(Fatal errors make M4 exit immediately): New test case.

2007-10-04  Joel E. Denny  <>

	Implement --print-datadir.
	* src/getargs.c (usage): Mention.
	(PRINT_DATADIR_OPTION): New anonymous enum member.
	(long_options): Add entry for it.
	(getargs): Add case for it calling compute_pkgdatadir.
	* src/output.c (output_skeleton): Encapsulate data directory
	computation from here...
	(prepare): ... and from here...
	(compute_pkgdatadir): ... into this new function.
	* src/output.h (compute_pkgdatadir): Prototype.

2007-09-29  Joel E. Denny  <>

	* src/print-xml.c (escape_bufs): New static global variable
	(xml_escape_n): ... the static local variable buf here.
	(print_xml): Free memory for escape_bufs.
	* src/reduce.c (reduce_xml): XML-escape terminal symbol tags.

2007-09-25  Joel E. Denny  <>

	Replace `%push-parser' and `%push-pull-parser' with
	`%define push_pull "push"' and `%define push_pull "both"'.
	`%define push_pull "pull"' is the default.
	* doc/bison.texinfo (Push Decl, Push Parser Function,
	Pull Parser Function, Parser Create Function, Parser Delete Function):
	Update declarations.
	(Decl Summary, Table of Symbols): Replace %push-parser and
	%push-pull-parser entries with a %define push_pull entry.
	* data/bison.m4 (b4_percent_define_check_values): New macro.
	(b4_pull_if, b4_push_if, b4_use_push_for_pull_if): Move these
	* data/c.m4 (b4_identification): ... and the YYPUSH and YYPULL cpp
	* data/push.c: ... to here and compute them from the value of the
	%define variable push_pull.
	* data/c-skel.m4: Instead of choosing the push.c skeleton for push
	parsing requests here...
	* data/yacc.c: ... hack this to switch to push.c any time
	b4_use_push_pull_flag or the %define variable push_pull is set.  This
	will go away when we mv push.c yacc.c.
	* data/c++-skel.m4, data/glr.c, data/java-skel.m4: Don't report that
	push parsing is not supported since unused %define variables are
	reported anyway.
	* src/getargs.c, src/getargs.h (pull_parser, push_parser): Remove.
	* src/muscle_tab.h (muscle_percent_define_check_values): Update
	comments for consistency with b4_percent_define_check_values.
	* src/output.c (prepare): Don't insert b4_pull_flag and b4_push_flag
	(prologue_declaration): Remove %push-parser and %push-pull-parser
	* src/scan-gram.l (%push-parser, %push-pull-parser): Remove rules.
	* tests/ Update declarations.
	* tests/ (%define enum variables): New test case.
	* tests/ (Push Parsing: Memory Leak for Early Deletion): Update
	(Push Parsing: Multiple impure instances): Update declaration.
	(Push Parsing: Unsupported Skeletons): New test case.
	* tests/ (Exploding the Stack Size with Alloca): Update
	(Exploding the Stack Size with Malloc): Update declaration.

2007-09-24  Wojciech Polak  <>

	Add XSLT transformations.

	* data/xslt/xml2dot.xsl: Transform XML into DOT.
	* data/xslt/xml2text.xsl: Transform XML into plain text.
	* data/xslt/xml2xhtml.xsl: Transform XML into XHTML.
	* data/ (xsltdir): New variable.
	(dist_xslt_DATA): Add xslt/*.xsl files.

2007-09-23  Paul Eggert  <>

	* src/conflicts.c (log_resolution): Fix indenting bugs I introduced.
	Problem reported by Wojciech Polak.
	* src/print-xml.c (xml_puts): Work even if LEVEL exceeds INT_MAX/2.
	(xml_printf): Undo change I made on 21 September; that is,
	indent 2 spaces, not 1.

2007-09-23  Joel E. Denny  <>

	Pacify ./configure --enable-gcc-warnings.
	* src/print-xml.c, src/print-xml.h (xml_puts): Make third argument
	`char const *' instead of `char *'.
	* src/state.c (state_rule_lookahead_tokens_print_xml): Remove unused
	local variable `sep'.

2007-09-21  Paul Eggert  <>

	* src/gram.c (rule_rhs_print_xml): Now static, since it isn't used
	* src/print-xml.c: Prefer "const" after types; that's more consistent.
	(xml_printf): Indent just 1 space for level.
	(e_char, xlate_char): Remove.
	(xml_escape_string): Rewrite to avoid undefined behavior (used
	storage that was freed from the stack).
	(xml_escape_n): Don't bother checking for subscript error.

2007-09-21  Wojciech Polak  <>

	Add Bison XML Automaton Report.

	Add support for an -x option to generate an XML report.
	It is not documented yet.
	* src/print-xml.c: New file.
	* src/print-xml.h: Likewise.
	* lib/timevar.def (TV_XML): New var.
	* src/ (bison_SOURCES): Add print-xml.c, print-xml.h.
	* src/conflicts.c: Include print-xml.h.
	(solved_conflicts_xml_obstack): New var.
	(log_resolution, conflicts_solve, conflicts_free):
	Add support for XML report.
	(conflicts_output_val): New function.
	* src/conflicts.h (conflicts_output_val): New decl.
	* src/files.c (spec_xml_file): New var.
	(compute_output_file_names, output_file_names_free): Add XML support.
	* src/files.h (spec_xml_file): New decl.
	* src/getargs.c (xml_flag): New var.
	(usage, short_options, long_options, getargs): Add XML support.
	* src/getargs.h (xml_flag): New decl.
	* src/gram.c: Include print-xml.h.
	(rule_lhs_print_xml, rule_rhs_print_xml):
	(grammar_rules_partial_print_xml, grammar_rules_print_xml):
	New functions.
	* src/gram.h: Declare external ones.
	* src/main.c: Include print-xml.h.
	(main): Add XML support.
	* src/reduce.c: Include print-xml.h.
	(reduce_xml): New function.
	* src/reduce.h: Declare it.
	* src/state.c: Include print-xml.h.
	(state_new): Add XML support.
	(state_rule_lookahead_tokens_print_xml): New function.
	* src/state.h: Declare it.
	(struct state): New member solved_conflicts_xml.
	* src/symtab.c (symbol_class_get_string): New function.
	* src/symtab.h: Declare it.

2007-09-21  Paul Eggert  <>

	* GNUmakefile: Switch to coreutils's version.
	* bootstrap: Likewise.
	* Makefile.cfg: Adjust to new GNUmakefile.
	* README-hacking: Likewise.

	Import from gnulib:

	2006-08-18  Paul Eggert  <>
		    Bruno Haible  <>

	* m4/bison-i18n.m4 (BISON_I18N): Also handle the case where yacc exists
	and is a script that invokes bison. Tighten the code. Add comments.

2007-08-28  Joel E. Denny  <>

	Spell "boolean" as "Boolean".  Reported by Akim Demaille.
	* data/bison.m4 (b4_percent_define_flag_if): Fix complaint.
	* doc/bison.texinfo (Decl Summary): Fix.
	* src/muscle_tab.c (muscle_percent_define_flag_if): Fix complaint.
	* tests/ (Boolean %define variables): Update output.
	* tests/ (%define boolean variables: invalid skeleton
	defaults): Rename to...
	(%define Boolean variables: invalid skeleton defaults): ... this and
	update output.

2007-08-17  Joel E. Denny  <>

	In impure push mode, don't allow more than one yypstate to be allocated
	since multiple impure parsers would corrupt yynerrs.
	* data/push.c (yypstate_allocated): New static global variable
	initialized to 0.
	(yypull_parse): If yypstate_new returns 0, don't report it as memory
	exhaustion if yypstate_allocated is 1, but still return 2.
	(yypstate_new): Invoke yyerror and return 0 if yypstate_allocated is
	already 1.  Otherwise, set it to 1.
	(yypstate_delete): Set it to 0.
	* tests/ (Push Parsing: Multiple impure instances): New test

2007-08-17  Bob Rossi  <>

	* doc/bison.texinfo (Push Decl): Document the push parser.
	(Table of Symbols): Ditto.
	(Pure Decl): Ditto.
	(Decl Summary): Ditto.
	(Multiple Parsers, Push Parser Function, Pull Parser Function,
	Parser Create Function, Parser Delete Function):
	Add new push parser symbols.
	(Table of Symbols): Document push-parser, push-pull-parser,
	yypush_parse, yypull_parse, yypstate_new and yypstate_delete.

2007-08-15  Paul Eggert  <>

	Update to GPLv3.
	* doc/gpl-3.0.texi: New file.
	* doc/gpl.texi: Remove.
	* COPYING, GNUmakefile, HACKING,, Makefile.cfg:
	* Makefile.maint, NEWS, PACKAGING, README, README-alpha:
	* README-hacking, TODO, bootstrap, bootstrap.conf:
	*, data/, 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/push.c, data/yacc.c, data/m4sugar/m4sugar.m4:
	* djgpp/Makefile.maint, djgpp/, djgpp/config.bat:
	* djgpp/config.sed, djgpp/, djgpp/config_h.sed:
	* djgpp/djunpack.bat, djgpp/subpipe.c, djgpp/subpipe.h:
	* djgpp/testsuite.sed, doc/, doc/bison.texinfo:
	* doc/fdl.texi, doc/refcard.tex, etc/, etc/README:
	* etc/, examples/, examples/extexi:
	* examples/calc++/, lib/, 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/ebits
Results 1 - 1 of 1
Help - FTP Sites List - Software Dir.
Search over 15 billion files
© 1997-2017