c++: demonstrate custom error messages in the examples

Let's use c++/glr to demonstrate custom error messages in C++ (not
just in glr2.cc).

* examples/c++/glr/c++-types.yy (report_syntax_error): New.
* examples/c++/glr/c++-types.test: Adjust.
* examples/c/bistromathic/parse.y: Comment changes.
* tests/local.at (AT_YYERROR_DEFINE(c++)): Use a nicer way to print
the lookakead's name.
This commit is contained in:
Akim Demaille
2021-09-07 08:21:40 +02:00
parent a75072476e
commit 2142e59155
6 changed files with 58 additions and 11 deletions

View File

@@ -823,11 +823,8 @@ void
++*nerrs;]])[]AT_LOCATION_IF([[
std::cerr << ctx.location () << ": ";]])[
std::cerr << "syntax error";
{
symbol_kind_type la = ctx.token ();
if (la != symbol_kind::S_YYEMPTY)
std::cerr << " on token [" << symbol_name (la) << ']';
}
if (!ctx.lookahead ().empty ())
std::cerr << " on token [" << ctx.lookahead ().name () << ']';
{
enum { TOKENMAX = 10 };
symbol_kind_type expected[TOKENMAX];