X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/1f36f54446248b8984b9c378b0c756a6b51b34cb..34136e65fc7bd6babcfedcbfcfdca3b9feb10f1d:/NEWS diff --git a/NEWS b/NEWS index 3b225121..5c2783f9 100644 --- a/NEWS +++ b/NEWS @@ -60,7 +60,13 @@ Bison News allow the programmer to prune possible parses based on the values of runtime expressions. -* Changes in version 2.5 (????-??-??): +* Changes in version 2.5.1 (????-??-??): + +** Some portability problems in the test suite have been fixed. + +** Minor improvements have been made to the manual. + +* Changes in version 2.5 (2011-05-14): ** Grammar symbol names can now contain non-initial dashes: @@ -393,7 +399,7 @@ Bison News bison -Werror,none,yacc gram.y -*** The `none' category now disables all Bison warnings. +*** The `none' category now disables all Bison warnings: Previously, the `none' category disabled only Bison warnings for which there existed a specific -W/--warning category. However, @@ -890,26 +896,26 @@ Bison News if the symbols have destructors. For instance: exp: exp "?" exp ":" exp { $1 ? $1 : $3; } - | exp "+" exp - ; + | exp "+" exp + ; will trigger a warning about $$ and $5 in the first rule, and $3 in the second ($1 is copied to $$ by the default rule). This example most likely contains three errors, and could be rewritten as: exp: exp "?" exp ":" exp - { $$ = $1 ? $3 : $5; free ($1 ? $5 : $3); free ($1); } - | exp "+" exp - { $$ = $1 ? $1 : $3; if ($1) free ($3); } - ; + { $$ = $1 ? $3 : $5; free ($1 ? $5 : $3); free ($1); } + | exp "+" exp + { $$ = $1 ? $1 : $3; if ($1) free ($3); } + ; However, if the original actions were really intended, memory leaks and all, the warnings can be suppressed by letting Bison believe the values are used, e.g.: exp: exp "?" exp ":" exp { $1 ? $1 : $3; (void) ($$, $5); } - | exp "+" exp { $$ = $1; (void) $3; } - ; + | exp "+" exp { $$ = $1; (void) $3; } + ; If there are mid-rule actions, the warning is issued if no action uses it. The following triggers no warning: $1 and $3 are used. @@ -1153,16 +1159,16 @@ Bison News In agreement with POSIX and with other Yaccs, leaving a default action is valid when $$ is untyped, and $1 typed: - untyped: ... typed; + untyped: ... typed; but the converse remains an error: - typed: ... untyped; + typed: ... untyped; ** Values of mid-rule actions The following code: - foo: { ... } { $$ = $1; } ... + foo: { ... } { $$ = $1; } ... was incorrectly rejected: $1 is defined in the second mid-rule action, and is equal to the $$ of the first mid-rule action. @@ -1573,7 +1579,7 @@ End: ----- -Copyright (C) 1995-2011 Free Software Foundation, Inc. +Copyright (C) 1995-2012 Free Software Foundation, Inc. This file is part of Bison, the GNU Parser Generator.