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;
186 static inline
void cf_preprocessor_add_sys_include_dir(
190 da_push_back(pp->sys_include_dirs, bstrdup(include_dir));
196 const char *def_name);
198 static inline struct cf_token *cf_preprocessor_get_tokens(
201 return pp->tokens.array;
Definition: cf-lexer.h:39
Definition: cf-lexer.h:107
char * file
Definition: cf-lexer.h:86
Definition: cf-lexer.h:42
typedef DARRAY(profiler_time_entry_t) profiler_time_entries_t
EXPORT bool cf_preprocess(struct cf_preprocessor *pp, struct cf_lexer *lex, struct error_data *ed)
Definition: cf-lexer.h:47
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:478
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:456
EXPORT void cf_lexer_init(struct cf_lexer *lex)
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:454
EXPORT void cf_preprocessor_init(struct cf_preprocessor *pp)
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
EXPORT void cf_preprocessor_free(struct cf_preprocessor *pp)