X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/242cc08e8da09221339a70edf24b9b57910e3dba..4acc22e5cf47432cec8e196f6f1fefb43453f3b5:/NEWS?ds=sidebyside diff --git a/NEWS b/NEWS index 403265fa..b99290c9 100644 --- a/NEWS +++ b/NEWS @@ -2,12 +2,50 @@ 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. + +*** Stray @ or $ in actions + + While Bison used to warn about stray $ or @ in action rules, it did not + for other actions such as printers, destructors, or initial actions. It + now does. + +** Type names in actions + + For consistency with rule actions, it is now possible to qualify $$ by a + type-name in destructors, printers, and initial actions. For instance: + + %printer { fprintf (yyo, "(%d, %f)", $$, $$); } <*> <>; + + will display two values for each typed and untyped symbol (provided + that YYSTYPE has both "ival" and "fval" fields). + +* 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 +70,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 +132,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