On May 10, 2019, at 6:47 AM, Hans Åberg <hans.aber...@telia.com> wrote: > > >> On 10 May 2019, at 07:24, Akim Demaille <a...@lrde.epita.fr> wrote: >> >> 1. there is a real and valid need for the feature, which I still need >> to be convinced of, especially because symbol names are technical >> details! > > One can also write better error messages by using these internal yytname_ > table names: > > If one checks on a lookup table whether the name has been already defined and > it is, then one can give information about that already present name. For > example: > “name” { > std::optional<std::pair<token_type, semantic_type> x0 = > my::symbol_table.find($x.text); > > if (x0) { > throw syntax_error(@x, "Name " + $x.text + " already defined in this > scope as " > + yytnamerr_(yytname_[x0->first - 255])); > } > … > } > > Right now, all parts are internal and may change: the token translation > x0->first - 255, yytname_ lookup, and error message cleanup yytnamerr_.
I agree with this — this has been an annoyance for me for years. Derek _______________________________________________ help-bison@gnu.org https://lists.gnu.org/mailman/listinfo/help-bison