X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/cb823b6f0c5d025e3667f994222037476c41ea1a..6c63b895fbfda2182e148a95aff855e303bdbc30:/ChangeLog

diff --git a/ChangeLog b/ChangeLog
index 4543fdd4..eee09ead 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,19 +1,490 @@
+2008-12-08  Akim Demaille  <demaille@gostai.com>
+
+	Install autoconf as a submodule to get m4sugar.
+	* .gitmodules: Add submodules/autoconf.
+	* data/m4sugar/foreach.m4, data/m4sugar/m4sugar.m4: Now links into
+	submodules/autoconf.
+
+2008-12-08  Akim Demaille  <demaille@gostai.com>
+
+	Test token.prefix in all the skeletons.
+	* data/java.m4 (b4_token_enum): Use the token.prefix.
+	* tests/local.at (AT_BISON_OPTION_PUSHDEFS): Define AT_TOKEN_PREFIX.
+	* tests/calc.at (_AT_DATA_CALC_Y): Use it.
+	Add checks for yacc.c, glr.c, lalr1.cc and glr.cc.
+	* tests/java.at: Comment changes.
+	(AT_CHECK_JAVA_MINIMAL): Define the END token.
+	(Java parser class and package names): Add token.prefix check.
+
+2008-12-08  Akim Demaille  <demaille@gostai.com>
+
+	Fix regeneration of atconfig.
+	* tests/local.mk (tests/atconfig): The rule was incorrect, but
+	remove it: now that there is no tests/Makefile.am, the top-level
+	Makefile properly updates atconfig when needed.
+
+2008-12-07  Di-an Jan  <dianj@freeshell.org>
+
+	Implement the FIXME that ends an user action with a semicolon
+	if it seems necessary.
+	* src/scan-code.l (flex rules section): Flag cpp directive from
+	any `#' to the first unescaped end-of-line.  Semicolon is not
+	needed after `;', `{', '}', or cpp directives and is needed after
+	any other token (whitespaces and comments have no effect).
+	* tests/actions.at (Fix user actions without a trailing semicolon):
+	New test.
+	* tests/input.at (AT_CHECK_UNUSED_VALUES): Add semicolons to
+	to make user actions complete statements.
+	Adjust column numbers in error messages.
+	* tests/regression.at (Fix user actions without a trailing semicolon):
+	Remove.  Covered by new test.
+
+2008-12-07  Akim Demaille  <demaille@gostai.com>
+
+	Update gnulib.
+	* gnulib: Update from master.
+
+2008-12-05  Eric Blake  <ebb9@byu.net>
+
+	Avoid compiler warning.
+	* src/output.c (muscle_insert_item_number_table): Delete unused
+	function.
+
+2008-12-02  Eric Blake  <ebb9@byu.net>
+
+	Build testsuite with newer autoconf.
+	* tests/output.at (m4_expand): Don't override in newer autoconf,
+	where the underlying implementation changed.
+	* tests/cxx-type.at (_AT_RESOLVED_GLR_OUTPUT)
+	(_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT)
+	(_AT_AMBIG_GLR_OUTPUT_WITH_LOC, _AT_GLR_STDERR)
+	(_AT_VERBOSE_GLR_STDERR): Expand to double-quoted strings,
+	since some of them contain unbalanced ')'.
+
+2008-12-01  Akim Demaille  <demaille@gostai.com>
+
+	Use b4_symbol for printers and destructors everywhere.
+	* data/bison.m4 (b4_symbol_action_location): New.
+	* data/c.m4 (b4_symbol_actions): Remove.
+	Adjust all callers to use by b4_symbol_foreach and the corresponding
+	b4_symbol_printer/destructor macro.
+	* data/glr.cc: Adjust.
+	* data/lalr1.java: Adjust the %destructor sanity check.
+	* src/output.c (symbol_code_props_output): Remove, we no longer
+	need the b4_symbol_printers/destructors tables.
+
+2008-12-01  Akim Demaille  <demaille@gostai.com>
+
+	Use b4_symbol_case_.
+	* data/lalr1.cc, data/bison.m4 (b4_symbol_action): Use
+	b4_symbol_case_.
+
+2008-12-01  Akim Demaille  <demaille@gostai.com>
+
+	Move b4_symbol based macro to bison.m4.
+	* data/lalr1.cc (b4_symbol_, b4_symbol, b4_symbol_if)
+	(b4_symbol_action, b4_symbol_destructor, b4_symbol_printer)
+	(b4_symbol_case_, b4_symbol_foreach, b4_type_action_)
+	(b4_type_foreach): Move to...
+	* data/bison.m4: Here.
+	* data/lalr1.cc (b4_symbol_action): Specialize for C++: use
+	b4_symbol_value_template instead of b4_symbol_value.
+
+2008-12-01  Akim Demaille  <demaille@gostai.com>
+
+	b4_symbol/type_foreach.
+	* data/lalr1.cc (b4_symbol_foreach, b4_type_foreach): New.
+	Use them.
+
+2008-12-01  Akim Demaille  <demaille@gostai.com>
+
+	Use the symbol properties to output the printer/destructor for lalr1.cc.
+	Instead of defining complex list of tuples to define various
+	properties of the symbols, we now prefer to define symbols as
+	"structs" in m4: using the symbol key (its number), and the
+	property name, b4_symbol gives it value.  Use this to handle
+	destructors and printers.
+
+	* src/output.c (CODE_PROP): New.
+	(prepare_symbol_definitions): Use it to define the printer and
+	destructor related attributes of the symbols.
+	* data/lalr1.cc (b4_symbol_actions): Rename as...
+	(b4_symbol_action): this.
+	Use b4_symbol instead of 6 arguments.
+	(b4_symbol_printer, b4_symbol_destructor): New.
+	Use them instead of b4_symbol_actions.
+
+2008-12-01  Akim Demaille  <demaille@gostai.com>
+
+	Avoid capturing variables too easily.
+	* src/muscle_tab.h (MUSCLE_INSERT_BOOL, MUSCLE_OBSTACK_SGROW): Use
+	v__ and p__ instead of v and p.
+
+2008-12-01  Akim Demaille  <demaille@gostai.com>
+
+	Remove spurious empty line before syncline.
+	* data/bison.m4 (b4_syncline): Don't output an empty line before
+	the output.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Convert lib/Makefile.am into lib/local.mk.
+	The real problem is rather gnulib.mk, which itself is extracted
+	from a Makefile.am that gnulib expects to the "recursive".  The
+	tool prefix-gnulib-mk converts such a gnulib.mk to be
+	non-recursive.  Also, some AC_SUBST variables need to be adjusted.
+
+	* etc/prefix-gnulib-mk: New.
+	* bootstrap (slurp): Use it to convert further gnulib.mk.
+	No longer try to avoid re-creation of lib/gnulib.mk as the changes
+	are deeper.
+	* lib/Makefile.am: Rename as...
+	* lib/local.mk: this.
+	Adjust to be prefixed.
+	* Makefile.am, configure.ac: Adjust.
+	* src/local.mk (AM_CPPFLAGS): Extend it, don't define it.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	s/_FLAGS/FLAGS/.
+	* tests/local.mk (TESTSUITE_FLAGS, AUTOTEST_FLAGS): Rename as...
+	(TESTSUITEFLAGS, AUTOTESTFLAGS): these to compy with the GCS.
+	Reported by Eric Blake.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Use b4_parser_tables_define in glr.cc.
+	* data/glr.c: Use b4_parser_tables_define instead of defining the
+	(deterministic integral) tables by hand.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Use b4_parser_tables_define in Java.
+	* data/java.m4 (b4_typed_parser_table): Rename as...
+	(b4_typed_parser_table_define): this, for consistency.
+	Accept a comment as $4.
+	Move $2 into yy*_.
+	(b4_integral_parser_table): Rename as...
+	(b4_integral_parser_table_define): this.
+	* data/lalr1.java: Adjust all uses.
+	Use b4_parser_tables_define instead of generation by hand.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Prepare the convergence bw C style and Java table generation.
+	* data/bison.m4 (b4_tables_map, b4_tables_declare)
+	(b4_tables_define): Rename as...
+	(b4_integral_parser_tables_map, b4_parser_tables_declare)
+	(b4_parser_tables_define): these.
+	* data/c.m4 (b4_table_define): Rename as...
+	(b4_integral_parser_table_define): this.
+	* data/lalr1.cc: Adjust.
+	(b4_table_define, b4_table_declare): Rename as...
+	(b4_integral_parser_table_define)
+	(b4_integral_parser_table_declare): these.
+	(yyrline_): Move the comment where it is actually used.
+	* data/yacc.c: Adjust.
+	(yyrline): Use b4_integral_parser_table_define.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Regen.
+	* src/parse-gram.h, src/parse-gram.c: Regen.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Factor the generation of the (integral) tables bw yacc.c and lalr1.cc.
+	* data/lalr1.cc (b4_tables_map): Move to...
+	* data/bison.m4: here.
+	Update the comment for yytable during the flight.
+	(b4_tables_declare, b4_tables_define): New.
+	* data/lalr1.cc: Use them.
+	* data/c.m4 (b4_table_define): New.
+	* data/yacc.c: Use b4_tables_define instead of output the tables
+	by hand.
+	* tests/regression.at (Web2c Actions): Adjust the expected output,
+	the order of the tables changed.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Get rid of (yy)rhs and (yy)prhs.
+	These tables are no longer needed in the parsers, and they don't seem to
+	be useful.  They are not documented either.
+
+	* src/output.c (prepare_rules): Get rid of rhs and prhs.
+	Adjust the computation of (yy)r2.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Rule length is unsigned.
+	* src/gram.h, src/gram.c (rule_rhs_length): Return a size_t.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Get rid of lalr1-split.cc.
+	It was no longer maintainer.
+
+	* data/lalr1-split.cc: Remove.
+	* etc/bench.pl.in (bench_fusion_parser): Remove.
+	Adjust.
+
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+	Use yy* consistently.
+	* data/glr.c: Now that yyrhs no longer exists as a global
+	variable, rename local "rhs" variables into "yyrhs" for
+	consistency.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	Get rid of yyrhs and yyprhs in glr.c.
+	* data/glr.c (yyrhs, yyprhs): Remove.
+	Instead, use the state stack and yystos.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	Flag glr tests.
+	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): If glr, declare it
+	as an Autotest keyword.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	Prefer TESTSUITE_FLAGS.
+	TESTSUITEFLAGS is barely readable.
+
+	* tests/local.mk (TESTSUITE_FLAGS): Default to $(TESTSUITEFLAGS)
+	for backward compatibility.
+	Use the former instead of the latter.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	Get rid of yyrhs and yyprhs in larl1.java.
+	* data/lalr1.java (yyrhs_, yyprhs_): Remove.
+	(yy_reduce_print): Rather, use yystos_ and the state stack.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	Formatting changes.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	Get rid of yyrhs and yyprhs in yacc.c.
+	They were used to get the symbol types, given a rule number, when
+	displaying the top of the stack before a reduction.  But the
+	symbol type is available from the state stack.  This has two be
+	benefits: two tables less in the parser (making it smaller), and a
+	more consistent use of the three stacks which will help to fuse
+	them.
+
+	* data/yacc.c (yyprhs, yyrhs): Remove.
+	(YY_REDUCE_PRINT): Pass yyssp to yy_reduce_print.
+	(yy_reduce_print): Take yyssp as argument.
+	Use it, together with yystos, to get the symbol type.
+	* tests/regression.at (Web2c Report): Remove these tables from the
+	expected output.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	b4_tables_map.
+	The point is to factor the generation of the tables across skeletons.
+	This is language dependant.
+
+	* data/c.m4 (b4_comment_): New.
+	Should be usable to define how to generate tables independently of
+	the language.
+	(b4_c_comment): New.
+	(b4_comment): Bounce to b4_c_comment.
+	Now support $2 = [PREFIX] for indentation.
+	* data/lalr1.cc (b4_table_declare): Don't output a comment if
+	there is no comment.
+	Indent it properly when there is one.
+	Output the ending semicolon.
+	(b4_table_define): Space changes.
+	Output the ending semicolon.
+	(b4_tables_map): New.
+	Use it twice instead of declaring and defining the (integral)
+	tables by hand.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	b4_table_declare.
+	* data/lalr1.cc (b4_table_declare): New.
+	Use it to declare the tables defined with b4_table_define.
+	(b4_table_define): Declare a third arg to match b4_table_declare
+	signature.
+	Move all the comments around invocations of b4_table_define into
+	the invocations itselves.
+	Move things around to have the order for declarations and
+	definitions.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	Formatting changes.
+	* data/lalr1.java: here.
+
+2008-11-25  Akim Demaille  <demaille@gostai.com>
+
+	b4_args is more general than only C++.
+	* data/lalr1.cc (b4_args, _b4_args): Move to...
+	* data/bison.m4: here.
+
+2008-11-21  Di-an Jan  <dianj@freeshell.org>
+
+	Implement no-XXX arguments for --warnings, --report, --trace.
+	* src/getargs.c (flags_argmatch): Handles no-XXX.
+	Fix typo in doxygen comment.
+
+2008-11-21  Akim Demaille  <demaille@gostai.com>
+
+	Display the changes in cross-options.texi.
+	* build-aux/cross-options.pl ($sep): New, to separate items.
+	* doc/local.mk ($(CROSS_OPTIONS_TEXI)): Use diff to display the
+	changes.
+
+2008-11-20  Di-an Jan  <dianj@freeshell.org>
+
+	Improves options in the manual.
+	* doc/bison.texinfo (-g, -x): Add space before argument.
+	(Option Cross Key): Implement FIXME: listing directives also.
+	* build-aux/cross-options.pl:  Read from <STDIN> rather than <>.
+	(Short Option): Special case -d.  Put arguments inside @option.
+	(Bison Directive): Add column, automatically extracted from
+	src/scan-gram.l (actual name passed as the first argument)
+	with special case for %define.
+	* doc/local.mk (doc/cross-options.texi): Pass src/scan-gram.l
+	to build-aux/cross-options.pl.
+	* src/getargs.c (usage): Document limitations of cross-options.pl.
+	* src/scan-gram.l: Likewise.
+
+2008-11-18  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix unexpanded macros in GLR defines file.
+	Reported by Csaba Raduly at
+	<http://lists.gnu.org/archive/html/bug-bison/2008-11/msg00048.html>.
+	* THANKS (Csaba Raduly): Add.
+	* data/glr.c: Fix overquoting on b4_prefix for yylval and yylloc.
+	* tests/calc.at (_AT_DATA_CALC_Y): If %defines is specified, generate
+	lexer in a separate module that includes the defines file.
+	(AT_CHECK_CALC): From AT_FULL_COMPILE, request compilation of lexer
+	source.
+	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Push AT_DEFINES_IF.
+	Adjust AT_LOC and AT_VAL to use AT_NAME_PREFIX.
+	(AT_BISON_OPTION_POPDEFS): Pop AT_DEFINES_IF.
+	(AT_DATA_SOURCE_PROLOGUE): New.
+	(AT_DATA_GRAMMAR_PROLOGUE): Use AT_DATA_SOURCE_PROLOGUE.
+	(AT_DATA_SOURCE): New.
+	(AT_FULL_COMPILE): Extend to support an additional source file.
+
+2008-11-18  Akim Demaille  <demaille@gostai.com>
+
+	More TODO.
+	* TODO: More short term issues.
+
+2008-11-18  Akim Demaille  <demaille@gostai.com>
+
+	Regen.
+	* src/parse-gram.h, src/parse-gram.c: Regen.
+
+2008-11-18  Akim Demaille  <demaille@gostai.com>
+
+	Use b4_subtract where possible.
+	* data/lalr1.cc (b4_subtract): Move to...
+	* data/bison.m4: here.
+	* data/glr.c (b4_rhs_data): Use it.
+	* data/yacc.c (b4_rhs_value, b4_rhs_location): Use it.
+
+2008-11-18  Akim Demaille  <demaille@gostai.com>
+
+	Remove incorrect mode specification.
+	* data/glr.cc: Don't pretend it's C code.
+
+2008-11-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Simplify last patch slightly.
+	* src/getargs.c (getargs): Here.
+
+2008-11-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix last warning from --enable-gcc-warnings.
+	* src/getargs.c (getargs): Don't assign const address to non-const
+	pointer.
+
+2008-11-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Don't let maintainer-*-check targets force a version update.
+	* cfg.mk (_is-dist-target): Implement.  maintainer-check* was already
+	handled.
+
+2008-11-17  Di-an Jan  <dianj@freeshell.org>
+
+	* 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-17  Di-an Jan  <dianj@freeshell.org>
+
+	Handles several --enable-gcc-warnings.
+	* src/getargs.c (command_line_location): Set parameters to void.
+	* src/output.c (symbol_type_name_cmp): Make static.
+	(symbols_by_type_name): Set parameters to void.
+	(symbol_definitions_output): Remove unused parameter.  Rename as...
+	(prepare_symbol_definitions): this.
+	(muscles_output): Move symbol_definitions_output to...
+	(output): here as prepare_symbol_definitions.
+	* tests/c++.at (AT_CHECK_VARIANTS): Remove unused parameters of main.
+	(AT_CHECK_NAMESPACE): Make unused parameter lloc unnamed.
+
+2008-11-17  Di-an Jan  <dianj@freeshell.org>
+
+	* tests/c++.at (AT_CHECK_VARIANTS): Fixes tests 198-202.
+	Use AT_DATA_GRAMMAR instead of AT_DATA for compiled tests.
+
+2008-11-16  Akim Demaille  <demaille@gostai.com>
+
+	Add missing $(EXEEXT).
+	* doc/local.mk ($(CROSS_OPTIONS_TEXI)): The target is
+	"src/bison$(EXEEXT)".
+	Reported by Di-an Jan.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	* TODO: Update.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Formatting changes.
+	* tests/input.at: here.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	Remove duplicate header inclusion.
+	* src/LR0.c: here.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+	* src/parse-gram.h, src/parse-gram.c: Regen.
+
 2008-11-15  Akim Demaille  <demaille@gostai.com>
 
 	Support parametric types.
