/* "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 #endif #ifndef FCPP_NO_ASSERT # include #endif #ifndef FCPP_NO_STRING # include #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