X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/1282c12476d19f452392332e725a3509ce0486d2..9fb61ca8d87d541a0d027225b0a5a8218ea28ee1:/NEWS diff --git a/NEWS b/NEWS index 5046a9b4..3bfc1f94 100644 --- a/NEWS +++ b/NEWS @@ -4,14 +4,6 @@ GNU Bison NEWS ** WARNING: Future backward-incompatibilities! - Bison will stop adding a semicolon at the end of the actions (as announced - in the release 2.5): - - foo.y:2.25: warning: a ';' might be needed at the end of action code - exp: "number" { $$ = $1 } - ^ - foo.y:2.25: 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. @@ -28,6 +20,9 @@ GNU Bison NEWS Support for YYLEX_PARAM and YYPARSE_PARAM is removed (deprecated in Bison 1.875): use %lex-param, %parse-param, or %param. + Missing semicolons at the end of actions are no longer added (as announced + in the release 2.5). + ** Bug fixes *** The epilogue is no longer affected by internal #defines (glr.c) @@ -39,7 +34,7 @@ GNU Bison NEWS int yylex (YYSTYPE *yylval); - This is has been fixed: yylval, yynerrs, yychar, and yylloc are now valid + This is 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) @@ -221,6 +216,11 @@ GNU Bison NEWS bar.y: error: shift/reduce conflicts: 1 found, 0 expected bar.y: error: reduce/reduce conflicts: 2 found, 0 expected +** Incompatibilities with POSIX Yacc + + The 'yacc' category is no longer part of '-Wall', enable it explicitly + with '-Wyacc'. + ** Additional yylex/yyparse arguments The new directive %param declares additional arguments to both yylex and @@ -284,11 +284,27 @@ GNU Bison NEWS It used to be an error only if used in non GLR mode, _and_ if there are reduce/reduce conflicts. -** Token numbering has changed to preserve the user-defined order +** Tokens are numbered in their order of appearance + + Contributed by Valentin Tolmer. + + With '%token A B', A had a number less than the one of B. However, + precedence declarations used to generate a reversed order. This is now + fixed, and introducing tokens with any of %token, %left, %right, + %precedence, or %nonassoc yields the same result. + + When mixing declarations of tokens with a litteral character (e.g., 'a') + or with an identifier (e.g., B) in a precedence declaration, Bison + numbered the litteral characters first. For example + + %right A B 'c' 'd' + + would lead to the tokens declared in this order: 'c' 'd' A B. Again, the + input order is now preserved. - When declaring %token A B, the numbering for A is inferior to B. Up to now, - when declaring associativity at the same time, with %left (or %right, - %precedence, %nonassoc), B was inferior to A. + These changes were made so that one can remove useless precedence and + associativity declarations (i.e., map %nonassoc, %left or %right to + %precedence, or to %token) and get exactly the same output. ** Useless precedence and associativity