00001
00002
00003
00004
00005
00006
00007
00008 #ifndef CPP_H
00009 #define CPP_H
00010
00011 #ifndef STRUCT_HASH_ENTRY_DECLARED
00012 struct hash_entry;
00013 #define STRUCT_HASH_ENTRY_DECLARED
00014 #endif
00015
00016
00017 struct define_part;
00018 struct define_argument;
00019 struct define;
00020 struct cpp;
00021 static void cpp_error(struct cpp *this, const char *err);
00022 static void cpp_error_vsprintf (struct cpp *this, const char *fmt,
00023 va_list args);
00024 static void cpp_error_sprintf(struct cpp *this, const char *fmt, ...);
00025 static void cpp_handle_exception(struct cpp *this,
00026 const char *cpp_error_fmt, ...);
00027 static void cpp_warning(struct cpp *this, const char *cpp_warn_fmt, ...);
00028 void PUSH_STRING(char *str,
00029 INT32 len,
00030 dynamic_buffer *buf);
00031 void free_one_define(struct hash_entry *h);
00032 void f_cpp(INT32 args);
00033 void init_cpp(void);
00034 void add_predefine(char *s);
00035 void exit_cpp(void);
00036
00037
00038
00039 #define CPP_TEST_COMPAT(THIS,MAJOR,MINOR) \
00040 (THIS->compat_major < (MAJOR) || \
00041 (THIS->compat_major == (MAJOR) && \
00042 THIS->compat_minor <= (MINOR)))
00043
00044 #endif