X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/242cc08e8da09221339a70edf24b9b57910e3dba..e20e6a50d57ce0fb1a51a4b27cf6c8cfdd64bf99:/NEWS diff --git a/NEWS b/NEWS index 403265fa..5a9d314a 100644 --- a/NEWS +++ b/NEWS @@ -2,12 +2,44 @@ GNU Bison NEWS * Noteworthy changes in release ?.? (????-??-??) [?] -** Future changes + Bison no longer executes user-specified M4 code when processing a grammar. + +** Future Changes + + In addition to the removal of the features announced in Bison 2.6, the + next major release will remove the "Temporary hack for adding a semicolon + to the user action", as announced in the release 2.5. Instead of: + + exp: exp "+" exp { $$ = $1 + $3 }; + + write: + + exp: exp "+" exp { $$ = $1 + $3; }; + +** Bug fixes + +*** Type names are now properly escaped. + +*** glr.cc: set_debug_level and debug_level work as expected. + +** Type names in printers and destructors + + For consistency with rule actions, it is now possible to qualify $$ by a + type-name in printers and destructors. For instance: + + %printer { fprintf (yyo, "(%d, %f)", $$, $$); } <*> <>; + + will display two values for each typed and untyped symbol (provided + that YYSTYPE supports it). + +* Noteworthy changes in release 2.6 (2012-07-19) [stable] + +** Future Changes The next major release of Bison will drop support for the following deprecated features. Please report disagreements to bug-bison@gnu.org. -*** K&C parsers +*** K&R C parsers Support for generating parsers in K&R C will be removed. Parsers generated for C support ISO C90, and are tested with ISO C99 and ISO C11 @@ -32,7 +64,7 @@ GNU Bison NEWS because existing versions of ylwrap (e.g., Automake 1.12.1) do not support it. -** Headers +** Generated Parser Headers *** Guards (yacc.c, glr.c, glr.cc) @@ -94,10 +126,19 @@ GNU Bison NEWS # define BAR_FOO_H # define BAR_FOO_H /* Enabling traces. */ /* Enabling traces. */ - # ifndef YYDEBUG # ifndef YYDEBUG - # define YYDEBUG 0 # define YYDEBUG 0 - # endif # endif - # if YYDEBUG # if YYDEBUG + # ifndef YYDEBUG | # ifndef BAR_DEBUG + > # if defined YYDEBUG + > # if YYDEBUG + > # define BAR_DEBUG 1 + > # else + > # define BAR_DEBUG 0 + > # endif + > # else + # define YYDEBUG 0 | # define BAR_DEBUG 0 + > # endif + # endif | # endif + + # if YYDEBUG | # if BAR_DEBUG extern int bar_debug; extern int bar_debug; # endif # endif