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
|
|
|
|
|
2012-06-27 07:55:33 +04:00
|
|
|
/* 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
|