]> git.saurik.com Git - bison.git/blobdiff - NEWS
build: use gnulib's new bootstrap_sync option.
[bison.git] / NEWS
diff --git a/NEWS b/NEWS
index e5ebfe4bca11d54bbd8286fdc428211111340b1d..c8188395f01d6b227d8c5fe997ac697787491a8b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -51,6 +51,15 @@ Bison News
   use of the %error-verbose directive is deprecated in favor of
   %define parse.error "verbose".
 
+** Semantic predicates
+
+  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
+  in GLR parsers, rather than being deferred.  The result is that they
+  allow the programmer to prune possible parses based on the values of
+  runtime expressions.
+
 * Changes in version 2.5 (????-??-??):
 
 ** Named References Support
@@ -214,14 +223,41 @@ Bison News
   Bison now warns when a character literal is not of length one.  In
   some future release, Bison will report an error instead.
 
-** Verbose error messages fixed for nonassociative tokens.
-
-  When %error-verbose is specified, syntax error messages produced by
-  the generated parser include the unexpected token as well as a list of
-  expected tokens.  Previously, this list erroneously included tokens
-  that would actually induce a syntax error because conflicts for them
-  were resolved with %nonassoc.  Such tokens are now properly omitted
-  from the list.
+** Verbose syntax error message fixes:
+
+  When %error-verbose or `#define YYERROR_VERBOSE' is specified, syntax
+  error messages produced by the generated parser include the unexpected
+  token as well as a list of expected tokens.  The effect of %nonassoc
+  on these verbose messages has been corrected in two ways, but
+  additional fixes are still being implemented:
+
+*** When %nonassoc is used, there can exist parser states that accept no
+    tokens, and so the parser does not always require a lookahead token
+    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
+    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
+    shifted or discarded.
+
+*** Previously, the list of expected tokens erroneously included tokens
+    that would actually induce a syntax error because conflicts for them
+    were resolved with %nonassoc in the current parser state.  Such
+    tokens are now properly omitted from the list.
+
+*** Expected token lists are still often wrong due to state merging
+    (from LALR or IELR) and default reductions, which can both add and
+    subtract valid tokens.  Canonical LR almost completely fixes this
+    problem by eliminating state merging and default reductions.
+    However, there is one minor problem left even when using canonical
+    LR and even after the fixes above.  That is, if the resolution of a
+    conflict with %nonassoc appears in a later parser state than the one
+    at which some syntax error is discovered, the conflicted token is
+    still erroneously included in the expected token list.  We are
+    currently working on a fix to eliminate this problem and to
+    eliminate the need for canonical LR.
 
 ** Destructor calls fixed for lookaheads altered in semantic actions.
 
@@ -272,7 +308,10 @@ Bison News
   the user %code sections so that its #ifndef guard does not try to
   override the user's YYLLOC_DEFAULT if provided.
 
-* Changes in version 2.4.3 (????-??-??):
+* Changes in version 2.4.3 (2010-08-05):
+
+** Bison now obeys -Werror and --warnings=error for warnings about
+   grammar rules that are useless in the parser due to conflicts.
 
 ** Problems with spawning M4 on at least FreeBSD 8 and FreeBSD 9 have
    been fixed.
@@ -287,6 +326,8 @@ Bison News
    errors in Bison 2.5.  They will remain warnings, which should be
    sufficient for POSIX while avoiding backward compatibility issues.
 
+** Minor documentation fixes.
+
 * Changes in version 2.4.2 (2010-03-20):
 
 ** Some portability problems that resulted in failures and livelocks