diff --git a/TODO b/TODO index d9277255..de240dda 100644 --- a/TODO +++ b/TODO @@ -185,6 +185,8 @@ Line -1 and -3 should mention CATEGORIE, not CATEGORY. * Bison 3.8 ** Rewrite glr.cc (currently glr2.cc) +*** custom error messages + *** Remove jumps We can probably replace setjmp/longjmp with exceptions. That would help tremendously other languages such as D and Java that probably have no diff --git a/data/skeletons/glr.c b/data/skeletons/glr.c index 117c996b..fab3733f 100644 --- a/data/skeletons/glr.c +++ b/data/skeletons/glr.c @@ -2174,10 +2174,10 @@ yypcontext_token (const yyGLRStack *yystackp) } ]b4_locations_if([[/* The location of the lookahead of this context. */ -static YYLTYPE * +static const YYLTYPE * yypcontext_location (const yyGLRStack *yystackp) YY_ATTRIBUTE_UNUSED; -static YYLTYPE * +static const YYLTYPE * yypcontext_location (const yyGLRStack *yystackp) { YY_USE (yystackp); diff --git a/tests/calc.at b/tests/calc.at index cd4b50a1..47ef720c 100644 --- a/tests/calc.at +++ b/tests/calc.at @@ -1469,6 +1469,8 @@ AT_CHECK_CALC_GLR_CC([%debug]) AT_CHECK_CALC_GLR_CC([%define parse.error verbose %debug %name-prefix "calc" %verbose]) AT_CHECK_CALC_GLR_CC([%define parse.error verbose %debug %name-prefix "calc" %define api.token.prefix {TOK_} %verbose]) +AT_CHECK_CALC_GLR_CC([%define parse.error custom %locations %header %name-prefix "calc" %verbose]) + AT_CHECK_CALC_GLR_CC([%locations %header %define parse.error verbose %debug %name-prefix "calc" %verbose %parse-param {semantic_value *result}{int *count}{int *nerrs}]) AT_CHECK_CALC_GLR_CC([%locations %header %define parse.error verbose %debug %define api.prefix {calc} %verbose %parse-param {semantic_value *result}{int *count}{int *nerrs}])