Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / reactos / sdk / tools / wpp / wpp_private.h
diff --git a/reactos/sdk/tools/wpp/wpp_private.h b/reactos/sdk/tools/wpp/wpp_private.h
deleted file mode 100644 (file)
index caa52b9..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * Copyright 1998 Bertho A. Stultiens (BS)
- * Copyright 2002 Alexandre Julliard
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#ifndef __WINE_WPP_PRIVATE_H
-#define __WINE_WPP_PRIVATE_H
-
-#ifndef __WINE_CONFIG_H
-# error You must include config.h to use this header
-#endif
-
-#include <stdio.h>
-#include <string.h>
-
-struct pp_entry;       /* forward */
-/*
- * Include logic
- * A stack of files which are already included and
- * are protected in the #ifndef/#endif way.
- */
-typedef struct includelogicentry {
-       struct includelogicentry *next;
-       struct includelogicentry *prev;
-       struct pp_entry *ppp;           /* The define which protects the file */
-       char            *filename;      /* The filename of the include */
-} includelogicentry_t;
-
-/*
- * The arguments of a macrodefinition
- */
-typedef enum {
-       arg_single,
-       arg_list
-} def_arg_t;
-
-typedef struct marg {
-       def_arg_t       type;   /* Normal or ... argument */
-       char            *arg;   /* The textual argument */
-       int             nnl;    /* Number of newlines in the text to subst */
-} marg_t;
-
-/*
- * The expansiontext of a macro
- */
-typedef enum {
-       exp_text,       /* Simple text substitution */
-       exp_concat,     /* Concat (##) operator requested */
-       exp_stringize,  /* Stringize (#) operator requested */
-       exp_subst       /* Substitute argument */
-} def_exp_t;
-
-typedef struct mtext {
-       struct mtext    *next;
-       struct mtext    *prev;
-       def_exp_t       type;
-       union {
-               char    *text;
-               int     argidx;         /* For exp_subst and exp_stringize reference */
-       } subst;
-} mtext_t;
-
-/*
- * The define descriptor
- */
-typedef enum {
-       def_none,       /* Not-a-define; used as return value */
-       def_define,     /* Simple defines */
-       def_macro,      /* Macro defines */
-       def_special     /* Special expansions like __LINE__ and __FILE__ */
-} def_type_t;
-
-typedef struct pp_entry {
-       struct pp_entry *next;
-       struct pp_entry *prev;
-       def_type_t      type;           /* Define or macro */
-       char            *ident;         /* The key */
-       marg_t          **margs;        /* Macro arguments array or NULL if none */
-       int             nargs;
-       union {
-               mtext_t *mtext;         /* The substitution sequence or NULL if none */
-               char    *text;
-       } subst;
-       int             expanding;      /* Set when feeding substitution into the input */
-       char            *filename;      /* Filename where it was defined */
-       int             linenumber;     /* Linenumber where it was defined */
-       includelogicentry_t *iep;       /* Points to the include it protects */
-} pp_entry_t;
-
-
-/*
- * If logic
- */
-#define MAXIFSTACK     64      /* If this isn't enough you should alter the source... */
-
-typedef enum {
-       if_false,
-       if_true,
-       if_elif,
-       if_elsefalse,
-       if_elsetrue,
-       if_ignore,
-       if_error
-} pp_if_state_t;
-
-
-/*
- * Trace the include files to prevent double reading.
- * This save 20..30% of processing time for most stuff
- * that uses complex includes.
- * States:
- * -1  Don't track or seen junk
- *  0  New include, waiting for "#ifndef __xxx_h"
- *  1  Seen #ifndef, waiting for "#define __xxx_h ..."
- *  2  Seen #endif, waiting for EOF
- */
-typedef struct
-{
-    int state;
-    char *ppp;             /* The define to be set from the #ifndef */
-    int ifdepth;           /* The level of ifs at the #ifdef */
-    int seen_junk;         /* Set when junk is seen */
-} include_state_t;
-
-
-/*
- * If the configure says we have long long then we can use it.  Presumably
- * if we have long long then we have strtoull and strtoll too.  If that is
- * not the case we will need to add to the configure tests.
- * If we do not have long long , then we revert to a simple 'long' for now.
- * This should prevent most unexpected things with other compilers than
- * gcc and egcs for now.
- * In the future it should be possible to use another way, like a
- * structure, so that we can emulate the MS compiler.
- */
-#ifdef HAVE_LONG_LONG
-typedef long long wrc_sll_t;
-typedef unsigned long long wrc_ull_t;
-#else
-typedef long wrc_sll_t;
-typedef unsigned long wrc_ull_t;
-#endif
-
-#define SIZE_CHAR      1
-#define SIZE_SHORT     2
-#define SIZE_INT       3
-#define SIZE_LONG      4
-#define SIZE_LONGLONG  5
-#define SIZE_MASK      0x00ff
-#define FLAG_SIGNED    0x0100
-
-typedef enum {
-#if 0
-       cv_schar  = SIZE_CHAR + FLAG_SIGNED,
-       cv_uchar  = SIZE_CHAR,
-       cv_sshort = SIZE_SHORT + FLAG_SIGNED,
-       cv_ushort = SIZE_SHORT,
-#endif
-       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
-} ctype_t;
-
-typedef struct cval {
-       ctype_t type;
-       union {
-#if 0
-               signed char     sc;     /* Explicitly signed because compilers are stupid */
-               unsigned char   uc;
-               short           ss;
-               unsigned short  us;
-#endif
-               int             si;
-               unsigned int    ui;
-               long            sl;
-               unsigned long   ul;
-               wrc_sll_t       sll;
-               wrc_ull_t       ull;
-       } val;
-} cval_t;
-
-
-
-void *pp_xmalloc(size_t);
-void *pp_xrealloc(void *, size_t);
-char *pp_xstrdup(const char *str);
-pp_entry_t *pplookup(const char *ident);
-int pp_push_define_state(void);
-void pp_pop_define_state(void);
-pp_entry_t *pp_add_define(const char *def, const char *text);
-pp_entry_t *pp_add_macro(char *ident, marg_t *args[], int nargs, 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);
-
-#ifndef __GNUC__
-#define __attribute__(x)  /*nothing*/
-#endif
-
-extern const struct wpp_callbacks *wpp_callbacks;
-
-int ppy_error(const char *s, ...) __attribute__((format (printf, 1, 2)));
-int ppy_warning(const char *s, ...) __attribute__((format (printf, 1, 2)));
-void pp_internal_error(const char *file, int line, const char *s, ...) __attribute__((format (printf, 3, 4)));
-
-/* current preprocessor state */
-/* everything is in this structure to avoid polluting the global symbol space */
-struct pp_status
-{
-    char *input;        /* current input file name */
-    void *file;         /* current input file descriptor */
-    int line_number;    /* current line number */
-    int char_number;    /* current char number in line */
-    int state;          /* current error state */
-    int pedantic;       /* pedantic option */
-    int debug;          /* debug messages flag */
-};
-
-extern struct pp_status pp_status;
-extern include_state_t pp_incl_state;
-extern includelogicentry_t *pp_includelogiclist;
-
-/*
- * From ppl.l
- */
-extern FILE *ppy_in;
-extern FILE *ppy_out;
-extern char *ppy_text;
-extern int pp_flex_debug;
-int ppy_lex(void);
-
-void pp_do_include(char *fname, int type);
-void pp_push_ignore_state(void);
-void pp_pop_ignore_state(void);
-
-void pp_writestring(const char *format, ...) __attribute__((format (printf, 1, 2)));
-
-/*
- * From ppy.y
- */
-int ppy_parse(void);
-extern int ppy_debug;
-
-#endif  /* __WINE_WPP_PRIVATE_H */