mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-23 11:13:03 +00:00
glr.c: add support for parse.error=custom
* data/skeletons/glr.c (yyreportSyntaxError): Call the user's yyreport_syntax_error in custom mode. * tests/calc.at: Check it.
This commit is contained in:
@@ -2180,6 +2180,25 @@ yysyntax_error_arguments (const yyGLRStack* yystackp,
|
|||||||
}
|
}
|
||||||
]])[
|
]])[
|
||||||
|
|
||||||
|
]m4_case(b4_percent_define_get([[parse.error]]),
|
||||||
|
[custom],
|
||||||
|
[[/* User defined function to report a syntax error. */
|
||||||
|
typedef yyGLRStack yyparse_context_t;
|
||||||
|
static int
|
||||||
|
yyreport_syntax_error (const yyGLRStack* yystackp]b4_user_formals[);
|
||||||
|
|
||||||
|
]b4_locations_if([[/* The location of this context. */
|
||||||
|
static YYLTYPE *
|
||||||
|
yyparse_context_location (const yyGLRStack *yystackp) YY_ATTRIBUTE_UNUSED;
|
||||||
|
|
||||||
|
static YYLTYPE *
|
||||||
|
yyparse_context_location (const yyGLRStack *yystackp)
|
||||||
|
{
|
||||||
|
YYUSE (yystackp);
|
||||||
|
return &yylloc;
|
||||||
|
}]])])[
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
yyreportSyntaxError (yyGLRStack* yystackp]b4_user_formals[)
|
yyreportSyntaxError (yyGLRStack* yystackp]b4_user_formals[)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -877,8 +877,9 @@ AT_CHECK_CALC_GLR([%define parse.error verbose])
|
|||||||
AT_CHECK_CALC_GLR([%define api.pure %locations])
|
AT_CHECK_CALC_GLR([%define api.pure %locations])
|
||||||
AT_CHECK_CALC_GLR([%define parse.error verbose %locations])
|
AT_CHECK_CALC_GLR([%define parse.error verbose %locations])
|
||||||
|
|
||||||
AT_CHECK_CALC_GLR([%define parse.error verbose %locations %defines %name-prefix "calc" %verbose %yacc])
|
AT_CHECK_CALC_GLR([%define parse.error custom %locations %defines %name-prefix "calc" %verbose %yacc])
|
||||||
AT_CHECK_CALC_GLR([%define parse.error detailed %locations %defines %name-prefix "calc" %verbose %yacc])
|
AT_CHECK_CALC_GLR([%define parse.error detailed %locations %defines %name-prefix "calc" %verbose %yacc])
|
||||||
|
AT_CHECK_CALC_GLR([%define parse.error verbose %locations %defines %name-prefix "calc" %verbose %yacc])
|
||||||
|
|
||||||
AT_CHECK_CALC_GLR([%debug])
|
AT_CHECK_CALC_GLR([%debug])
|
||||||
AT_CHECK_CALC_GLR([%define parse.error verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc])
|
AT_CHECK_CALC_GLR([%define parse.error verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc])
|
||||||
|
|||||||
Reference in New Issue
Block a user