ReactOS 0.4.17-dev-934-g091855f
wpp_private.h File Reference
#include <stdio.h>
#include <string.h>
#include "wine/list.h"
Include dependency graph for wpp_private.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  includelogicentry
 
struct  mtext
 
struct  pp_entry
 
struct  include_state_t
 
struct  cval
 
struct  pp_status
 

Macros

#define MAXIFSTACK   64 /* If this isn't enough you should alter the source... */
 
#define SIZE_INT   1
 
#define SIZE_LONG   2
 
#define SIZE_LONGLONG   3
 
#define SIZE_MASK   0x00ff
 
#define FLAG_SIGNED   0x0100
 

Typedefs

typedef struct includelogicentry includelogicentry_t
 
typedef struct mtext mtext_t
 
typedef struct pp_entry pp_entry_t
 
typedef struct cval cval_t
 

Enumerations

enum  def_exp_t { exp_text , exp_concat , exp_stringize , exp_subst }
 
enum  def_type_t { def_none , def_define , def_macro , def_special }
 
enum  pp_if_state_t {
  if_false , if_true , if_elif , if_elsefalse ,
  if_elsetrue , if_ignore , if_error
}
 
enum  ctype_t {
  cv_sint = SIZE_INT + FLAG_SIGNED , cv_uint = SIZE_INT , cv_slong = SIZE_LONG + FLAG_SIGNED , cv_ulong = SIZE_LONG ,
  cv_sll = SIZE_LONGLONG + FLAG_SIGNED , cv_ull = SIZE_LONGLONG
}
 

Functions

void wpp_del_define (const char *name)
 
void wpp_add_cmdline_define (const char *value)
 
void wpp_set_debug (int lex_debug, int parser_debug, int msg_debug)
 
void wpp_add_include_path (const char *path)
 
char * wpp_find_include (const char *name, const char *parent_name)
 
int wpp_parse (const char *input, FILE *output)
 
pp_entry_t * pplookup (const char *ident)
 
pp_entry_t * pp_add_define (const char *def, const char *text)
 
pp_entry_t * pp_add_macro (char *ident, char *args[], int nargs, int variadic, mtext_t *exp)
 
void pp_del_define (const char *name)
 
void * pp_open_include (const char *name, int type, const char *parent_name, char **newpath)
 
void pp_push_if (pp_if_state_t s)
 
void pp_next_if_state (int)
 
pp_if_state_t pp_pop_if (void)
 
pp_if_state_t pp_if_state (void)
 
int pp_get_if_depth (void)
 
