/* Line %%skeleton-line of %%skeleton. */
#line %%line "%%parser-file-name"
-#include <stdio.h>
-
/* All symbols defined below should begin with yy or YY, to avoid
infringing on user name space. This should be done even for local
variables, as they might otherwise be expanded by user macros.
define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
+#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)
+# ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca
# endif
-# ifndef __GNUC__
-# ifdef _AIX
- # pragma alloca
-# endif
-# if defined (__sgi) || defined (__sparc__) || defined (__sparc) || defined (__sun)
-# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSTACK_ALLOC alloca
-# define YYSIZE_T size_t
-# endif
-# endif
# endif
# endif
# endif
# ifdef __cplusplus
# include <cstdlib> /* 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 <stdlib.h> /* 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. */
# ifndef YYFPRINTF
# ifdef __cplusplus
# include <cstdio.h> /* INFRINGES ON USER NAME SPACE */
-# define YYFPRINTF std::fprintf
-# define YYSTDERR std::stderr
# else
# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-# define YYFPRINTF fprintf
-# define YYSTDERR stderr
# endif
+# define YYFPRINTF YYSTD (fprintf)
+# define YYSTDERR YYSTD (stderr)
# endif
# define YYDPRINTF(Args) \