]> git.saurik.com Git - bison.git/blobdiff - NEWS
Do not use date ranges in copyright notices.
[bison.git] / NEWS
diff --git a/NEWS b/NEWS
index 4c4409b168ba22e404297c0c4262d9b120ac09ac..e5ebfe4bca11d54bbd8286fdc428211111340b1d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -6,7 +6,7 @@ Bison News
 ** Additional yylex/yyparse arguments
 
   The new directive %param declare additional argument to both yylex
-  and yyparse.  The %lex-param, %parse-param, and %param directive
+  and yyparse.  The %lex-param, %parse-param, and %param directives
   support one or more arguments.  Instead of
 
       %lex-param   {arg1_type *arg1}
@@ -180,12 +180,6 @@ Bison News
   discussion of how to suppress C preprocessor warnings about YYFAIL
   being unused, see the Bison 2.4.2 NEWS entry.
 
-** `%prec IDENTIFIER' requires IDENTIFIER to be defined separately.
-
-  As promised in Bison 2.4.2's NEWS entry, it is now an error if a token
-  that appears after a %prec directive is not defined by %token, %left,
-  %right, or %nonassoc.  This is required by POSIX.
-
 ** Temporary hack for adding a semicolon to the user action.
 
   Previously, Bison appended a semicolon to every user action for
@@ -236,6 +230,48 @@ Bison News
   determine which destructor to call for the lookahead upon a syntax
   error or upon parser return.  This bug has been fixed.
 
+** C++ parsers use YYRHSLOC
+
+  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
+
+      # define YYLLOC_DEFAULT(Current, Rhs, N)                             \
+        do                                                                 \
+          if (N)                                                           \
+            {                                                              \
+              (Current).first = (Rhs)[1].location.first;                   \
+              (Current).last  = (Rhs)[N].location.last;                    \
+            }                                                              \
+          else                                                             \
+            {                                                              \
+              (Current).first = (Current).last = (Rhs)[0].location.last;   \
+            }                                                              \
+        while (false)
+
+  use:
+
+      # define YYLLOC_DEFAULT(Current, Rhs, N)                             \
+        do                                                                 \
+          if (N)                                                           \
+            {                                                              \
+              (Current).first = YYRHSLOC (Rhs, 1).first;                   \
+              (Current).last  = YYRHSLOC (Rhs, N).last;                    \
+            }                                                              \
+          else                                                             \
+            {                                                              \
+              (Current).first = (Current).last = YYRHSLOC (Rhs, 0).last;   \
+            }                                                              \
+        while (false)
+
+** YYLLOC_DEFAULT in C++
+
+  The default implementation of YYLLOC_DEFAULT used to be issued in
+  the header file.  It is now output in the implementation file, after
+  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 (????-??-??):
 
 ** Problems with spawning M4 on at least FreeBSD 8 and FreeBSD 9 have
@@ -246,6 +282,11 @@ Bison News
 ** Failures in the test suite for some versions of Sun Studio C++ have
    been fixed.
 
+** Contrary to Bison 2.4.2's NEWS entry, it has been decided that
+   warnings about undefined %prec identifiers will not be converted to
+   errors in Bison 2.5.  They will remain warnings, which should be
+   sufficient for POSIX while avoiding backward compatibility issues.
+
 * Changes in version 2.4.2 (2010-03-20):
 
 ** Some portability problems that resulted in failures and livelocks
@@ -263,6 +304,8 @@ Bison News
   %prec directive.  It is now restored.  However, for backward
   compatibility with recent Bison releases, it is only a warning for
   now.  In Bison 2.5 and later, it will return to being an error.
+  [Between the 2.4.2 and 2.4.3 releases, it was decided that this
+  warning will not be converted to an error in Bison 2.5.]
 
 ** Detection of GNU M4 1.4.6 or newer during configure is improved.
 
@@ -1385,7 +1428,9 @@ End:
 
 -----
 
-Copyright (C) 1995-2010 Free Software Foundation, Inc.
+Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+Inc.
 
 This file is part of Bison, the GNU Parser Generator.