From 39f6a8d1426417ef23893d8358511ea66cb9b361 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Thu, 21 Aug 2008 22:04:27 +0200 Subject: [PATCH] Prefer M4 to CPP. * data/lalr1.cc: Use b4_error_verbose_if instead of #if YYERROR_VERBOSE. (cherry picked from commit 422c18f48d3d545c538c61dbb7471cfa7b9e920c) --- ChangeLog | 6 ++++++ data/lalr1.cc | 25 ++++++++++--------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index f4d4806..97e3e9b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2008-11-11 Akim Demaille + Prefer M4 to CPP. + * data/lalr1.cc: Use b4_error_verbose_if instead of #if + YYERROR_VERBOSE. + +2008-11-11 Akim Demaille + Support i18n of the parse error messages. * TODO (lalr1.cc/I18n): Remove. * data/lalr1.cc (yysyntax_error_): Support the translation of the diff --git a/data/lalr1.cc b/data/lalr1.cc index f4cadc0..e7620a2 100644 --- a/data/lalr1.cc +++ b/data/lalr1.cc @@ -233,12 +233,10 @@ b4_user_stype #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE /// For a symbol, its name in clear. static const char* const yytname_[]; -#endif +#endif]b4_error_verbose_if([ -#if YYERROR_VERBOSE /// Convert the symbol name \a n to a form suitable for a diagnostic. - virtual std::string yytnamerr_ (const char *n); -#endif + static std::string yytnamerr_ (const char *n);])[ #if YYDEBUG /// A type to store symbol numbers and -1. @@ -384,8 +382,7 @@ do { \ #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus_) -]b4_namespace_open[ -#if YYERROR_VERBOSE +]b4_namespace_open[]b4_error_verbose_if([[ /* Return YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is @@ -423,8 +420,7 @@ do { \ return yystr; } - -#endif +]])[ /// Build a parser object. ]b4_parser_class_name::b4_parser_class_name[ (]b4_parse_param_decl[)]m4_ifset([b4_parse_param], [ @@ -849,12 +845,11 @@ m4_ifdef([b4_lex_param], [, ]b4_lex_param))[; // Generate an error message. std::string - ]b4_parser_class_name[::yysyntax_error_ (int yystate, int]dnl -b4_error_verbose_if([ yytoken])[) + ]b4_parser_class_name[::yysyntax_error_ (]dnl +b4_error_verbose_if([int yystate, int yytoken], + [int, int])[) { - std::string yyres; - YYUSE (yystate); -#if YYERROR_VERBOSE + std::string yyres;]b4_error_verbose_if([[ int yyn = yypact_[yystate]; if (yypact_ninf_ < yyn && yyn <= yylast_) { @@ -913,8 +908,8 @@ b4_error_verbose_if([ yytoken])[) yyres += *yyp; } else -#endif - yyres = YY_("syntax error"); + ]])dnl +[ yyres = YY_("syntax error"); return yyres; } -- 2.7.4