Re: Error UTF-8 strings
Akim Demaille <[email protected]>
| Newsgroups | gmane.comp.parsers.bison.bugs |
|---|---|
| Message-ID | <[email protected]> |
> Le 23 juin 2020 à 11:12, Hans Åberg <[email protected]> a écrit : > > >> On 23 Jun 2020, at 07:47, Akim Demaille <[email protected]> wrote: >> >>> The question is if that helps, as it is the yytname_ that is translated according to the LC_CTYPE environment variable. >>> >>> This also introduces a locale dependency in the Bison compilation, so that the generated parser no longer is platform independent. >> >> Yes, that is indeed exactly what I meant: verbose is bad, and always was. >> Use "detailed" instead. > > From what I can see by comparing the outputs, UTF-8 is still converted, though the writeout might be correct. With "verbose", I get in yytname_ an entry > "\"\\342\\210\\216\"" > whereas with "detailed" in yy_sname > "\342\210\216" > > An improvement if you are not supposed to read the parser source code. > > The other errors occurred because I report errors in the grammar actions as: > throw syntax_error(@x, "Name " + $x.text + " already defined in this scope as " > + yytnamerr_(yytname_[x0->first - 255]) + "."); > > So perhaps you made some API for that? yysymbol_name(x0->first). If you need something else, you'll have to read the doc about parse.error=custom.