X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/4c2a6e42ba8b6bc4e04985f5ef3ec8926048d4b1..ac3297d501e9b74a11095d966bb8e5aa6fcf0ff4:/NEWS diff --git a/NEWS b/NEWS index 3f102577..1b70a6ad 100644 --- a/NEWS +++ b/NEWS @@ -21,12 +21,12 @@ Bison News When no ambiguity is possible, original symbol names may be used as named references: - if_stmt : 'if' cond_expr 'then' then_stmt ';' + if_stmt : "if" cond_expr "then" then_stmt ';' { $if_stmt = mk_if_stmt($cond_expr, $then_stmt); } In the more common case, explicit names may be declared: - stmt[res] : 'if' expr[cond] 'then' stmt[then] 'else' stmt[else] ';' + stmt[res] : "if" expr[cond] "then" stmt[then] "else" stmt[else] ';' { $res = mk_if_stmt($cond, $then, $else); } Location information is also accessible using @name syntax. When @@ -125,7 +125,7 @@ Bison News except that the manner in which Bison processes multiple definitions for the same NAME differs. Most importantly, -F and --force-define quietly override %define, but -D and --define do not. For further - details, see the section "Bison Options" in the Bison manual. + details, see the section `Bison Options' in the Bison manual. *** Variables renamed: @@ -183,8 +183,8 @@ Bison News Similarly to the C parsers, the C++ parsers now define the YYRHSLOC macro and use it in the default YYLLOC_DEFAULT. You are encouraged - to use it. If, for instance, your location structure has "first" - and "last" members, instead of + to use it. If, for instance, your location structure has `first' + and `last' members, instead of # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ @@ -266,7 +266,7 @@ Bison News in order to detect a syntax error. Because no unexpected token or expected tokens can then be reported, the verbose syntax error message described above is suppressed, and the parser instead - reports the simpler message, "syntax error". Previously, this + reports the simpler message, `syntax error'. Previously, this suppression was sometimes erroneously triggered by %nonassoc when a lookahead was actually required. Now verbose messages are suppressed only when all previous lookaheads have already been @@ -298,6 +298,51 @@ Bison News *** The top element of each of the value stack and location stack is now cleared when popped so that it can be garbage collected. +*** Parser traces now print the top element of the stack. + +** -W/--warnings fixes: + +*** Bison now properly recognizes the `no-' versions of categories: + + For example, given the following command line, Bison now enables all + warnings except warnings for incompatibilities with POSIX Yacc: + + bison -Wall,no-yacc gram.y + +*** Bison now treats S/R and R/R conflicts like other warnings: + + Previously, conflict reports were independent of Bison's normal + warning system. Now, Bison recognizes the warning categories + `conflicts-sr' and `conflicts-rr'. This change has important + consequences for the -W and --warnings command-line options. For + example: + + bison -Wno-conflicts-sr gram.y # S/R conflicts not reported + bison -Wno-conflicts-rr gram.y # R/R conflicts not reported + bison -Wnone gram.y # no conflicts are reported + bison -Werror gram.y # any conflict is an error + + However, as before, if the %expect or %expect-rr directive is + specified, an unexpected number of conflicts is an error, and an + expected number of conflicts is not reported, so -W and --warning + then have no effect on the conflict report. + +*** The `none' category no longer disables a preceding `error': + + For example, for the following command line, Bison now reports + errors instead of warnings for incompatibilities with POSIX Yacc: + + bison -Werror,none,yacc gram.y + +*** 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, + given the following command line, Bison is now guaranteed to + suppress all warnings: + + bison -Wnone gram.y + * Changes in version 2.4.3 (2010-08-05): ** Bison now obeys -Werror and --warnings=error for warnings about