X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/df72984aa586c427c5f2acb2c8aade92c291a419..6e0977873a3d12eeff4f31c85ff8925830c00cf7:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 708f1d79..03a54bfa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,129 @@ +2008-11-10 Akim Demaille + + Adjust verbose message to using emacs. + * etc/bench.pl.in: Inform compilation-mode when we change the + directory. + (generate_grammar_list): Recognize %define "variant" in addition + to %define variant. + +2008-11-10 Akim Demaille + + Classify symbols by type-name. + * src/uniqstr.h (UNIQSTR_CMP): New. + * src/output.c (symbol_type_name_cmp, symbols_by_type_name) + (type_names_output): New. + (muscles_output): Use it. + * data/lalr1.cc (b4_symbol_action_): Remove. + (b4_symbol_case_, b4_type_action_): New. + Adjust uses of b4_symbol_action_ to use b4_type_action_. + +2008-11-10 Akim Demaille + + Change the handling of the symbols in the skeletons. + Before we were using tables which lines were the symbols and which + columns were things like number, tag, type-name etc. It is was + difficult to extend: each time a column was added, all the numbers had + to be updated (you asked for colon $2, not for "tag"). Also, it was + hard to filter these tables when only a subset of the symbols (say the + tokens, or the nterms, or the tokens that have and external number + *and* a type-name) was of interest. + + Now instead of monolithic tables, we define one macro per cell. For + instance "b4_symbol(0, tag)" is a macro name which contents is + self-decriptive. The macro "b4_symbol" provides easier access to + these cells. + + * src/output.c (type_names_output): Remove. + (symbol_numbers_output, symbol_definitions_output): New. + (muscles_output): Call them. + (prepare_symbols): Define b4_symbols_number. + +2008-11-10 Akim Demaille + + --trace=muscles + * src/getargs.h, src/getargs.c (trace_muscle): New. + (trace_types, trace_args): Support it. + * src/output.c (output_skeleton): Use it. + +2008-11-10 Akim Demaille + + muscles_output. + * src/output.c (muscles_output): New, extracted from... + (output_skeleton): here. + Adjust. + +2008-11-10 Akim Demaille + + Formatting changes. + +2008-11-10 Akim Demaille + + Update the variant example. + * examples/variant.yy: Formatting changes. + One stage build. + +2008-11-10 Akim Demaille + + Support constructor with an argument. + This improves the "list" bench by 2%. + + * data/lalr1.cc (variant::build): Add an overloaded version with + an argument. + * tests/c++.at (AT_CHECK_VARIANT): Check it. + +2008-11-10 Akim Demaille + + Test variants. + * tests/c++.at (AT_CHECK_VARIANTS): New. + Use it with and without %define assert. + +2008-11-10 Akim Demaille + + Add %precedence support. + Unfortunately it is not possible to reuse the %prec directive. This + is because to please POSIX, we do not require to end the rules with a + semicolon. As a result, + + foo: bar %prec baz + + is ambiguous: either a rule which precedence is that of baz, or a rule, + and then a declaration of the precedence of the token baz. + + * doc/bison.texinfo: Document %precedence. + (Precedence Only): New. + * src/assoc.h, src/assoc.c (precedence_assoc): New. + * src/conflicts.c (resolve_sr_conflict): Support it. + * src/scan-gram.l, src/parse-gram.y (%precedence): New token. + Parse it. + * tests/calc.at: Use %precedence for NEG. + * tests/conflicts.at (%precedence does not suffice) + (%precedence suffices): New tests. + +2008-11-09 Akim Demaille + + Make benches in a sub dirs. + * etc/bench.pl.in ($dir): New. + Use it. + Check the use of constructors with an argument. + (bench_variant_parser): Fix. + +2008-11-09 Akim Demaille + + fix eof condition + +2008-11-09 Akim Demaille + + Fix --help. + +2008-11-09 Akim Demaille + + Require the generation of parse-gram.output. + * src/Makefile.am (YACC): Pass --report=all. + +2008-11-09 Akim Demaille + + Formatting changes. + 2008-11-09 Akim Demaille Update TODO.