-# ifdef false
-# undef false
-# endif /*! false */
-# ifdef true
-# undef true
-# endif /*! true */
-# define false (unsigned)(0)
-# define true (unsigned)(1)
-# ifdef __STDC_VERSION__
-# if __STDC_VERSION__ < 199901L && __GNUC__ < 3
- typedef int bool;
-# else
- typedef _Bool bool;
-# endif /*! __STDC_VERSION__ < 199901L && __GNUC__ < 3 */
-# else
- typedef int bool;
-# endif /*! __STDC_VERSION__ */
-#endif /*! __cplusplus */
-
-/*
- * Of some functions which are generated we want to make sure
- * that the result isn't ignored. To find such function calls,
- * we use this macro.
- */
-#if defined(__GNUC__) || defined(__CLANG__)
-# define GMQCC_WARN __attribute__((warn_unused_result))
-# define GMQCC_USED __attribute__((used))
-#else
-# define GMQCC_WARN
-# define GMQCC_USED
-#endif /*! defined(__GNUC__) || defined (__CLANG__) */
-
-/*
- * Inline is not supported in < C90, however some compilers
- * like gcc and clang might have an inline attribute we can
- * use if present.
- */
-#ifdef __STDC_VERSION__
-# if __STDC_VERSION__ < 199901L
-# if defined(__GNUC__) || defined (__CLANG__)
-# if __GNUC__ < 2
-# define GMQCC_INLINE
-# else
-# define GMQCC_INLINE __attribute__ ((always_inline))
-# endif /*! __GNUC__ < 2 */
-# else
-# define GMQCC_INLINE
-# endif /*! defined(__GNUC__) || defined (__CLANG__) */
-# else
-# define GMQCC_INLINE inline
-# endif /*! __STDC_VERSION < 199901L */
-/*
- * Visual studio has __forcinline we can use. So lets use that
- * I suspect it also has just __inline of some sort, but our use
- * of inline is correct (not guessed), WE WANT IT TO BE INLINE
- */
-#elif defined(_MSC_VER)
-# define GMQCC_INLINE __forceinline
-#else
-# define GMQCC_INLINE
-#endif /*! __STDC_VERSION__ */
-
-/*
- * noreturn is present in GCC and clang
- * it's required for _ast_node_destory otherwise -Wmissing-noreturn
- * in clang complains about there being no return since abort() is
- * called.
- */
-#if (defined(__GNUC__) && __GNUC__ >= 2) || defined(__CLANG__)
-# define GMQCC_NORETURN __attribute__ ((noreturn))
-#else
-# define GMQCC_NORETURN
-#endif /*! (defined(__GNUC__) && __GNUC__ >= 2) || defined (__CLANG__) */