-	There are two issues to handle: first scanning nested angle bracket pairs
-	to support types such as std::pair< std::string, std::list<std::string> > >.
-	
-	Another issue is to address idiosyncracies of C++: do not glue two closing
-	angle brackets together (otherwise it's operator>>), and avoid sticking
-	blindly a TYPE to the opening <, as it can result in '<:' which is a
-	digraph for '['.
-	
+
+	There are two issues to handle: first scanning nested angle
+	bracket pairs to support types such as std::pair< std::string,
+	std::list<std::string> > >.
+
+	Another issue is to address idiosyncracies of C++: do not glue two
+	closing angle brackets together (otherwise it's operator>>), and
+	avoid sticking blindly a TYPE to the opening <, as it can result
+	in '<:' which is a digraph for '['.
+
 	* src/scan-gram.l (brace_level): Rename as...
 	(nesting): this.
 	(SC_TAG): New.
 	Implement support for complex tags.
-	(tag): Accept 
+	(tag): Accept
 	, but not <.
 	* data/lalr1.cc (b4_symbol_value, b4_symbol_value_template)
 	(b4_symbol_variant): Leave space around types as parameters.
@@ -30,7 +501,7 @@
 	interface is not affected by token.prefix.  A more general test
 	will be implemented when the support of token.prefix is generalized
 	to more skeletons.
-	
+
 	* tests/c++.at: One more variant test, using token.prefix.
 
 2008-11-15  Akim Demaille  <akim@betelgeuse.gostai.ensta.fr>
@@ -106,10 +577,10 @@
 2008-11-15  Akim Demaille  <demaille@gostai.com>
 
 	Move sc_tight_scope into maint.mk.
-	It does not work, and I don't know how it was supposed to work: it seems
-	to be looking for sources in the build tree.  I just moved it at a better
-	place, fixing it is still required.
-	
+	It does not work, and I don't know how it was supposed to work: it
+	seems to be looking for sources in the build tree.  I just moved
+	it at a better place, fixing it is still required.
+
 	* src/local.mk (echo): Remove.
 	(sc_tight_scope): Move to...
 	* maint.mk: here.
@@ -195,7 +666,8 @@
 
 2008-11-15  Akim Demaille  <demaille@gostai.com>
 
-	Instead of using make_symbol<TOK_FOO>, generate make_FOO for each token type.
+	Instead of using make_symbol<TOK_FOO>, generate make_FOO for each
+	token type.
 	Using template buys us nothing, and makes it uselessly complex to
 	construct a symbol.  Besides, it could not be generalized to other
 	languages, while make_FOO would work in C/Java etc.
@@ -218,10 +690,10 @@
 2008-11-13  Akim Demaille  <demaille@gostai.com>
 
 	%define token.prefix.
-	Provide a means to add a prefix to the name of the tokens as output in the
-	generated files.  Because of name clashes, it is good to have such a
-	prefix such as TOK_ that protects from names such as EOF, FILE etc.
-	But it clutters the grammar itself.
+	Provide a means to add a prefix to the name of the tokens as
+	output in the generated files.  Because of name clashes, it is
+	good to have such a prefix such as TOK_ that protects from names
+	such as EOF, FILE etc.  But it clutters the grammar itself.
 
 	* data/bison.m4 (token.prefix): Empty by default.
 	* data/c.m4 (b4_token_enum, b4_token_define): Use it.
@@ -230,14 +702,13 @@
 2008-11-13  Akim Demaille  <demaille@gostai.com>
 
 	Compute at M4 time some of the subtractions.
-	* data/lalr1.cc (b4_substract): New.
+	* data/lalr1.cc (b4_subtract): New.
 	(b4_rhs_data): Use it.
 
 2008-11-13  Akim Demaille  <demaille@gostai.com>
 
 	symbol::token.
-	This is allows the user to get the type of a token return by
-	yylex.
+	This allows the user to get the type of a token returned by yylex.
 
 	* data/lalr1.cc (symbol::token): New.
 	(yytoknum_): Define when %define lex_symbol, independently of
@@ -267,8 +738,9 @@
 2008-11-13  Akim Demaille  <demaille@gostai.com>
 
 	Define make_symbol in the header.
-	To reach good performances these functions should be inlined (yet this is
-	to measure precisely).  To this end they must be available to the caller.
+	To reach good performances these functions should be inlined (yet
+	this is to measure precisely).  To this end they must be available
+	to the caller.
 
 	* data/lalr1.cc (b4_symbol_constructor_definition_): Qualify
 	location_type with the class name.
@@ -286,13 +758,14 @@
 
 2008-11-13  Akim Demaille  <demaille@gostai.com>
 
-	Define the constructors of symbol_type in b4_symbol_constructor_definitions.
+	Define the constructors of symbol_type in
+	b4_symbol_constructor_definitions.
 	The constructors are called by the make_symbol functions, which a
-	forthcoming patch will move elsewhere.  Hence the interest of putting them
-	together.
+	forthcoming patch will move elsewhere.  Hence the interest of
+	putting them together.
 
-	The stack_symbol_type does not need to be moved, it is used only by the
-	parser.
+	The stack_symbol_type does not need to be moved, it is used only
+	by the parser.
 
 	* data/lalr1.cc: Move symbol_type and symbol_base_type
 	constructors into...
@@ -343,9 +816,9 @@
 2008-11-13  Akim Demaille  <demaille@gostai.com>
 
 	Use b4_type_names for the union type.
-	The union used to compute the size of the variant used to iterate over the
-	type of all the symbols, with a lot of redundancy.  Now iterate over the
-	lists of symbols having the same type-name.
+	The union used to compute the size of the variant used to iterate
+	over the type of all the symbols, with a lot of redundancy.  Now
+	iterate over the lists of symbols having the same type-name.
 
 	* data/lalr1.cc (b4_char_sizeof_): New.
 	(b4_char_sizeof): Use it.
@@ -356,12 +829,12 @@
 2008-11-13  Akim Demaille  <demaille@gostai.com>
 
 	Define the "identifier" of a symbol.
-	Symbols may have several string representations, for instance if they
-	have an alias.  What I call its "id" is a string that can be used as
-	an identifier.  May not exist.
+	Symbols may have several string representations, for instance if
+	they have an alias.  What I call its "id" is a string that can be
+	used as an identifier.  May not exist.
 
-	Currently the symbols which have the "tag_is_id" flag set are those that
-	don't have an alias.  Look harder for the id.
+	Currently the symbols which have the "tag_is_id" flag set are
+	those that don't have an alias.  Look harder for the id.
 
 	* src/output.c (is_identifier): Move to...
 	* src/symtab.c (is_identifier): here.
@@ -501,13 +974,13 @@
 2008-11-11  Akim Demaille  <demaille@gostai.com>
 
 	Introduce make_symbol.
-	make_symbol provides a means to construct a full symbol (kind, value,
-	location) in a single shot.  It is meant to be a Symbol constructor,
-	parameterized by the symbol kind so that overloading would prevent
-	incorrect kind/value pairs.  Unfortunately parameterized constructors do
-	not work well in C++ (unless the parameter also appears as an argument,
-	which is not acceptable), hence the use of a function instead of a
-	constructor.
+	make_symbol provides a means to construct a full symbol (kind,
+	value, location) in a single shot.  It is meant to be a Symbol
+	constructor, parameterized by the symbol kind so that overloading
+	would prevent incorrect kind/value pairs.  Unfortunately
+	parameterized constructors do not work well in C++ (unless the
+	parameter also appears as an argument, which is not acceptable),
+	hence the use of a function instead of a constructor.
 
 	* data/lalr1.cc (b4_symbol_constructor_declaration_)
 	(b4_symbol_constructor_declarations)
@@ -660,8 +1133,8 @@
 2008-11-10  Akim Demaille  <demaille@gostai.com>
 
 	Make parser::yytranslate static.
-	Small speedup (1%) on the list grammar.  And makes yytranslate_ available
-	in non member functions.
+	Small speedup (1%) on the list grammar.  And makes yytranslate_
+	available in non member functions.
 
 	* data/lalr1.cc (yytranslate_): Does not need to be a instance
 	function.
@@ -921,9 +1394,10 @@
 2008-11-09  Akim Demaille  <demaille@gostai.com>
 
 	Rely on the state stack to display reduction traces.
-	To display rhs symbols before a reduction, we used information about the rule
-	reduced, which required the tables yyrhs and yyprhs.  Now use rely only on the
-	state stack to get the same information.
+	To display rhs symbols before a reduction, we used information
+	about the rule reduced, which required the tables yyrhs and
+	yyprhs.  Now use rely only on the state stack to get the same
+	information.
 
 	* data/lalr1.cc (b4_rhs_data, b4_rhs_state): New.
 	Use them.
@@ -1348,18 +1822,22 @@
 2008-11-03  Akim Demaille  <demaille@gostai.com>
 
 	Fuse the three stacks into a single one.
-	In order to make it easy to perform benchmarks to ensure that there are no
-	performance loss, lalr1.cc is forked into lalr1-fusion.cc.  Eventually,
-	lalr1-fusion.cc will replace lalr1.cc.
 
-	Meanwhile, to make sure that lalr1-fusion.cc is correctly exercized by the
-	test suite, the user must install a symbolic link from lalr1.cc to it.
+	In order to make it easy to perform benchmarks to ensure that
+	there are no performance loss, lalr1.cc is forked into
+	lalr1-fusion.cc.  Eventually, lalr1-fusion.cc will replace
+	lalr1.cc.
 
-	Instead of having three stacks (state, value, location), use a stack
-	of triples.  This considerably simplifies the code (and it will be
-	easier not to require locations as currently does the C++ parser),
-	and also gives a 10% speedup according to etc/bench (probably mainly since
-	memory allocation is done once instead of three times).
+	Meanwhile, to make sure that lalr1-fusion.cc is correctly
+	exercized by the test suite, the user must install a symbolic link
+	from lalr1.cc to it.
+
+	Instead of having three stacks (state, value, location), use a
+	stack of triples.  This considerably simplifies the code (and it
+	will be easier not to require locations as currently does the C++
+	parser), and also gives a 10% speedup according to
+	etc/bench (probably mainly since memory allocation is done once
+	instead of three times).
 
 	Another motivation is to make it easier to destruct properly
 	semantic values: now that they are bound to their state (hence
@@ -1367,8 +1845,8 @@
 
 	These changes should probably benefit the C parser too.
 
-	* data/lalr1.cc: Copy as...  * data/lalr1-fusion.cc: this new
-	file.
+	* data/lalr1.cc: Copy as...
+	* data/lalr1-fusion.cc: this new file.
 	(b4_rhs_value, b4_rhs_location): New definitions overriding those
 	from c++.m4.
 	(state_stack_type, semantic_stack_type, location_stack_type)
@@ -1411,14 +1889,15 @@
 2008-11-03  Akim Demaille  <demaille@gostai.com>
 
 	Use variants to support objects as semantic values.
-	This patch was inspired by work by Michiel De Wilde.  But he used Boost
-	variants which (i) requires Boost on the user side, (ii) is slow, and
-	(iii) has useless overhead (the parser knows the type of the semantic value
-	there is no reason to duplicate this information as Boost.Variants do).
+	This patch was inspired by work by Michiel De Wilde.  But he used
+	Boost variants which (i) requires Boost on the user side, (ii) is
+	slow, and (iii) has useless overhead (the parser knows the type of
+	the semantic value there is no reason to duplicate this
+	information as Boost.Variants do).
 
-	This implementation reserves a buffer large enough to store the largest
-	objects.  yy::variant implements this buffer.  It was implemented with
-	Quentin Hocquet.
+	This implementation reserves a buffer large enough to store the
+	largest objects.  yy::variant implements this buffer.  It was
+	implemented with Quentin Hocquet.
 
 	* src/output.c (type_names_output): New.
 	(output_skeleton): Invoke it.
@@ -1645,9 +2124,9 @@
 2008-08-29  Akim Demaille  <demaille@gostai.com>
 
 	Clarify UPDATED use.
-        * doc/bison.texinfo: It refers to the last edition of this file,
+	* doc/bison.texinfo: It refers to the last edition of this file,
 	not to the release date of Bison.
-        Reported by Joel E. Denny.
+	Reported by Joel E. Denny.
 
 2008-08-29  Akim Demaille  <demaille@gostai.com>
 
@@ -1667,15 +2146,15 @@
 2008-08-27  Akim Demaille  <demaille@gostai.com>
 
 	Check yyerrok in calc.at.
-        * tests/calc.at (calc.y): Use yyerrok on "( error )".
-        (AT_CHECK_CALC): Add a check that ensures that yyerrok works as
-        expected.
+	* tests/calc.at (calc.y): Use yyerrok on "( error )".
+	(AT_CHECK_CALC): Add a check that ensures that yyerrok works as
+	expected.
 
 2008-08-27  Akim Demaille  <demaille@gostai.com>
 
 	Support yyerrok in lalr1.cc.
 	YYBACKUP is still to import back into lalr1.cc.
-        * data/lalr1.cc (yyerrork, yyclearin, YYRECOVERING): Define.
+	* data/lalr1.cc (yyerrork, yyclearin, YYRECOVERING): Define.
 
 2008-08-26  Joel E. Denny  <jdenny@ces.clemson.edu>