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.