X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/a501eca911c81bd7875633ff1d9734e1fb4a3fe3..17bd8a736a491f4867176b3885e39e74dc07f854:/NEWS diff --git a/NEWS b/NEWS index 75e0284f..b1371ae7 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,45 @@ Changes in version 2.3a+ (????-??-??): * The -g and --graph options now output graphs in Graphviz DOT format, not VCG format. +* Revised warning: unset or unused mid-rule values + + Since Bison 2.2, Bison has warned about mid-rule values that are set but not + used within any of the actions of the parent rule. For example, Bison warns + about unused $2 in: + + exp: '1' { $$ = 1; } '+' exp { $$ = $1 + $4; }; + + Now, Bison also warns about mid-rule values that are used but not set. For + example, Bison warns about unset $$ in the mid-rule action in: + + exp: '1' { $1 = 1; } '+' exp { $$ = $2 + $4; }; + + However, Bison now disables both of these warnings by default since they + sometimes prove to be false alarms in existing grammars employing the Yacc + constructs $0 or $-N (where N is some positive integer). + + To enable these warnings, specify the flag `--warnings=midrule-values' or + `-W', which is a synonym for `--warnings=all'. + +* Bison now recognizes two separate kinds of default %destructor's and + %printer's: + + 1. Place `<*>' in a %destructor/%printer symbol list to define a default + %destructor/%printer for all grammar symbols for which you have formally + declared semantic type tags. + + 2. Place `' in a %destructor/%printer symbol list to define a default + %destructor/%printer for all grammar symbols without declared semantic + type tags. + + Bison no longer supports the `%symbol-default' notation from Bison 2.3a. + `<*>' and `' combined achieve the same effect with one exception: Bison no + longer applies any %destructor to a mid-rule value if that mid-rule value is + not actually ever referenced using either $$ or $n in a semantic action. + + See the section `Freeing Discarded Symbols' in the Bison manual for further + details. + * The Yacc prologue alternatives from Bison 2.3a have been rewritten as the following directives: