* data/bison.m4 (b4_error_verbose_if): Based on error-verbose
instead of error_verbose.
* src/scan-gram.l (%error-verbose): Map the error-verbose
variable.
* doc/bison.texinfo: Promote %define error-verbose instead of
%error-verbose.
* tests/actions.at: Prefer %define error-verbose to %error-verbose.
2009-04-20 Akim Demaille <demaille@gostai.com>
2009-04-20 Akim Demaille <demaille@gostai.com>
+ variables: prefer error-verbose to error_verbose.
+ * data/bison.m4 (b4_error_verbose_if): Based on error-verbose
+ instead of error_verbose.
+ * src/scan-gram.l (%error-verbose): Map to the error-verbose
+ variable.
+ * doc/bison.texinfo: Promote %define error-verbose instead of
+ %error-verbose.
+ * tests/actions.at: Prefer %define error-verbose to %error-verbose.
+
+2009-04-15 Akim Demaille <demaille@gostai.com>
+
variables: accept dashes.
* data/bison.m4 (b4_percent_define_if_define_): Also map dashes to
underscores.
variables: accept dashes.
* data/bison.m4 (b4_percent_define_if_define_): Also map dashes to
underscores.
# b4_lex_symbol_if([IF-YYLEX-RETURNS-A-COMPLETE-SYMBOL], [IF-NOT])
# b4_variant_if([IF-VARIANT-ARE-USED], [IF-NOT])
# ----------------------------------------------
# b4_lex_symbol_if([IF-YYLEX-RETURNS-A-COMPLETE-SYMBOL], [IF-NOT])
# b4_variant_if([IF-VARIANT-ARE-USED], [IF-NOT])
# ----------------------------------------------
-b4_percent_define_if_define([error_verbose])
+b4_percent_define_if_define([error-verbose])
b4_percent_define_if_define([lex_symbol])
b4_percent_define_if_define([locations]) # Whether locations are tracked.
b4_percent_define_if_define([parse.assert])
b4_percent_define_if_define([lex_symbol])
b4_percent_define_if_define([locations]) # Whether locations are tracked.
b4_percent_define_if_define([parse.assert])
@item Default Value: @code{"false"}
@end itemize
@item Default Value: @code{"false"}
@end itemize
@item api.push_pull
@findex %define api.push_pull
@item api.push_pull
@findex %define api.push_pull
@item Default Value: @code{"pull"}
@end itemize
@item Default Value: @code{"pull"}
@end itemize
+@c api.push_pull
+
+@item error-verbose
+@findex %define error-verbose
+@itemize
+@item Languages(s):
+all.
+@item Purpose:
+Enable the generation of more verbose error messages than a instead of
+just plain @w{@code{"syntax error"}}. @xref{Error Reporting, ,The Error
+Reporting Function @code{yyerror}}.
+@item Accepted Values:
+Boolean
+@item Default Value:
+@code{false}
+@end itemize
+@c error-verbose
+
@item lr.keep_unreachable_states
@findex %define lr.keep_unreachable_states
@item lr.keep_unreachable_states
@findex %define lr.keep_unreachable_states
However, Bison does not compute which goto actions are useless.
@end itemize
@end itemize
However, Bison does not compute which goto actions are useless.
@end itemize
@end itemize
+@c lr.keep_unreachable_states
@item namespace
@findex %define namespace
@item namespace
@findex %define namespace
receives one argument. For a syntax error, the string is normally
@w{@code{"syntax error"}}.
receives one argument. For a syntax error, the string is normally
@w{@code{"syntax error"}}.
-@findex %error-verbose
-If you invoke the directive @code{%error-verbose} in the Bison
+@findex %define error-verbose
+If you invoke the directive @code{%define error-verbose} in the Bison
declarations section (@pxref{Bison Declarations, ,The Bison Declarations
Section}), then Bison provides a more verbose and specific error message
string instead of just plain @w{@code{"syntax error"}}.
declarations section (@pxref{Bison Declarations, ,The Bison Declarations
Section}), then Bison provides a more verbose and specific error message
string instead of just plain @w{@code{"syntax error"}}.
@comment file: calc++-parser.yy
@example
%define parse.trace
@comment file: calc++-parser.yy
@example
%define parse.trace
@deftypemethod {YYParser} {boolean} getErrorVerbose ()
@deftypemethodx {YYParser} {void} setErrorVerbose (boolean @var{verbose})
Get or set the option to produce verbose error messages. These are only
@deftypemethod {YYParser} {boolean} getErrorVerbose ()
@deftypemethodx {YYParser} {void} setErrorVerbose (boolean @var{verbose})
Get or set the option to produce verbose error messages. These are only
-available with the @code{%error-verbose} directive, which also turn on
+available with the @code{%define error-verbose} directive, which also turn on
verbose error messages.
@end deftypemethod
verbose error messages.
@end deftypemethod
@end deffn
@deffn {Directive} %error-verbose
@end deffn
@deffn {Directive} %error-verbose
-Bison declaration to request verbose, specific error message strings
-when @code{yyerror} is called.
+An obsolete directive standing for @samp{%define error-verbose}.
@end deffn
@deffn {Directive} %file-prefix "@var{prefix}"
@end deffn
@deffn {Directive} %file-prefix "@var{prefix}"
@deffn {Function} yyerror
User-supplied function to be called by @code{yyparse} on error.
@deffn {Function} yyerror
User-supplied function to be called by @code{yyparse} on error.
-@xref{Error Reporting, ,The Error
-Reporting Function @code{yyerror}}.
+@xref{Error Reporting, ,The Error Reporting Function @code{yyerror}}.
@end deffn
@deffn {Macro} YYERROR_VERBOSE
@end deffn
@deffn {Macro} YYERROR_VERBOSE
-An obsolete macro that you define with @code{#define} in the prologue
-to request verbose, specific error message strings
-when @code{yyerror} is called. It doesn't matter what definition you
-use for @code{YYERROR_VERBOSE}, just whether you define it. Using
-@code{%error-verbose} is preferred.
+An obsolete macro used in the @file{yacc.c} skeleton, that you define
+with @code{#define} in the prologue to request verbose, specific error
+message strings when @code{yyerror} is called. It doesn't matter what
+definition you use for @code{YYERROR_VERBOSE}, just whether you define
+it. Using @code{%define error-verbose} is preferred (@pxref{Error
+Reporting, ,The Error Reporting Function @code{yyerror}}).
@end deffn
@deffn {Macro} YYINITDEPTH
@end deffn
@deffn {Macro} YYINITDEPTH
"%defines" return PERCENT_DEFINES;
"%destructor" return PERCENT_DESTRUCTOR;
"%dprec" return PERCENT_DPREC;
"%defines" return PERCENT_DEFINES;
"%destructor" return PERCENT_DESTRUCTOR;
"%dprec" return PERCENT_DPREC;
- "%error"[-_]"verbose" RETURN_PERCENT_FLAG("error_verbose");
+ "%error"[-_]"verbose" RETURN_PERCENT_FLAG("error-verbose");
"%expect" return PERCENT_EXPECT;
"%expect"[-_]"rr" return PERCENT_EXPECT_RR;
"%file-prefix" return PERCENT_FILE_PREFIX;
"%expect" return PERCENT_EXPECT;
"%expect"[-_]"rr" return PERCENT_EXPECT_RR;
"%file-prefix" return PERCENT_FILE_PREFIX;
# Executing Actions. -*- Autotest -*-
# Executing Actions. -*- Autotest -*-
-# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software
-# Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# action.
AT_DATA_GRAMMAR([[input.y]],
# action.
AT_DATA_GRAMMAR([[input.y]],
%debug
%{
# include <stdio.h>
%debug
%{
# include <stdio.h>
AT_SETUP([Exotic Dollars])
AT_DATA_GRAMMAR([[input.y]],
AT_SETUP([Exotic Dollars])
AT_DATA_GRAMMAR([[input.y]],
%debug
%{
# include <stdio.h>
%debug
%{
# include <stdio.h>
$3
_AT_CHECK_PRINTER_AND_DESTRUCTOR($[1], $[2], $[3], $[4],
$3
_AT_CHECK_PRINTER_AND_DESTRUCTOR($[1], $[2], $[3], $[4],
%debug
%verbose
%locations
%debug
%verbose
%locations
AT_SETUP([Default tagless %printer and %destructor])
AT_DATA_GRAMMAR([[input.y]],
AT_SETUP([Default tagless %printer and %destructor])
AT_DATA_GRAMMAR([[input.y]],
%debug
%locations
%initial-action {
%debug
%locations
%initial-action {
AT_SETUP([Default tagged and per-type %printer and %destructor])
AT_DATA_GRAMMAR([[input.y]],
AT_SETUP([Default tagged and per-type %printer and %destructor])
AT_DATA_GRAMMAR([[input.y]],
[m4_pushdef([kind], [*]) m4_pushdef([not_kind], [])])
AT_DATA_GRAMMAR([[input]]$1[[.y]],
[m4_pushdef([kind], [*]) m4_pushdef([not_kind], [])])
AT_DATA_GRAMMAR([[input]]$1[[.y]],
%debug
%locations
%initial-action {
%debug
%locations
%initial-action {