parser: deprecate %error-verbose

It is unfortunate that %error_verbose was properly diagnosed as
obsoleted by "%define parse.error verbose", but %error-verbose was
not.

* src/parse-gram.y (%error-verbose): Remove support.
* src/scan-gram.l: Do it here instead, with a warning.
* tests/input.at (Deprecated directives): Check it.
This commit is contained in:
Akim Demaille
2018-11-12 07:16:59 +01:00
parent be7c620d65
commit 35b8e0e947
4 changed files with 12 additions and 9 deletions

3
NEWS
View File

@@ -23,6 +23,9 @@ GNU Bison NEWS
was never officially documented. Its use now triggers warnings.
Eventually, support will be removed. Use %type instead.
The use of the %error-verbose directive is deprecated in favor of "%define
parse.error verbose" since Bison 3.0, but no warning was issued.
* Noteworthy changes in release 3.2.1 (2018-11-09) [stable]
** Bug fixes

View File

@@ -143,7 +143,6 @@
PERCENT_DEFAULT_PREC "%default-prec"
PERCENT_DEFINE "%define"
PERCENT_DEFINES "%defines"
PERCENT_ERROR_VERBOSE "%error-verbose"
PERCENT_EXPECT "%expect"
PERCENT_EXPECT_RR "%expect-rr"
PERCENT_FLAG "%<flag>"
@@ -290,12 +289,6 @@ prologue_declaration:
defines_flag = true;
spec_defines_file = xstrdup ($2);
}
| "%error-verbose"
{
muscle_percent_define_insert ("parse.error", @1, muscle_keyword,
"verbose",
MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE);
}
| "%expect" INT { expected_sr_conflicts = $2; }
| "%expect-rr" INT { expected_rr_conflicts = $2; }
| "%file-prefix" STRING { spec_file_prefix = $2; }

View File

@@ -223,7 +223,6 @@ eqopt ([[:space:]]*=)?
"%destructor" return PERCENT_DESTRUCTOR;
"%dprec" return PERCENT_DPREC;
"%empty" return PERCENT_EMPTY;
"%error-verbose" return PERCENT_ERROR_VERBOSE;
"%expect" return PERCENT_EXPECT;
"%expect-rr" return PERCENT_EXPECT_RR;
"%file-prefix" return PERCENT_FILE_PREFIX;
@@ -259,6 +258,10 @@ eqopt ([[:space:]]*=)?
"%verbose" return PERCENT_VERBOSE;
"%yacc" return PERCENT_YACC;
/* Deprecated since Bison 3.0 (2013-07-25), but the warning is
issued only since Bison 3.3. */
"%error-verbose" DEPRECATED("%define parse.error verbose");
/* Deprecated since Bison 2.7.90, 2012. */
"%default"[-_]"prec" DEPRECATED("%default-prec");
"%error"[-_]"verbose" DEPRECATED("%define parse.error verbose");

View File

@@ -2188,11 +2188,12 @@ AT_DATA_GRAMMAR([[input.y]],
%output = "foo"
%pure_parser
%token_table
%error-verbose
%glr-parser
%% exp : '0'
]])
AT_BISON_CHECK([[input.y]], [[0]], [[]],
AT_BISON_CHECK([[input.y]], [[1]], [[]],
[[input.y:10.1-13: warning: deprecated directive: '%default_prec', use '%default-prec' [-Wdeprecated]
input.y:11.1-14: warning: deprecated directive: '%error_verbose', use '%define parse.error verbose' [-Wdeprecated]
input.y:12.1-10: warning: deprecated directive: '%expect_rr', use '%expect-rr' [-Wdeprecated]
@@ -2207,6 +2208,9 @@ input.y:23.1-9: warning: deprecated directive: '%no_lines', use '%no-lines' [-Wd
input.y:24.1-9: warning: deprecated directive: '%output =', use '%output' [-Wdeprecated]
input.y:25.1-12: warning: deprecated directive: '%pure_parser', use '%pure-parser' [-Wdeprecated]
input.y:26.1-12: warning: deprecated directive: '%token_table', use '%token-table' [-Wdeprecated]
input.y:27.1-14: warning: deprecated directive: '%error-verbose', use '%define parse.error verbose' [-Wdeprecated]
input.y:27-6: error: %define variable 'parse.error' redefined
input.y:11-6: previous definition
]])
AT_CLEANUP