* Noteworthy changes in release ?.? (????-??-??) [?]
+** Future changes
+
+ Bison will stop adding a semicolon at the end of the actions:
+
+ foo.y:2.22: warning: a ';' might be needed at the end of action code
+ exp: "num" { $$ = $1 }
+ ^
+ foo.y:2.22: future versions of Bison will not add the ';'
+
+ Like other GNU packages, Bison will start using some of the C99 features
+ for its own code, especially the definition of variables after statements.
+ The generated C parsers still aim at C90.
+
** Incompatible changes
*** 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.
+
+** Bug fixes
+
+*** The epilogue is no longer affected by internal #defines
-** Warnings
+ 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 (YYSTYPE *yylval);
+
+ This is has been fixed: yylval, yynerrs, yychar, and yylloc are now valid
+ identifiers for user-provided variables.
+
+*** stdio.h is no longer needed when locations are enabled (yacc.c)
+
+ Changes in Bison 2.7 introduced a dependency on FILE and fprintf when
+ locations are enabled. This is fixed.
+
+** Diagnostics reported by Bison
+
+ Most of these features were contributed by Théophile Ranquet and Victor
+ Santet.
+
+*** 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
** Java skeleton improvements
+ Contributed by Paolo Bonzini.
+
The constants for token names were moved to the Lexer interface. Also, it
is possible to add code to the parser's constructors using "%code init"
and "%define init_throws".
used by the scanner, or rejecting invalid combinations from a
factory invoked by the user actions).
+** 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
This variable controls the verbosity of error messages. The use of the
** Semantic predicates
+ Contributed by Paul Hilfinger.
+
The new, experimental, semantic-predicate feature allows actions of the
form "%?{ BOOLEAN-EXPRESSION }", which cause syntax errors (as for
YYERROR) if the expression evaluates to 0, and are evaluated immediately
-----
-Copyright (C) 1995-2012 Free Software Foundation, Inc.
+Copyright (C) 1995-2013 Free Software Foundation, Inc.
This file is part of Bison, the GNU Parser Generator.