From bfb74f79b8ddc721e70219643faae396842b6652 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 17 Dec 2001 23:50:16 +0000 Subject: [PATCH] (YYSTD): New macro. (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE, YYFPRINTF, YYSTDERR): Use it to simplify macros, and fix some C++ porting problems reported by Hans Aberg. --- src/bison.simple | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/bison.simple b/src/bison.simple index 65e0f960..72f18bec 100644 --- a/src/bison.simple +++ b/src/bison.simple @@ -1,7 +1,7 @@ /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line /* Skeleton output parser for bison, - Copyright 1984, 1989, 1990, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1984, 1989, 1990, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -35,18 +35,24 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ +#ifdef __cplusplus +# define YYSTD(x) std::x +#else +# define YYSTD(x) x +#endif + #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE) /* The parser invokes alloca or malloc; define the necessary symbols. */ # if YYSTACK_USE_ALLOCA # define YYSTACK_ALLOC alloca -# define YYSIZE_T size_t +# define YYSIZE_T YYSTD (size_t) # else # ifndef YYSTACK_USE_ALLOCA # if defined (alloca) || defined (_ALLOCA_H) # define YYSTACK_ALLOC alloca -# define YYSIZE_T size_t +# define YYSIZE_T YYSTD (size_t) # else # if defined (__GNUC__) || defined (_AIX) || defined (__hpux) # define YYSTACK_ALLOC __builtin_alloca @@ -58,7 +64,7 @@ # if defined (__sgi) || defined (__sparc__) || defined (__sparc) || defined (__sun) # include /* INFRINGES ON USER NAME SPACE */ # define YYSTACK_ALLOC alloca -# define YYSIZE_T size_t +# define YYSIZE_T YYSTD (size_t) # endif # endif # endif @@ -72,16 +78,14 @@ # ifdef __cplusplus # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T std::size_t -# define YYSTACK_ALLOC std::malloc -# define YYSTACK_FREE std::free # else # ifdef __STDC__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free # endif +# define YYSTACK_ALLOC YYSTD (malloc) +# define YYSTACK_FREE YYSTD (free) # endif /* A type that is properly aligned for any stack member. */ @@ -224,13 +228,11 @@ while (0) # ifndef YYFPRINTF # ifdef __cplusplus # include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF std::fprintf -# define YYSTDERR std::stderr # else # include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# define YYSTDERR stderr # endif +# define YYFPRINTF YYSTD (fprintf) +# define YYSTDERR YYSTD (stderr) # endif # define YYDPRINTF(Args) \ -- 2.50.0