44
44
struct sieve_binary_block *sieve_generator_get_block
45
45
(struct sieve_generator *gentr);
51
51
void sieve_generator_warning
52
(struct sieve_generator *gentr, unsigned int source_line,
52
(struct sieve_generator *gentr, unsigned int source_line,
53
53
const char *fmt, ...) ATTR_FORMAT(3, 4);
54
54
void sieve_generator_error
55
(struct sieve_generator *gentr, unsigned int source_line,
55
(struct sieve_generator *gentr, unsigned int source_line,
56
56
const char *fmt, ...) ATTR_FORMAT(3, 4);
57
57
void sieve_generator_critical
58
(struct sieve_generator *gentr, unsigned int source_line,
59
const char *fmt, ...) ATTR_FORMAT(3, 4);
58
(struct sieve_generator *gentr, unsigned int source_line,
59
const char *fmt, ...) ATTR_FORMAT(3, 4);
65
65
void sieve_generator_extension_set_context
66
(struct sieve_generator *gentr, const struct sieve_extension *ext,
66
(struct sieve_generator *gentr, const struct sieve_extension *ext,
68
68
const void *sieve_generator_extension_get_context
69
69
(struct sieve_generator *gentr, const struct sieve_extension *ext);
75
75
struct sieve_jumplist {
77
77
struct sieve_binary_block *block;
78
ARRAY_DEFINE(jumps, sieve_size_t);
78
ARRAY(sieve_size_t) jumps;
81
81
struct sieve_jumplist *sieve_jumplist_create
88
88
(struct sieve_jumplist *jlist, sieve_size_t jump);
89
89
void sieve_jumplist_resolve(struct sieve_jumplist *jlist);
95
95
bool sieve_generate_argument
96
(const struct sieve_codegen_env *cgenv, struct sieve_ast_argument *arg,
96
(const struct sieve_codegen_env *cgenv, struct sieve_ast_argument *arg,
97
97
struct sieve_command *cmd);
98
98
bool sieve_generate_arguments
99
(const struct sieve_codegen_env *cgenv, struct sieve_command *cmd,
99
(const struct sieve_codegen_env *cgenv, struct sieve_command *cmd,
100
100
struct sieve_ast_argument **last_arg_r);
101
101
bool sieve_generate_argument_parameters
102
(const struct sieve_codegen_env *cgenv, struct sieve_command *cmd,
102
(const struct sieve_codegen_env *cgenv, struct sieve_command *cmd,
103
103
struct sieve_ast_argument *arg);
105
105
bool sieve_generate_block
106
106
(const struct sieve_codegen_env *cgenv, struct sieve_ast_node *block);
107
107
bool sieve_generate_test
108
(const struct sieve_codegen_env *cgenv, struct sieve_ast_node *tst_node,
108
(const struct sieve_codegen_env *cgenv, struct sieve_ast_node *tst_node,
109
109
struct sieve_jumplist *jlist, bool jump_true);
110
110
struct sieve_binary *sieve_generator_run
111
111
(struct sieve_generator *gentr, struct sieve_binary_block **sblock_r);