1
  
2
  
3
  
4
  
5
  
6
  
7
  
8
  
9
  
10
  
11
  
12
  
13
  
14
  
15
  
16
  
17
  
18
  
19
  
20
  
21
  
22
  
23
  
24
  
25
  
26
  
27
  
28
  
29
  
30
  
31
  
32
  
33
  
34
  
35
  
36
  
37
  
38
  
39
  
40
  
41
  
42
  
43
  
44
  
45
  
/* 
|| This file is part of Pike. For copyright information see COPYRIGHT. 
|| Pike is distributed under GPL, LGPL and MPL. See the file COPYING 
|| for more information. 
*/ 
 
#ifndef CPP_H 
#define CPP_H 
 
#ifndef STRUCT_HASH_ENTRY_DECLARED 
struct hash_entry; 
#define STRUCT_HASH_ENTRY_DECLARED 
#endif 
 
/* Prototypes begin here */ 
struct define_part; 
struct define_argument; 
struct define; 
struct cpp; 
static void cpp_error(struct cpp *this, const char *err); 
static void cpp_error_vsprintf (struct cpp *this, const char *fmt, 
                                va_list args); 
static void cpp_error_sprintf(struct cpp *this, const char *fmt, ...); 
static void cpp_handle_exception(struct cpp *this, 
                                 const char *cpp_error_fmt, ...); 
static void cpp_warning(struct cpp *this, const char *cpp_warn_fmt, ...); 
void PUSH_STRING(char *str, 
                 INT32 len, 
                 dynamic_buffer *buf); 
void free_one_define(struct hash_entry *h); 
void f_cpp(INT32 args); 
void init_cpp(void); 
void add_predefine(char *s); 
void exit_cpp(void); 
/* Prototypes end here */ 
 
/* Return true if compat version is equal or less than MAJOR.MINOR */ 
#define CPP_TEST_COMPAT(THIS,MAJOR,MINOR)      \ 
  (THIS->compat_major < (MAJOR) ||             \ 
   (THIS->compat_major == (MAJOR) &&           \ 
    THIS->compat_minor <= (MINOR))) 
 
#endif