# ifndef CPP_H
# define CPP_H
typedef struct cppBuffer cppBuffer;
typedef struct cppOptions cppOptions;
enum cpp_token {
CPP_EOF = -1,
CPP_OTHER = 0,
CPP_COMMENT = 1,
CPP_HSPACE,
CPP_VSPACE, /* newlines and #line directives */
CPP_NAME,
CPP_NUMBER,
CPP_CHAR,
CPP_STRING,
CPP_DIRECTIVE,
CPP_LPAREN, /* "(" */
CPP_RPAREN, /* ")" */
CPP_LBRACE, /* "{" */
CPP_RBRACE, /* "}" */
CPP_COMMA, /* "," */
CPP_SEMICOLON,/* ";" */
CPP_3DOTS, /* "..." */
#if 0
CPP_ANDAND, /* "&&" */
CPP_OROR, /* "||" */
CPP_LSH, /* "<<" */
CPP_RSH, /* ">>" */
CPP_EQL, /* "==" */
CPP_NEQ, /* "!=" */
CPP_LEQ, /* "<=" */
CPP_GEQ, /* ">=" */
CPP_PLPL, /* "++" */
CPP_MINMIN, /* "--" */
#endif
/* POP_TOKEN is returned when we've popped a cppBuffer. */
CPP_POP
};
typedef struct cppReader cppReader;
extern cppReader g_cppState;
extern /*@only@*/ cstring cppReader_getIncludePath (void) ;
extern int cppProcess (/*@dependent@*/ cstring p_infile,
/*@dependent@*/ cstring p_outfile);
extern void cppAddIncludeDir (cstring);
extern void cppReader_initMod (void) /*@modifies internalState@*/ ;
extern void cppReader_destroyMod (void) /*@modifies internalState@*/ ;
extern void cppDoDefine (cstring);
extern void cppDoUndefine (cstring);
extern void cppReader_saveDefinitions (void);
extern fileloc cppReader_getLoc (cppReader *);
extern void cppReader_initialize (void);
# else
# error "Multiple include"
# endif
syntax highlighted by Code2HTML, v. 0.9.1