X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/c85541913b99f841de090aacf626bb8f52f7f727..1f77b2e095492ae95ae6ab33b3ad1f1bf5d758d8:/NEWS diff --git a/NEWS b/NEWS index fd749368..f6e6a8c6 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,12 @@ GNU Bison NEWS ** Warnings +*** Deprecated constructs + + The new 'deprecated' warning category flags obsolete constructs whose + support will be discontinued. It is enabled by default. These warnings + used to be reported as 'other' warnings. + *** Warning categories are now displayed For instance: @@ -36,18 +42,17 @@ GNU Bison NEWS 3.28-34: warning: type is used, but is not associated to any symbol 4.28-34: warning: type is used, but is not associated to any symbol -*** Undeclared symbols +*** Undefined but unused symbols - Bison used to raise an error for %printer and %destructor directives for - undefined symbols. + Bison used to raise an error for undefined symbols that are not used in + the grammar. This is now only a warning. %printer {} symbol1 %destructor {} symbol2 + %type symbol3 %% exp: "a"; - This is now only a warning. - *** Useless destructors or printers Bison now warns about useless destructors or printers. In the following @@ -79,19 +84,19 @@ GNU Bison NEWS ** Java skeleton improvements - The constants for token names were moved to the Lexer interface. - Also, it is possible to add code to the parser's constructors using - "%code init" and "%define init_throws". + The constants for token names were moved to the Lexer interface. Also, it + is possible to add code to the parser's constructors using "%code init" + and "%define init_throws". ** C++ skeletons improvements -*** parser header (%defines) is no longer mandatory (lalr1.cc) +*** The parser header is no longer mandatory (lalr1.cc, glr.cc) - In which case, if needed, the support classes are defined in the generated - parser, instead of additional files (location.hh, position.hh and - stack.hh). + Using %defines is now optional. Without it, the needed support classes + are defined in the generated parser, instead of additional files (such as + location.hh, position.hh and stack.hh). -*** locations are no longer mandatory (lalr1.cc, glr.cc) +*** Locations are no longer mandatory (lalr1.cc, glr.cc) Both lalr1.cc and glr.cc no longer require %location. @@ -122,23 +127,23 @@ GNU Bison NEWS ** Variable api.namespace - The "namespace" variable is renamed "api.namespace". Backward + The 'namespace' variable is renamed 'api.namespace'. Backward compatibility is ensured, but upgrading is recommended. ** Variable parse.error - The variable error controls the verbosity of error messages. The - use of the %error-verbose directive is deprecated in favor of - %define parse.error "verbose". + This variable controls the verbosity of error messages. The 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 + 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 - run-time expressions. + in GLR parsers, rather than being deferred. The result is that they allow + the programmer to prune possible parses based on the values of run-time + expressions. * Noteworthy changes in release ?.? (????-??-??) [?]