| Index: bison/src/bison/2.4.1/bison-2.4.1-src/src/system.h
|
| ===================================================================
|
| --- bison/src/bison/2.4.1/bison-2.4.1-src/src/system.h (revision 0)
|
| +++ bison/src/bison/2.4.1/bison-2.4.1-src/src/system.h (revision 0)
|
| @@ -0,0 +1,219 @@
|
| +/* System-dependent definitions for Bison.
|
| +
|
| + Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 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
|
| + the Free Software Foundation, either version 3 of the License, or
|
| + (at your option) any later version.
|
| +
|
| + This program is distributed in the hope that it will be useful,
|
| + but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| + GNU General Public License for more details.
|
| +
|
| + You should have received a copy of the GNU General Public License
|
| + along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
| +
|
| +#ifndef BISON_SYSTEM_H
|
| +#define BISON_SYSTEM_H
|
| +
|
| +/* flex 2.5.31 gratutiously defines macros like INT8_MIN. But this
|
| + runs afoul of pre-C99 compilers that have <inttypes.h> or
|
| + <stdint.h>, which are included below if available. It also runs
|
| + afoul of pre-C99 compilers that define these macros in <limits.h>. */
|
| +#if ! defined __STDC_VERSION__ || __STDC_VERSION__ < 199901
|
| +# undef INT8_MIN
|
| +# undef INT16_MIN
|
| +# undef INT32_MIN
|
| +# undef INT8_MAX
|
| +# undef INT16_MAX
|
| +# undef UINT8_MAX
|
| +# undef INT32_MAX
|
| +# undef UINT16_MAX
|
| +# undef UINT32_MAX
|
| +#endif
|
| +
|
| +#include <limits.h>
|
| +#include <stddef.h>
|
| +#include <stdlib.h>
|
| +#include <string.h>
|
| +
|
| +#if HAVE_SYS_TYPES_H
|
| +# include <sys/types.h>
|
| +#endif
|
| +
|
| +#include <unistd.h>
|
| +#include <inttypes.h>
|
| +
|
| +#ifndef UINTPTR_MAX
|
| +/* This isn't perfect, but it's good enough for Bison, which needs
|
| + only to hash pointers. */
|
| +typedef size_t uintptr_t;
|
| +#endif
|
| +
|
| +
|
| +/*---------.
|
| +| Gnulib. |
|
| +`---------*/
|
| +
|
| +#include <unlocked-io.h>
|
| +#include <verify.h>
|
| +#include <xalloc.h>
|
| +
|
| +
|
| +/*-----------------.
|
| +| GCC extensions. |
|
| +`-----------------*/
|
| +
|
| +/* Use this to suppress gcc's `...may be used before initialized'
|
| + warnings. */
|
| +#ifdef lint
|
| +# define IF_LINT(Code) Code
|
| +#else
|
| +# define IF_LINT(Code) /* empty */
|
| +#endif
|
| +
|
| +#ifndef __attribute__
|
| +/* This feature is available in gcc versions 2.5 and later. */
|
| +# if (! defined __GNUC__ || __GNUC__ < 2 \
|
| + || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__)
|
| +# define __attribute__(Spec) /* empty */
|
| +# endif
|
| +#endif
|
| +
|
| +/* The __-protected variants of `format' and `printf' attributes
|
| + are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
|
| +#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
|
| +# define __format__ format
|
| +# define __printf__ printf
|
| +#endif
|
| +
|
| +#ifndef ATTRIBUTE_NORETURN
|
| +# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
|
| +#endif
|
| +
|
| +#ifndef ATTRIBUTE_UNUSED
|
| +# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
|
| +#endif
|
| +
|
| +#define FUNCTION_PRINT() fprintf (stderr, "%s: ", __func__)
|
| +
|
| +/*------.
|
| +| NLS. |
|
| +`------*/
|
| +
|
| +#include <locale.h>
|
| +
|
| +#include <gettext.h>
|
| +#define _(Msgid) gettext (Msgid)
|
| +#define N_(Msgid) (Msgid)
|
| +
|
| +
|
| +/*-----------.
|
| +| Booleans. |
|
| +`-----------*/
|
| +
|
| +#include <stdbool.h>
|
| +
|
| +
|
| +
|
| +/*-------------.
|
| +| Assertions. |
|
| +`-------------*/
|
| +
|
| +/* <assert.h>'s assertions are too heavyweight, and can be disabled
|
| + too easily, so use aver rather than assert. */
|
| +static inline void
|
| +aver (bool assertion)
|
| +{
|
| + if (! assertion)
|
| + abort ();
|
| +}
|
| +
|
| +
|
| +/*-----------.
|
| +| Obstacks. |
|
| +`-----------*/
|
| +
|
| +#define obstack_chunk_alloc xmalloc
|
| +#define obstack_chunk_free free
|
| +#include <obstack.h>
|
| +
|
| +#define obstack_sgrow(Obs, Str) \
|
| + obstack_grow (Obs, Str, strlen (Str))
|
| +
|
| +#define obstack_fgrow1(Obs, Format, Arg1) \
|
| +do { \
|
| + char buf[4096]; \
|
| + sprintf (buf, Format, Arg1); \
|
| + obstack_grow (Obs, buf, strlen (buf)); \
|
| +} while (0)
|
| +
|
| +#define obstack_fgrow2(Obs, Format, Arg1, Arg2) \
|
| +do { \
|
| + char buf[4096]; \
|
| + sprintf (buf, Format, Arg1, Arg2); \
|
| + obstack_grow (Obs, buf, strlen (buf)); \
|
| +} while (0)
|
| +
|
| +#define obstack_fgrow3(Obs, Format, Arg1, Arg2, Arg3) \
|
| +do { \
|
| + char buf[4096]; \
|
| + sprintf (buf, Format, Arg1, Arg2, Arg3); \
|
| + obstack_grow (Obs, buf, strlen (buf)); \
|
| +} while (0)
|
| +
|
| +#define obstack_fgrow4(Obs, Format, Arg1, Arg2, Arg3, Arg4) \
|
| +do { \
|
| + char buf[4096]; \
|
| + sprintf (buf, Format, Arg1, Arg2, Arg3, Arg4); \
|
| + obstack_grow (Obs, buf, strlen (buf)); \
|
| +} while (0)
|
| +
|
| +
|
| +
|
| +/*-----------------------------------------.
|
| +| Extensions to use for the output files. |
|
| +`-----------------------------------------*/
|
| +
|
| +#ifndef OUTPUT_EXT
|
| +# define OUTPUT_EXT ".output"
|
| +#endif
|
| +
|
| +#ifndef TAB_EXT
|
| +# define TAB_EXT ".tab"
|
| +#endif
|
| +
|
| +#ifndef DEFAULT_TMPDIR
|
| +# define DEFAULT_TMPDIR "/tmp"
|
| +#endif
|
| +
|
| +
|
| +
|
| +/*---------------------.
|
| +| Free a linked list. |
|
| +`---------------------*/
|
| +
|
| +#define LIST_FREE(Type, List) \
|
| +do { \
|
| + Type *_node, *_next; \
|
| + for (_node = List; _node; _node = _next) \
|
| + { \
|
| + _next = _node->next; \
|
| + free (_node); \
|
| + } \
|
| +} while (0)
|
| +
|
| +
|
| +/*---------------------------------------------.
|
| +| Debugging memory allocation (must be last). |
|
| +`---------------------------------------------*/
|
| +
|
| +# if WITH_DMALLOC
|
| +# define DMALLOC_FUNC_CHECK
|
| +# include <dmalloc.h>
|
| +# endif /* WITH_DMALLOC */
|
| +
|
| +#endif /* ! BISON_SYSTEM_H */
|
|
|
| Property changes on: bison\src\bison\2.4.1\bison-2.4.1-src\src\system.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|