[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: yacc: comply with recent POSIX updates: declare yyerror and yylex
From: |
Akim Demaille |
Subject: |
Re: yacc: comply with recent POSIX updates: declare yyerror and yylex |
Date: |
Wed, 11 Aug 2021 18:02:45 +0200 |
> commit fda40895114e5fdeb8c5fc3091c259a3952babac
> Author: Akim Demaille <akim.demaille@gmail.com>
> 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.