POSIX Yacc whose use is reported by -Wyacc, and rejected in Yacc
mode (--yacc).
+** YYFAIL now produces warnings and Java parsers no longer implement it.
+
+ YYFAIL has existed for many years as an undocumented feature of
+ deterministic parsers in C generated by Bison. More recently, it was
+ a documented feature of Bison's experimental Java parsers. As
+ promised in Bison 2.4.2's NEWS entry, any appearance of YYFAIL in a
+ semantic action now produces a deprecation warning, and Java parsers
+ no longer implement YYFAIL at all. For further details, including a
+ discussion of how to suppress C preprocessor warnings about YYFAIL
+ being unused, see the Bison 2.4.2 NEWS entry.
+
** Temporary hack for adding a semicolon to the user action.
Previously, Bison appended a semicolon to every user action for
were resolved with %nonassoc. Such tokens are now properly omitted
from the list.
-* Changes in version 2.4.2 (????-??-??):
+** Destructor calls fixed for lookaheads altered in semantic actions.
+
+ Previously for deterministic parsers in C, if a user semantic action
+ altered yychar, the parser in some cases used the old yychar value to
+ 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 (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.
+
+** Failures in the test suite for GCC 4.5 have been fixed.
+
+** 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.
+
+** Minor documentation fixes.
+
+* Changes in version 2.4.2 (2010-03-20):
+
+** Some portability problems that resulted in failures and livelocks
+ in the test suite on some versions of at least Solaris, AIX, HP-UX,
+ RHEL4, and Tru64 have been addressed. As a result, fatal Bison
+ errors should no longer cause M4 to report a broken pipe on the
+ affected platforms.
+
+** `%prec IDENTIFIER' requires IDENTIFIER to be defined separately.
+
+ POSIX specifies that an error be reported for any identifier that does
+ not appear on the LHS of a grammar rule and that is not defined by
+ %token, %left, %right, or %nonassoc. Bison 2.3b and later lost this
+ error report for the case when an identifier appears only after a
+ %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.
-----
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+Inc.
This file is part of Bison, the GNU Parser Generator.