4coder/4coder_config.h

87 lines
1.6 KiB
C

/* "4cpp" Open C++ Parser v0.1: Config
no warranty implied; use at your own risk
NOTES ON USE:
This file is used to configure 4cpp options at the begining of 4cpp files.
It is not meant to be used directly.
*/
#ifdef FCPP_NO_CRT
# ifndef FCPP_NO_MALLOC
# define FCPP_NO_MALLOC
# endif
# ifndef FCPP_NO_ASSERT
# define FCPP_NO_ASSERT
# endif
# ifndef FCPP_NO_STRING
# define FCPP_NO_STRING
# endif
#endif
#ifdef FCPP_FORBID_MALLOC
# define FCPP_NO_MALLOC
#endif
#ifndef FCPP_NO_MALLOC
# include <stdlib.h>
#endif
#ifndef FCPP_NO_ASSERT
# include <assert.h>
#endif
#ifndef FCPP_NO_STRING
# include <string.h>
#endif
#ifndef FCPP_NO_MALLOC
# ifndef FCPP_GET_MEMORY
# define FCPP_GET_MEMORY malloc
# endif
# ifndef FCPP_FREE_MEMORY
# define FCPP_FREE_MEMORY free
# endif
#else
# ifndef FCPP_FORBID_MALLOC
# ifndef FCPP_GET_MEMORY
# error Missing definition for FCPP_GET_MEMORY
# endif
# ifndef FCPP_FREE_MEMORY
# error Missing definition for FCPP_FREE_MEMORY
# endif
# endif
#endif
#ifndef FCPP_NO_ASSERT
# ifndef FCPP_ASSERT
# define FCPP_ASSERT assert
# endif
#else
# ifndef FCPP_ASSERT
# define FCPP_ASSERT(x)
# endif
#endif
#ifndef FCPP_NO_STRING
# ifndef FCPP_MEM_COPY
# define FCPP_MEM_COPY memcpy
# endif
# ifndef FCPP_MEM_MOVE
# define FCPP_MEM_MOVE memmove
# endif
#endif
#ifndef FCPP_LINK
# ifdef FCPP_EXTERN
# define FCPP_LINK extern
# else
# define FCPP_LINK static
# endif
#endif
#ifndef DrBegin
#define DrBegin() switch (s.__pc__){ case 0:;
#define DrEnd() default: Assert(!"Invalid __pc__"); }
#define DrYield(pc, n) { s.__pc__ = pc; *state = s; return(n); case pc:; }
#define DrReturn(n) { s.__pc__ = -1; return(n); }
#endif