Re: yacc: comply with recent POSIX updates: declare yyerror and yylex
Akim Demaille <[email protected]> Wed, 11 Aug 2021 18:02:45 +0200
| Newsgroups | gmane.comp.parsers.bison.patches |
|---|---|
| Message-ID | <[email protected]> |
> commit fda40895114e5fdeb8c5fc3091c259a3952babac > Author: Akim Demaille <[email protected]> > Date: Thu Aug 5 08:39:24 2021 +0200 > > yacc: comply with recent POSIX updates: declare yyerror and yylex > > In POSIX Yacc mode, declare yyerror and yylex unless already #defined, > or if YYERROR_IS_DECLARED/YYLEX_IS_DECLARED are defined (for > consistency with Bison's YYSTYPE_IS_DECLARED/YYLTYPE_IS_DECLARED). > See <https://austingroupbugs.net/view.php?id=1388#c5220>. > > * data/skeletons/c.m4 (b4_function_declare): Resurect. > (b4_lex_formals): Since we will possibly expose this prototype > in the header, take the prefix into account. > * data/skeletons/yacc.c (b4_declare_yyerror_and_yylex): New. > (b4_shared_declarations): Use it. > > * tests/local.at (AT_YACC_IF): New. > When in Yacc mode, set the `yacc` Autotest keyword. > (AT_YYERROR_DECLARE(c)): Don't declare in Yacc mode, > to avoid clashes (since this signature is static). > (AT_YYERROR_DEFINE(c)): Don't define as static in Yacc mode. > * tests/regression.at (Early token definitions with --yacc): Specify > that we are in Yacc mode. Pushed.