Fwiw some of these can be solved either by using `%define parse.error detailed` instead of `%define parse.error verbose`, which requires Bison 3.6 (2020-05-08), or removing `%define parse.error` entirely as some of the parsers do.
The yynerrs one is more annoying but can also be solved by implicitly passing it to the error callback, like (with more changes a bit here and there where the function is called directly).
```diff +#define parser_error(a,b) parser_error_(a, b, parser_nerrs) extern void parser_warning( const struct location *where, const char *message ); -extern void parser_error( const struct location *where, const char *message ); +extern void parser_error_( const struct location *where, const char *message, int error_count ); ```