X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/a2e3fa776815138196cb0fec9d164f7e23b93119..e9805e574361e4f4b344d1b92b75c30dc8c325bd:/ChangeLog?ds=sidebyside

diff --git a/ChangeLog b/ChangeLog
index 293cb7c1..cd1254c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,127 @@
+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.
+	
+	* data/lalr1.cc (b4_char_sizeof_): New.
+	(b4_char_sizeof): Use it.
+	Adjust to be called with a list of numbers instead of a single
+	number.
+	Adjust its caller for new-line issues.
+
+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.
+	
+	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.
+	* src/symtab.h, src/symtab.c (symbol_id_get): New.
+	* src/output.c (symbol_definitions_output): Use it to define "id"
+	and "has_id".
+	Remove the definition of "tag_is_id".
+	* data/lalr1.cc: Use the "id" and "has_id" whereever "tag" and
+	"tag_is_id" were used to produce code.
+	We still use "tag" for documentation.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Locations are no longer required by lalr1.cc.
+	* data/lalr1.cc (_b4_args, b4_args): New.
+	Adjust all uses of locations to make them optional.
+	* tests/c++.at (AT_CHECK_VARIANTS): No longer use the locations.
+	(AT_CHECK_NAMESPACE): Check the use of locations.
+	* tests/calc.at (_AT_DATA_CALC_Y): Adjust to be usable with or
+	without locations with lalr1.cc.
+	Test these cases.
+	* tests/output.at: Check lalr1.cc with and without location
+	support.
+	* tests/regression.at (_AT_DATA_EXPECT2_Y, _AT_DATA_DANCER_Y):
+	Don't use locations.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	AT_FULL_COMPILE.
+	* tests/local.at (AT_FULL_COMPILE): New.
+	* tests/actions.at, tests/calc.at, tests/regression.at: Use it.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Support parens in calc++.
+	* doc/bison.texinfo (Calc++ Scanner, Calc++ Parser): Support parens.
+	* examples/calc++/test (run): Check the expected output.
+	Adjust callers.
+	Check parens too.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Simplify lalr1.cc since %defines is mandatory.
+	* data/lalr1.cc: Remove useless calls to b4_defines_if.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	TODO: yyfmt.
+	* TODO (yysyntax_error): New item.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Prefer M4 to CPP.
+	* data/lalr1.cc: Use b4_error_verbose_if instead of #if
+	YYERROR_VERBOSE.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Support i18n of the parse error messages.
+	* TODO (lalr1.cc/I18n): Remove.
+	* data/lalr1.cc (yysyntax_error_): Support the translation of the
+	error messages, as done in yacc.c.
+	Stay within the yy* pseudo namespace.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	More TODO.
+	* TODO (single stack, yysyntax_error): New.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Make it possible to return a symbol_type from yylex.
+	* data/lalr1.cc (b4_lex_symbol_if): New.
+	(parse): When lex_symbol is defined, expected yylex to return the
+	complete lookahead.
+	* etc/bench.pl.in (generate_grammar_list): Extend to support this
+	yylex interface.
+	(bench_variant_parser): Exercise it.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Remove useless bench case.
+	* etc/bench.pl.in (bench_variant_parser): VARIANT_DESTROY is
+	no longer used.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Improve display of directives.
+	* etc/bench.pl.in (parse_term): Don't add useless eol.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Use string_cast in the bench.
+	* etc/bench.pl.in (generate_grammar_list): Define and use
+	string_cast.
+
+2008-11-11  Akim Demaille  <demaille@gostai.com>
+
+	Replace yychar with a Boolean.
+	* data/lalr1.cc (parse::yychar): Replace by...
+	(parse::yyempty): this.
+
 2008-11-11  Akim Demaille  <demaille@gostai.com>
 
 	Factor the tables.