X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/57295d14f9b891c245c45b1a8e5f5132b95cbacb..d78f0ac9d8c8830542faf9d00d0b6ef652dda45e:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 8f9ae10e..757e1fd0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,117 @@ +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. + * TODO: Remove obsolete items. + Update others. + +2008-11-09 Akim Demaille + + Enhance bench.pl. + * etc/bench.pl.in (parse, parse_expr, parse_term, parse_fact) + (@token, $grammar, $bench): New. + (generate_grammar_variant): Rename as... + (generate_grammar_list): this. + (generate_grammar): Adjust. + (bench_grammar): Rename as... + (bench): this. + Use it in the various bench-marking routines. + (-b, -g): New options. + +2008-11-09 Akim Demaille + + Use a static hierarchy for symbols in the C++ parser. + * data/lalr1.cc (symbol_base_type, symbol_type) + (stack_symbol_type): Make it a static hierarchy. + Adjust dependencies. + +2008-11-09 Akim Demaille + + bench.pl -d, --directive. + * etc/bench.pl.in (@directive): New. + (&bench_grammar): Use it. + (&bench_list_grammar): New, to provide access to the "variant" + grammar. + Use it. + (getopts): Support -d, --directive. + +2008-11-09 Akim Demaille + + Use inline for small operations. + * data/lalr1.cc (symbol_base_type, symbol_type) + (stack_symbol_type): Declare constructor and other operations as + inline. + (yy_destroy_): Inline. + +2008-11-09 Akim Demaille + + Introduce a hierarchy for symbols. + * data/lalr1.cc (symbol_base_type, symbol_type): New. + (data_type): Rename as... + (stack_symbol_type): this. + Derive from symbol_base_type. + (yy_symbol_value_print_): Merge into... + (yy_symbol_print_): this. + Rename as... + (yy_print_): this. + (yydestruct_): Rename as... + (yy_destroy_): this. + (b4_symbols_actions, YY_SYMBOL_PRINT): Adjust. + (parser::parse): yyla is now of symbol_type. + Use its type member instead of yytoken. + +2008-11-09 Akim Demaille + + Rename data_type and stack_symbol_type. + * data/lalr1.cc (data_type): Rename as... + (stack_symbol_type): this. + 2008-11-09 Akim Demaille Handle semantic value and location together.