X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/bb9191dd311e4c6d80f8dd12c6a7ce9254404fbc..771a7fb869219992c78dfd4ee651da07fb937323:/NEWS diff --git a/NEWS b/NEWS index cacdb770..177fbbb6 100644 --- a/NEWS +++ b/NEWS @@ -3,42 +3,6 @@ Bison News * Changes in version ?.? (????-??-??): -** 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) - - ** Additional yylex/yyparse arguments The new directive %param declare additional argument to both yylex @@ -87,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 @@ -266,7 +239,52 @@ Bison News determine which destructor to call for the lookahead upon a syntax error or upon parser return. This bug has been fixed. -* Changes in version 2.4.3 (????-??-??): +** 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. @@ -281,6 +299,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 @@ -1422,7 +1442,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.