int ppy_error (const char *s,...) __attribute__((format(printf
 
int int ppy_warning (const char *s,...) __attribute__((format(printf
 
int ppy_lex (void)
 
void pp_do_include (char *fname, int type)
 
void pp_push_ignore_state (void)
 
void pp_pop_ignore_state (void)
 
int ppy_parse (void)
 

Variables

struct pp_status pp_status
 
include_state_t pp_incl_state
 
int pedantic
 
FILE * ppy_in
 
FILE * ppy_out
 
char * ppy_text
 
int pp_flex_debug
 
int ppy_debug
 

Macro Definition Documentation

◆ FLAG_SIGNED

#define FLAG_SIGNED   0x0100

Definition at line 133 of file wpp_private.h.

◆ MAXIFSTACK

#define MAXIFSTACK   64 /* If this isn't enough you should alter the source... */

Definition at line 98 of file wpp_private.h.

◆ SIZE_INT

#define SIZE_INT   1

Definition at line 129 of file wpp_private.h.

◆ SIZE_LONG

#define SIZE_LONG   2

Definition at line 130 of file wpp_private.h.

◆ SIZE_LONGLONG

#define SIZE_LONGLONG   3

Definition at line 131 of file wpp_private.h.

◆ SIZE_MASK

#define SIZE_MASK   0x00ff

Definition at line 132 of file wpp_private.h.

Typedef Documentation

◆ cval_t

typedef struct cval cval_t

◆ includelogicentry_t

◆ mtext_t

typedef struct mtext mtext_t

◆ pp_entry_t

Enumeration Type Documentation

◆ ctype_t

Enumerator
cv_sint 
cv_uint 
cv_slong 
cv_ulong 
cv_sll 
cv_ull 

Definition at line 135 of file wpp_private.h.

135 {
142} ctype_t;
#define FLAG_SIGNED
Definition: wpp_private.h:133
#define SIZE_LONGLONG
Definition: wpp_private.h:131
#define SIZE_INT
Definition: wpp_private.h:129
#define SIZE_LONG
Definition: wpp_private.h:130
ctype_t
Definition: wpp_private.h:135
@ cv_sint
Definition: wpp_private.h:136
@ cv_uint
Definition: wpp_private.h:137
@ cv_ulong
Definition: wpp_private.h:139
@ cv_sll
Definition: wpp_private.h:140
@ cv_slong
Definition: wpp_private.h:138
@ cv_ull
Definition: wpp_private.h:141

◆ def_exp_t

Enumerator
exp_text 
exp_concat 
exp_stringize 
exp_subst 

Definition at line 50 of file wpp_private.h.

50 {
51 exp_text, /* Simple text substitution */
52 exp_concat, /* Concat (##) operator requested */
53 exp_stringize, /* Stringize (#) operator requested */
54 exp_subst /* Substitute argument */
55} def_exp_t;
def_exp_t
Definition: wpp_private.h:50
@ exp_stringize
Definition: wpp_private.h:53
@ exp_text
Definition: wpp_private.h:51
@ exp_subst
Definition: wpp_private.h:54
@ exp_concat
Definition: wpp_private.h:52

◆ def_type_t

Enumerator
def_none 
def_define 
def_macro 
def_special 

Definition at line 70 of file wpp_private.h.

70 {
71 def_none, /* Not-a-define; used as return value */
72 def_define, /* Simple defines */
73 def_macro, /* Macro defines */
74 def_special /* Special expansions like __LINE__ and __FILE__ */
def_type_t
Definition: wpp_private.h:70
@ def_none
Definition: wpp_private.h:71
@ def_define
Definition: wpp_private.h:72
@ def_macro
Definition: wpp_private.h:73
@ def_special
Definition: wpp_private.h:74

◆ pp_if_state_t

Enumerator
if_false 
if_true 
if_elif 
if_elsefalse 
if_elsetrue 
if_ignore 
if_error 

Definition at line 100 of file wpp_private.h.

100 {
101 if_false,
102 if_true,
103 if_elif,
106 if_ignore,
pp_if_state_t
Definition: wpp_private.h:100
@ if_true
Definition: wpp_private.h:102
@ if_elif
Definition: wpp_private.h:103
@ if_elsefalse
Definition: wpp_private.h:104
@ if_elsetrue
Definition: wpp_private.h:105
@ if_error
Definition: wpp_private.h:107
@ if_false
Definition: wpp_private.h:101
@ if_ignore
Definition: wpp_private.h:106

Function Documentation

◆ pp_add_define()

pp_entry_t * pp_add_define ( const char *  def,
const char *  text 
)

Definition at line 199 of file wpp.c.

200{
201 int len;
202 char *cptr;
203 int idx;
204 pp_entry_t *ppp;
205
206 idx = pphash(def);
207 if((ppp = pplookup(def)) != NULL)
208 {
209 if(pedantic)
210 ppy_warning("Redefinition of %s\n%s:%d: note: previous definition was here",
211 def, ppp->filename, ppp->linenumber);
212 pp_del_define(def);
213 }
214 ppp = xmalloc(sizeof(pp_entry_t));
215 memset( ppp, 0, sizeof(*ppp) );
216 ppp->ident = xstrdup(def);
217 ppp->type = def_define;
218 ppp->subst.text = text ? xstrdup(text) : NULL;
219 ppp->filename = xstrdup(pp_status.input ? pp_status.input : "<internal or cmdline>");
221 list_add_head( &pp_defines[idx], &ppp->entry );
222 if(ppp->subst.text)
223 {
224 /* Strip trailing white space from subst text */
225 len = strlen(ppp->subst.text);
226 while(len && strchr(" \t\r\n", ppp->subst.text[len-1]))
227 {
228 ppp->subst.text[--len] = '\0';
229 }
230 /* Strip leading white space from subst text */
231 for(cptr = ppp->subst.text; *cptr && strchr(" \t\r", *cptr); cptr++)
232 ;
233 if(ppp->subst.text != cptr)
234 memmove(ppp->subst.text, cptr, strlen(cptr)+1);
235 }
236 if(pp_status.debug)
237 printf("Added define (%s, %d) <%s> to <%s>\n", pp_status.input, pp_status.line_number, ppp->ident, ppp->subst.text ? ppp->subst.text : "(null)");
238
239 return ppp;
240}
char * xstrdup(const char *s)
Definition: uimain.c:768
void * xmalloc(int size)
Definition: uimain.c:747
static void list_add_head(struct list_entry *head, struct list_entry *entry)
Definition: list.h:76
#define NULL
Definition: types.h:112
unsigned int idx
Definition: utils.c:40
const WCHAR * text
Definition: package.c:1826
_ACRTIMP char *__cdecl strchr(const char *, int)
Definition: string.c:3291
_ACRTIMP size_t __cdecl strlen(const char *)
Definition: string.c:1597
#define printf
Definition: freeldr.h:103
GLenum GLsizei len
Definition: glext.h:6722
#define memmove(s1, s2, n)
Definition: mkisofs.h:881
#define memset(x, y, z)
Definition: compat.h:39
Definition: wpp_private.h:77
int linenumber
Definition: wpp_private.h:90
struct list entry
Definition: wpp_private.h:78
char * filename
Definition: wpp_private.h:89
union pp_entry::@6056 subst
char * ident
Definition: wpp_private.h:80
char * text
Definition: wpp_private.h:86
def_type_t type
Definition: wpp_private.h:79
char * input
Definition: wpp_private.h:182
int line_number
Definition: wpp_private.h:184
int pedantic
Definition: widl.c:97
int ppy_warning(const char *s,...)
Definition: wpp.c:508
static int pphash(const char *str)
Definition: wpp.c:116
pp_entry_t * pplookup(const char *ident)
Definition: wpp.c:124
static struct list pp_defines[HASHKEY]
Definition: wpp.c:41
void pp_del_define(const char *name)
Definition: wpp.c:178

Referenced by add_cmdline_defines(), and add_special_defines().

◆ pp_add_macro()

pp_entry_t * pp_add_macro ( char *  ident,
char *  args[],
int  nargs,
int  variadic,
mtext_t *  exp 
)

Definition at line 242 of file wpp.c.

243{
244 int idx;
245 pp_entry_t *ppp;
246
247 idx = pphash(id);
248 if((ppp = pplookup(id)) != NULL)
249 {
250 if(pedantic)
251 ppy_warning("Redefinition of %s\n%s:%d: note: previous definition was here",
252 id, ppp->filename, ppp->linenumber);
253 pp_del_define(id);
254 }
255 ppp = xmalloc(sizeof(pp_entry_t));
256 memset( ppp, 0, sizeof(*ppp) );
257 ppp->ident = id;
258 ppp->type = def_macro;
259 ppp->margs = args;
260 ppp->nargs = nargs;
261 ppp->variadic = variadic;
262 ppp->subst.mtext= exp;
263 ppp->filename = xstrdup(pp_status.input ? pp_status.input : "<internal or cmdline>");
265 list_add_head( &pp_defines[idx], &ppp->entry );
266 if(pp_status.debug)
267 {
268 fprintf(stderr, "Added macro (%s, %d) <%s(%d%s)> to <", pp_status.input, pp_status.line_number, ppp->ident, nargs, variadic ? ",va" : "");
269 for(; exp; exp = exp->next)
270 {
271 switch(exp->type)
272 {
273 case exp_text:
274 fprintf(stderr, " \"%s\" ", exp->subst.text);
275 break;
276 case exp_stringize:
277 fprintf(stderr, " #(%d) ", exp->subst.argidx);
278 break;
279 case exp_concat:
280 fprintf(stderr, "##");
281 break;
282 case exp_subst:
283 fprintf(stderr, " <%d> ", exp->subst.argidx);
284 break;
285 }
286 }
287 fprintf(stderr, ">\n");
288 }
289 return ppp;
290}
int WINAPIV fprintf(FILE *file, const char *format,...)
Definition: file.c:5549
#define stderr
GLuint id
Definition: glext.h:5910
DWORD exp
Definition: msg.c:18625
#define args
Definition: format.c:66
int variadic
Definition: wpp_private.h:83
mtext_t * mtext
Definition: wpp_private.h:85
int nargs
Definition: wpp_private.h:82
char ** margs
Definition: wpp_private.h:81

◆ pp_del_define()

void pp_del_define ( const char *  name)

Definition at line 178 of file wpp.c.

179{
180 pp_entry_t *ppp;
181 int idx = pphash(name);
182
183 if((ppp = pplookup(name)) == NULL)
184 {
185 if(pedantic)
186 ppy_warning("%s was not defined", name);
187 return;
188 }
189
190 if(pp_status.debug)
191 printf("Deleting (%s, %d) <%s>\n", pp_status.input, pp_status.line_number, name);
192
193 free( ppp->ident );
194 free( ppp->subst.text );
195 free( ppp->filename );
196 free_pp_entry( ppp, idx );
197}
#define free
Definition: debug_ros.c:5
Definition: name.c:39
static void free_pp_entry(pp_entry_t *ppp, int idx)
Definition: wpp.c:140

Referenced by pp_add_define(), and pp_add_macro().

◆ pp_do_include()

void pp_do_include ( char *  fname,
int  type 
)

◆ pp_get_if_depth()

int pp_get_if_depth ( void  )

Definition at line 486 of file wpp.c.

487{
488 return if_stack_idx;
489}
static int if_stack_idx
Definition: wpp.c:45

Referenced by wpp_parse().

◆ pp_if_state()

pp_if_state_t pp_if_state ( void  )

Definition at line 458 of file wpp.c.

459{
460 if(!if_stack_idx)
461 return if_true;
462 else
463 return if_stack[if_stack_idx-1];
464}
static pp_if_state_t if_stack[MAXIFSTACK]
Definition: wpp.c:44

Referenced by pp_next_if_state(), pp_pop_if(), and pp_push_if().

◆ pp_next_if_state()

void pp_next_if_state ( int  i)

Definition at line 467 of file wpp.c.

468{
469 switch(pp_if_state())
470 {
471 case if_true:
472 case if_elsetrue:
474 break;
475 case if_false:
476 case if_elsefalse:
477 case if_elif:
478 case if_ignore:
480 break;
481 case if_error:
482 assert(0);
483 }
484}
#define assert(_expr)
Definition: assert.h:32
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
pp_if_state_t pp_if_state(void)
Definition: wpp.c:458
void pp_push_if(pp_if_state_t s)
Definition: wpp.c:397

◆ pp_open_include()

void * pp_open_include ( const char *  name,
int  type,
const char *  parent_name,
char **  newpath 
)

Definition at line 320 of file wpp.c.

321{
322 char *path;
323 void *fp;
324
325 if (!(path = wpp_lookup(name, type, parent_name))) return NULL;
326 fp = fopen(path, "rt");
327
328 if (fp)
329 {
330 if (pp_status.debug)
331 printf("Going to include <%s>\n", path);
332 if (newpath) *newpath = path;
333 else free( path );
334 return fp;
335 }
336 free( path );
337 return NULL;
338}
FILE *CDECL fopen(const char *path, const char *mode)
Definition: file.c:4310
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
static char * wpp_lookup(const char *name, int type, const char *parent_name)
Definition: wpp.c:59

◆ pp_pop_if()

pp_if_state_t pp_pop_if ( void  )

Definition at line 423 of file wpp.c.

424{
425 if(if_stack_idx <= 0)
426 {
427 ppy_error("#{endif,else,elif} without #{if,ifdef,ifndef} (#if-stack underflow)");
428 return if_error;
429 }
430
431 switch(pp_if_state())
432 {
433 case if_true:
434 case if_elsetrue:
435 break;
436 case if_false:
437 case if_elsefalse:
438 case if_elif:
439 case if_ignore:
441 break;
442 case if_error:
443 assert(0);
444 }
445
446 if(pp_flex_debug)
447 fprintf(stderr, "Pop if %s:%d: %s(%d) -> %s(%d)\n",
453 if_stack_idx-1);
454
455 return if_stack[--if_stack_idx];
456}
int pp_flex_debug
Definition: wpp.c:47
static const char *const pp_if_state_str[]
Definition: wpp.c:388
int ppy_error(const char *s,...)
Definition: wpp.c:499
void pp_pop_ignore_state(void)

Referenced by wpp_parse().

◆ pp_pop_ignore_state()

void pp_pop_ignore_state ( void  )

Referenced by pp_pop_if().

◆ pp_push_if()

void pp_push_if ( pp_if_state_t  s)

Definition at line 397 of file wpp.c.

398{
400 error("#if-stack overflow; #{if,ifdef,ifndef} nested too deeply (> %d)\n", MAXIFSTACK);
401
402 if(pp_flex_debug)
404
406
407 switch(s)
408 {
409 case if_true:
410 case if_elsetrue:
411 break;
412 case if_false:
413 case if_elsefalse:
414 case if_elif:
415 case if_ignore:
417 break;
418 case if_error:
419 assert(0);
420 }
421}
GLdouble s
Definition: gl.h:2039
#define error(str)
Definition: mkdosfs.c:1605
#define MAXIFSTACK
Definition: wpp.c:43
void pp_push_ignore_state(void)

Referenced by pp_next_if_state().

◆ pp_push_ignore_state()

void pp_push_ignore_state ( void  )

Referenced by pp_push_if().

◆ pplookup()

pp_entry_t * pplookup ( const char *  ident)

Definition at line 124 of file wpp.c.

125{
126 int idx;
127 pp_entry_t *ppp;
128
129 if(!ident)
130 return NULL;
131 idx = pphash(ident);
133 {
134 if(!strcmp(ident, ppp->ident))
135 return ppp;
136 }
137 return NULL;
138}
_ACRTIMP int __cdecl strcmp(const char *, const char *)
Definition: string.c:3324
uint32_t entry
Definition: isohybrid.c:63
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:236
_In_ ULONG _In_ ULONG_PTR ident
Definition: winddi.h:3994

Referenced by pp_add_define(), pp_add_macro(), and pp_del_define().

◆ ppy_error()

int ppy_error ( const char *  s,
  ... 
)

◆ ppy_lex()

int ppy_lex ( void  )

◆ ppy_parse()

int ppy_parse ( void  )

Referenced by wpp_parse().

◆ ppy_warning()

int int ppy_warning ( const char *  s,
  ... 
)

◆ wpp_add_cmdline_define()

void wpp_add_cmdline_define ( const char *  value)

Definition at line 588 of file wpp.c.

589{
590 char *p;
591 char *str = xstrdup(value);
592
593 p = strchr( str, '=' );
594 if (p) *p++ = 0;
595 wpp_add_define( str, p );
596 free( str );
597}
GLfloat GLfloat p
Definition: glext.h:8902
const WCHAR * str
Definition: pdh_main.c:64
static void wpp_add_define(const char *name, const char *value)
Definition: wpp.c:547

◆ wpp_add_include_path()

void wpp_add_include_path ( const char *  path)

Definition at line 298 of file wpp.c.

299{
300 char *dir = xstrdup(path);
301 char *cptr;
302
303 for(cptr = dir; *cptr; cptr++)
304 {
305 /* Convert to forward slash */
306 if(*cptr == '\\')
307 *cptr = '/';
308 }
309 /* Kill eventual trailing '/' */
310 if(*(cptr = dir + strlen(dir)-1) == '/') *cptr = '\0';
311
313}
unsigned int dir
Definition: maze.c:112
static void strarray_add(struct strarray *array, const char *str)
Definition: tools.h:183
static struct strarray includes
Definition: wpp.c:57

◆ wpp_del_define()

void wpp_del_define ( const char *  name)

Definition at line 571 of file wpp.c.

572{
573 struct define *def;
574
576 {
577 if (!strcmp( def->name, name ))
578 {
579 free( def->value );
580 def->value = NULL;
581 return;
582 }
583 }
584}
Definition: wpp.c:50
char * value
Definition: wpp.c:53
char * name
Definition: wpp.c:52
static struct list cmdline_defines
Definition: wpp.c:56

◆ wpp_find_include()

char * wpp_find_include ( const char *  name,
const char *  parent_name 
)

Definition at line 315 of file wpp.c.

316{
317 return wpp_lookup(name, !!parent_name, parent_name);
318}

◆ wpp_parse()

int wpp_parse ( const char *  input,
FILE *  output 
)

Definition at line 610 of file wpp.c.

611{
612 int ret;
613
617
621
622 if (!input) pp_status.file = stdin;
623 else if (!(pp_status.file = fopen(input, "rt")))
624 ppy_error("Could not open %s\n", input);
625
627
628 ppy_out = output;
629 fprintf(ppy_out, "# 1 \"%s\" 1\n", input ? input : "");
630
631 ret = ppy_parse();
632
633 if (input)
634 {
637 }
638 /* Clean if_stack, it could remain dirty on errors */
639 while (pp_get_if_depth()) pp_pop_if();
641 return ret;
642}
int CDECL fclose(FILE *file)
Definition: file.c:3757
#define stdin
return ret
Definition: mutex.c:147
GLenum GLenum GLenum input
Definition: glext.h:9031
FILE * file
Definition: wpp_private.h:183
int char_number
Definition: wpp_private.h:185
static void add_special_defines(void)
Definition: wpp.c:527
int pp_get_if_depth(void)
Definition: wpp.c:486
static void pp_free_define_state(void)
Definition: wpp.c:161
static void pp_init_define_state(void)
Definition: wpp.c:153
pp_if_state_t pp_pop_if(void)
Definition: wpp.c:423
static void add_cmdline_defines(void)
Definition: wpp.c:517
int ppy_parse(void)
FILE * ppy_out

◆ wpp_set_debug()

void wpp_set_debug ( int  lex_debug,
int  parser_debug,
int  msg_debug 
)

Definition at line 601 of file wpp.c.

602{
603 pp_flex_debug = lex_debug;
605 pp_status.debug = msg_debug;
606}
int parser_debug
Definition: widl.c:95
int ppy_debug
Definition: wpp.c:47

Variable Documentation

◆ pedantic

int pedantic
extern

Definition at line 97 of file widl.c.

Referenced by option_callback(), pp_add_define(), pp_add_macro(), pp_del_define(), and tt_loader_init().

◆ pp_flex_debug

int pp_flex_debug
extern

Definition at line 47 of file wpp.c.

Referenced by pp_pop_if(), pp_push_if(), and wpp_set_debug().

◆ pp_incl_state

include_state_t pp_incl_state
extern

◆ pp_status

Definition at line 37 of file wpp.c.

◆ ppy_debug

int ppy_debug
extern

Definition at line 47 of file wpp.c.

Referenced by wpp_set_debug().

◆ ppy_in

FILE* ppy_in
extern

◆ ppy_out

FILE* ppy_out
extern

Referenced by wpp_parse().

◆ ppy_text

char* ppy_text
extern

Referenced by ppy_error(), and ppy_warning().