54 static inline void cf_token_clear(
struct cf_token *t)
56 memset(t, 0,
sizeof(
struct cf_token));
59 static inline void cf_token_copy(
struct cf_token *dst,
62 memcpy(dst, src,
sizeof(
struct cf_token));
65 static inline void cf_token_add(
struct cf_token *dst,
68 strref_add(&dst->
str, &add->
str);
98 return lex->tokens.array;
114 static inline void cf_def_init(
struct cf_def *cfd)
116 cf_token_clear(&cfd->
name);
122 static inline void cf_def_addparam(
struct cf_def *cfd,
struct cf_token *param)
127 static inline void cf_def_addtoken(
struct cf_def *cfd,
struct cf_token *token)
132 static inline struct cf_token *cf_def_getparam(
const struct cf_def *cfd,
135 return cfd->params.array + idx;
138 static inline void cf_def_free(
struct cf_def *cfd)
140 cf_token_clear(&cfd->
name);
174 DARRAY(
char *) sys_include_dirs;
188 const char *include_dir)
191 da_push_back(pp->sys_include_dirs, bstrdup(include_dir));
197 const char *def_name);
202 return pp->tokens.array;
Definition: cf-lexer.h:39
Definition: cf-lexer.h:107
struct lexer base_lexer
Definition: cf-lexer.h:87
char * file
Definition: cf-lexer.h:86
Definition: cf-lexer.h:42
DARRAY(struct cf_def) defines
EXPORT bool cf_preprocess(struct cf_preprocessor *pp, struct cf_lexer *lex, struct error_data *ed)
Definition: cf-lexer.h:47
bool unexpected_eof
Definition: cf-lexer.h:90
enum cf_token_type type
Definition: cf-lexer.h:51
Definition: cf-lexer.h:38
struct strref str
Definition: cf-lexer.h:49
struct error_data * ed
Definition: cf-lexer.h:172
#define da_push_back(v, item)
Definition: darray.h:487
cf_token_type
Definition: cf-lexer.h:37
#define EXPORT
Definition: c99defs.h:49
const struct cf_lexer * lex
Definition: cf-lexer.h:48
struct strref unmerged_str
Definition: cf-lexer.h:50
Definition: cf-lexer.h:170
Definition: cf-lexer.h:43
Definition: cf-lexer.h:40
EXPORT char * cf_literal_to_str(const char *literal, size_t count)
Definition: cf-lexer.h:41
char * write_offset
Definition: cf-lexer.h:88
#define da_free(v)
Definition: darray.h:467
EXPORT void cf_lexer_init(struct cf_lexer *lex)
bool ignore_state
Definition: cf-lexer.h:177
Definition: cf-lexer.h:85
struct cf_token name
Definition: cf-lexer.h:108
EXPORT void cf_lexer_free(struct cf_lexer *lex)
EXPORT void cf_preprocessor_add_def(struct cf_preprocessor *pp, struct cf_def *def)
EXPORT bool cf_lexer_lex(struct cf_lexer *lex, const char *str, const char *file)
#define da_init(v)
Definition: darray.h:465
EXPORT void cf_preprocessor_init(struct cf_preprocessor *pp)
DARRAY(struct cf_token) tokens
bool macro
Definition: cf-lexer.h:111
DARRAY(struct cf_token) params
EXPORT void cf_preprocessor_remove_def(struct cf_preprocessor *pp, const char *def_name)
Definition: cf-lexer.h:44
struct cf_lexer * lex
Definition: cf-lexer.h:171
char * reformatted
Definition: cf-lexer.h:88
EXPORT void cf_preprocessor_free(struct cf_preprocessor *pp)