X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/6ee881f6a28bd1036d5ffb1ecef5af7827ac7411..a6e5a28079865c4924194685723962f198fd33ff:/NEWS diff --git a/NEWS b/NEWS index 3d1df5cd..423cd7e0 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,14 @@ Bison News * Changes in version 2.5 (????-??-??): +** Grammar symbol names can now contain non-initial dashes: + + Consistently with directives (such as %error-verbose) and with + %define variables (e.g. push-pull), grammar symbol names may contain + dashes in any position except the beginning. This is a GNU + extension over POSIX Yacc. Thus, use of this extension is reported + by -Wyacc and rejected in Yacc mode (--yacc). + ** Named references: Historically, Yacc and Bison have supported positional references @@ -49,27 +57,27 @@ Bison News %define lr.type ielr %define lr.type canonical-lr - The default reduction optimization in the parser tables can also be - adjusted using `%define lr.default-reductions'. See the documentation - for `%define lr.type' and `%define lr.default-reductions' in the - section `Bison Declaration Summary' in the Bison manual for the - details. + The default-reduction optimization in the parser tables can also be + adjusted using `%define lr.default-reductions'. For details on both + of these features, see the new section `Tuning LR' in the Bison + manual. These features are experimental. More user feedback will help to stabilize them. -** LAC (lookahead correction) for syntax error handling: +** LAC (Lookahead Correction) for syntax error handling: Canonical LR, IELR, and LALR can suffer from a couple of problems upon encountering a syntax error. First, the parser might perform additional parser stack reductions before discovering the syntax - error. Such reductions perform user semantic actions that are + error. Such reductions can perform user semantic actions that are unexpected because they are based on an invalid token, and they cause error recovery to begin in a different syntactic context than the one in which the invalid token was encountered. Second, when - verbose error messages are enabled (with %error-verbose or `#define - YYERROR_VERBOSE'), the expected token list in the syntax error - message can both contain invalid tokens and omit valid tokens. + verbose error messages are enabled (with %error-verbose or the + obsolete `#define YYERROR_VERBOSE'), the expected token list in the + syntax error message can both contain invalid tokens and omit valid + tokens. The culprits for the above problems are %nonassoc, default reductions in inconsistent states, and parser state merging. Thus, @@ -77,11 +85,11 @@ Bison News %nonassoc is used or if default reductions are enabled for inconsistent states. - LAC is a new mechanism within the parsing algorithm that completely - solves these problems for canonical LR, IELR, and LALR without - sacrificing %nonassoc, default reductions, or state mering. When - LAC is in use, canonical LR and IELR behave exactly the same for - both syntactically acceptable and syntactically unacceptable input. + LAC is a new mechanism within the parsing algorithm that solves + these problems for canonical LR, IELR, and LALR without sacrificing + %nonassoc, default reductions, or state merging. When LAC is in + use, canonical LR and IELR behave almost exactly the same for both + syntactically acceptable and syntactically unacceptable input. While LALR still does not support the full language-recognition power of canonical LR and IELR, LAC at least enables LALR's syntax error handling to correctly reflect LALR's language-recognition @@ -92,20 +100,12 @@ Bison News %define parse.lac full - See the documentation for `%define parse.lac' in the section `Bison - Declaration Summary' in the Bison manual for additional details. + See the new section `LAC' in the Bison manual for additional + details including a few caveats. LAC is an experimental feature. More user feedback will help to stabilize it. -** Grammar symbol names can now contain dashes: - - Consistently with directives (such as %error-verbose) and variables - (e.g. push-pull), grammar symbol names may include dashes in any - position, similarly to periods and underscores. This is GNU - extension over POSIX Yacc whose use is reported by -Wyacc, and - rejected in Yacc mode (--yacc). - ** %define improvements: *** Can now be invoked via the command line: @@ -255,11 +255,11 @@ Bison News ** 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 a complete fix requires LAC, described above: + When %error-verbose or the obsolete `#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 a more complete fix requires LAC, described above: *** When %nonassoc is used, there can exist parser states that accept no tokens, and so the parser does not always require a lookahead token @@ -291,6 +291,15 @@ Bison News canonical LR. However, LAC is still experimental and is disabled by default. +** Java skeleton fixes: + +*** A location handling bug has been fixed. + +*** 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. + * Changes in version 2.4.3 (2010-08-05): ** Bison now obeys -Werror and --warnings=error for warnings about @@ -1452,9 +1461,7 @@ End: ----- -Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, -2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -Inc. +Copyright (C) 1995-2011 Free Software Foundation, Inc. This file is part of Bison, the GNU Parser Generator.