*** Obsolete features
- Support for YYFAIL is removed (deprecated in Bison 2.4.2).
- Support for yystype and yyltype (instead of YYSTYPE and YYLTYPE)
- is removed (deprecated in Bison 1.875).
- Support for YYPARSE_PARAM is removed (deprecated in Bison 1.875).
+ Support for YYFAIL is removed (deprecated in Bison 2.4.2): use YYERROR.
+
+ Support for yystype and yyltype is removed (deprecated in Bison 1.875):
+ use YYSTYPE and YYLTYPE.
+
+ Support for YYLEX_PARAM and YYPARSE_PARAM is removed (deprecated in Bison
+ 1.875): use %lex-param, %parse-param, or %param.
** Warnings
+*** Carets
+
+ Version 2.7 introduced caret errors, for a prettier output. These are now
+ activated by default. The old format can still be used by invoking Bison
+ with -fno-caret (or -fnone).
+
*** Enhancements of the -Werror option
The -Werror=CATEGORY option is now recognized, and will treat specified
used by the scanner, or rejecting invalid combinations from a
factory invoked by the user actions).
+*** The epilogue is no longer affected by internal #defines
+
+ The glr.c skeleton uses defines such as #define yylval (yystackp->yyval) in
+ generated code. These weren't properly undefined before the inclusion of
+ the user epilogue, so functions such as the following were butchered by the
+ preprocessor expansion:
+
+ int yylex (yy::parser::semantic_type *yylval);
+
+ This is has been fixed: yylval, ynerrs, yychar, and yylloc are now valid
+ identifiers for user-provided variables.
+
+** Renamed %define variables
+
+ The following variables have been renamed for consistency. Backward
+ compatibility is ensured, but upgrading is recommended.
+
+ lr.default-reductions -> lr.default-reduction
+ lr.keep-unreachable-states -> lr.keep-unreachable-state
+ namespace -> api.namespace
+ stype -> api.value.type
+
** Variable api.token.prefix
The variable api.token.prefix changes the way tokens are identified in
use these prefixed token names, although the grammar itself still
uses the short names (as in the sample rule given above).
-** Renamed %define variables
- The following variables have been renamed for consistency. Backward
- compatibility is ensured, but upgrading is recommended.
-
- lr.default-reductions -> lr.default-reduction
- lr.keep-unreachable-states -> lr.keep-unreachable-state
- namespace -> api.namespace
** Variable parse.error
It used to be an error only if used in non GLR mode, _and_ if there are
reduce/reduce conflicts.
-* Noteworthy changes in release ?.? (????-??-??) [?]
-
-** %language is no longer an experimental feature.
-
- The introduction of this feature, in 2.4, was four years ago. The --language
- option and the %language directive are no longer experimental.
+* Noteworthy changes in release 2.7 (2012-12-12) [stable]
** Bug fixes
Warnings about uninitialized yylloc in yyparse have been fixed.
+ Restored C90 compliance (yet no report was ever made).
+
** Diagnostics are improved
*** Changes in the format of error messages
These features are experimental in this version. More user feedback
will help to stabilize them.
+ Contributed by Alex Rozenman.
** IELR(1) and canonical LR(1):
The current Java interface is experimental and may evolve. More user
feedback will help to stabilize it.
+ Contributed by Paolo Bonzini.
** %language
Bison can now generate an XML report of the LALR(1) automaton using the new
"--xml" option. The current XML schema is experimental and may evolve. More
user feedback will help to stabilize it.
+ Contributed by Wojciech Polak.
** The grammar file may now specify the name of the parser header file using
%defines. For example: