diff --git a/TODO b/TODO index 4da4100d..55e7c996 100644 --- a/TODO +++ b/TODO @@ -1,20 +1,11 @@ * Bison 3.6 -** C++ -yyreport_syntax_error should always be the name of the reporting, yyparse -should not have to dispatch to several APIs. - ** Documentation -- yyexpected_tokens in all the languages. +- yyexpected_tokens/expected_tokens/expectedTokens in all the languages. - YYENOMEM - YYERRCODE, YYUNDEF, YYEOF - i18n in Java - symbol.type_get should be kind_get, and it's not documented. -** Naming conventions -There's no good reason to use the "yy" prefix in parser::context, is there? -See also the case of Java. We should keep the prefix for private -implementation details, but maybe not for public APIs. - ** User token number, internal symbol number, external token number, etc. There is some confusion over these terms, which is even a problem for translators. We need something clear, especially if we provide access to diff --git a/data/skeletons/lalr1.cc b/data/skeletons/lalr1.cc index 4387fbfc..13fab5bf 100644 --- a/data/skeletons/lalr1.cc +++ b/data/skeletons/lalr1.cc @@ -247,7 +247,7 @@ m4_define([b4_shared_declarations], /// Put in YYARG at most YYARGN of the expected tokens, and return the /// number of tokens stored in YYARG. If YYARG is null, return the /// number of expected tokens (guaranteed to be less than YYNTOKENS). - int yyexpected_tokens (symbol_kind_type yyarg[], int yyargn) const; + int expected_tokens (symbol_kind_type yyarg[], int yyargn) const; private: const ]b4_parser_class[& yyparser_; @@ -276,7 +276,7 @@ m4_define([b4_shared_declarations], [custom], [[ /// Report a syntax error /// \param yyctx the context in which the error occurred. - void yyreport_syntax_error (const context& yyctx) const;]], + void report_syntax_error (const context& yyctx) const;]], [detailed\|verbose], [[ /// The arguments of the error message. int yy_syntax_error_arguments_ (const context& yyctx, @@ -1074,7 +1074,7 @@ b4_dollar_popdef])[]dnl error (]b4_join(b4_locations_if([yyla.location]), [[YY_MOVE (msg)]])[);]], [custom], [[ context yyctx (*this, yyla); - yyreport_syntax_error (yyctx);]], + report_syntax_error (yyctx);]], [[ context yyctx (*this, yyla); std::string msg = yysyntax_error_ (yyctx); @@ -1230,7 +1230,7 @@ b4_dollar_popdef])[]dnl {} int - ]b4_parser_class[::context::yyexpected_tokens (symbol_kind_type yyarg[], int yyargn) const + ]b4_parser_class[::context::expected_tokens (symbol_kind_type yyarg[], int yyargn) const { // Actual number of expected tokens int yycount = 0; @@ -1462,7 +1462,7 @@ b4_dollar_popdef])[]dnl { if (yyarg) yyarg[0] = yyctx.token (); - int yyn = yyctx.yyexpected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1); + int yyn = yyctx.expected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1); return yyn + 1; } return 0; diff --git a/tests/local.at b/tests/local.at index 3e1cc1a8..73319a18 100644 --- a/tests/local.at +++ b/tests/local.at @@ -746,7 +746,7 @@ void std::cerr << ]AT_LOCATION_IF([l << ": " << ])[m << '\n'; }]AT_ERROR_CUSTOM_IF([[ void -]AT_NAMESPACE[::parser::yyreport_syntax_error (const context& ctx) const +]AT_NAMESPACE[::parser::report_syntax_error (const context& ctx) const {]AT_PARAM_IF([m4_bpatsubst(m4_defn([AT_PARSE_PARAMS]), [[^,]+[^A-Za-z_0-9]\([A-Za-z_][A-Za-z_0-9]*\),* *], [ YYUSE (\1);])])[]m4_bmatch(m4_defn([AT_PARSE_PARAMS]), [nerrs],[[ @@ -762,7 +762,7 @@ void { enum { TOKENMAX = 10 }; symbol_kind_type expected[TOKENMAX]; - int n = ctx.yyexpected_tokens (expected, TOKENMAX); + int n = ctx.expected_tokens (expected, TOKENMAX); if (0 < n) { std::cerr << " (expected:";