bgfx/3rdparty/fcpp/fpp.h

177 lines
5.6 KiB
C
Raw Normal View History

2012-04-04 07:30:07 +04:00
/******************************************************************************
* FREXXWARE
* ----------------------------------------------------------------------------
*
* Project: Frexx C Preprocessor
* $Source: /home/user/start/cpp/RCS/fpp.h,v $
* $Revision: 1.5 $
* $Date: 1994/01/24 09:38:45 $
* $Author: start $
* $State: Exp $
* $Locker: start $
*
* ----------------------------------------------------------------------------
* $Log: fpp.h,v $
* Revision 1.5 1994/01/24 09:38:45 start
* Added FPPTAG_RIGHTCONCAT.
*
* Revision 1.4 1993/12/06 13:51:20 start
* A lot of new stuff (too much to mention)
*
* Revision 1.3 1993/11/29 14:01:13 start
* New features added
*
* Revision 1.2 1993/11/11 07:16:39 start
* New stuff
*
* Revision 1.1 1993/11/03 09:15:59 start
* Initial revision
*
*
*****************************************************************************/
/**********************************************************************
*
* fpp.h
*
*/
2018-04-25 06:07:38 +03:00
#ifdef __cplusplus
extern "C" {
#endif
2012-04-04 07:30:07 +04:00
struct fppTag {
int tag;
void *data;
};
2018-04-25 06:07:38 +03:00
#ifndef FPP_TRUE
#define FPP_TRUE 1
2012-04-04 07:30:07 +04:00
#endif
2018-04-25 06:07:38 +03:00
#ifndef FPP_FALSE
#define FPP_FALSE 0
2012-04-04 07:30:07 +04:00
#endif
#define NFLAG_BUILTIN 1
#define NFLAG_PREDEFINE 2
/* end of taglist: */
#define FPPTAG_END 0
/* To make the preprocessed output keep the comments: */
2018-04-25 06:07:38 +03:00
#define FPPTAG_KEEPCOMMENTS 1 /* data is FPP_TRUE or FPP_FALSE */
2012-04-04 07:30:07 +04:00
/* To define symbols to the preprocessor: */
#define FPPTAG_DEFINE 2 /* data is the string "symbol" or "symbol=<value>" */
/* To make the preprocessor ignore all non-fatal errors: */
2018-04-25 06:07:38 +03:00
#define FPPTAG_IGNORE_NONFATAL 3 /* data is FPP_TRUE or FPP_FALSE */
2012-04-04 07:30:07 +04:00
/* To add an include directory to the include directory list: */
#define FPPTAG_INCLUDE_DIR 4 /* data is directory name ending with a '/' (on
amiga a ':' is also valid) */
2018-04-25 06:07:38 +03:00
/* To define all machine specific built-in #defines, default is FPP_TRUE: */
#define FPPTAG_BUILTINS 5 /* data is FPP_TRUE or FPP_FALSE */
2012-04-04 07:30:07 +04:00
2018-04-25 06:07:38 +03:00
/* To define predefines like __LINE__, __DATE__, etc. default is FPP_TRUE: */
#define FPPTAG_PREDEFINES 6 /* data is FPP_TRUE or FPP_FALSE */
2012-04-04 07:30:07 +04:00
/* To make fpp leave C++ comments in the output: */
2018-04-25 06:07:38 +03:00
#define FPPTAG_IGNORE_CPLUSPLUS 7 /* data is FPP_TRUE or FPP_FALSE */
2012-04-04 07:30:07 +04:00
/* To define new sizes to #if sizeof: */
#define FPPTAG_SIZEOF_TABLE 8 /* data is sizeof table string */
/* To undefine symbols: */
#define FPPTAG_UNDEFINE 9 /* data is symbol name */
/* Output all #defines: */
2018-04-25 06:07:38 +03:00
#define FPPTAG_OUTPUT_DEFINES 10 /* data is FPP_TRUE or FPP_FALSE */
2012-04-04 07:30:07 +04:00
/* Initial input file name: */
#define FPPTAG_INPUT_NAME 11 /* data is string */
/* Input function: */
#define FPPTAG_INPUT 12 /* data is an input funtion */
/* Output function: */
#define FPPTAG_OUTPUT 13 /* data is an output function */
/* User data, sent in the last argument to the input function: */
#define FPPTAG_USERDATA 14 /* data is user data */
2018-04-25 06:07:38 +03:00
/* Whether to exclude #line instructions in the output, default is FPP_FALSE */
#define FPPTAG_LINE 15 /* data is FPP_TRUE or FPP_FALSE */
2012-04-04 07:30:07 +04:00
/* Error function. This is called when FPP finds any warning/error/fatal: */
#define FPPTAG_ERROR 16 /* data is function pointer to a
"void (*)(void *, char *, va_list)" */
/* Whether to warn for illegal cpp instructions */
2018-04-25 06:07:38 +03:00
#define FPPTAG_WARNILLEGALCPP 17 /* data is boolean, default is FPP_FALSE */
2012-04-04 07:30:07 +04:00
/* Output the 'line' keyword on #line-lines? */
2018-04-25 06:07:38 +03:00
#define FPPTAG_OUTPUTLINE 18 /* data is boolean, default is FPP_TRUE */
2012-04-04 07:30:07 +04:00
2018-04-25 06:07:38 +03:00
/* Output the version information string */
#define FPPTAG_SHOWVERSION 19 /* data is boolean, default is FPP_TRUE */
2012-04-04 07:30:07 +04:00
/* Output all included file names to stderr */
2018-04-25 06:07:38 +03:00
#define FPPTAG_OUTPUTINCLUDES 20 /* data is boolean, default is FPP_FALSE */
2012-04-04 07:30:07 +04:00
/* Display warning if there is any brace, bracket or parentheses unbalance */
2018-04-25 06:07:38 +03:00
#define FPPTAG_OUTPUTBALANCE 21 /* data is boolean, default is FPP_FALSE */
2012-04-04 07:30:07 +04:00
/* Display all whitespaces in the source */
2018-04-25 06:07:38 +03:00
#define FPPTAG_OUTPUTSPACE 22 /* data is boolean, default is FPP_FALSE */
2012-04-04 07:30:07 +04:00
/* Allow nested comments */
2018-04-25 06:07:38 +03:00
#define FPPTAG_NESTED_COMMENTS 23 /* data is boolean, default is FPP_FALSE */
2012-04-04 07:30:07 +04:00
/* Enable warnings at nested comments */
2018-04-25 06:07:38 +03:00
#define FPPTAG_WARN_NESTED_COMMENTS 24 /* data is boolean, default is FPP_FALSE */
2012-04-04 07:30:07 +04:00
/* Enable warnings at missing includes */
2018-04-25 06:07:38 +03:00
#define FPPTAG_WARNMISSINCLUDE 25 /* data is boolean, default is FPP_TRUE */
2012-04-04 07:30:07 +04:00
/* Output the main file */
2018-04-25 06:07:38 +03:00
#define FPPTAG_OUTPUTMAIN 26 /* data is boolean, default is FPP_TRUE */
2012-04-04 07:30:07 +04:00
/* Include file */
#define FPPTAG_INCLUDE_FILE 27 /* data is char pointer */
/* Include macro file */
#define FPPTAG_INCLUDE_MACRO_FILE 28 /* data is char pointer */
/* Evaluate the right part of a concatenate before the concat */
2018-04-25 06:07:38 +03:00
#define FPPTAG_RIGHTCONCAT 29 /* data is boolean, default is FPP_FALSE */
2012-04-04 07:30:07 +04:00
/* Include the specified file at the beginning of each function */
#define FPPTAG_INITFUNC 30 /* data is char pointer or NULL */
/* Define function to be excluded from the "beginning-function-addings" */
#define FPPTAG_EXCLFUNC 31 /* data is char pointer */
/* Enable output of all function names defined in the source */
#define FPPTAG_DISPLAYFUNCTIONS 32
/* Switch on WWW-mode */
#define FPPTAG_WEBMODE 33
/* Depends function: */
#define FPPTAG_DEPENDS 34 /* data is an depends funtion */
2018-04-25 06:07:38 +03:00
/* Allow include "X" (rather than <X>) to search local files, default is FPP_TRUE */
#define FPPTAG_ALLOW_INCLUDE_LOCAL 35
/* Fileopen function. If set, this is called when FPP tries to open a file: */
#define FPPTAG_FILEOPENFUNC 36 /* data is function pointer to a
"FILE* (*)(char * filename, char * mode, void * userdata)", default is NULL */
2012-04-04 07:30:07 +04:00
int fppPreProcess(struct fppTag *);
2018-04-25 06:07:38 +03:00
#ifdef __cplusplus
} // extern "C"
#endif