41
41
struct sieve_binary_block *sieve_generator_get_block
42
42
(struct sieve_generator *gentr);
48
48
void sieve_generator_warning
49
(struct sieve_generator *gentr, unsigned int source_line,
49
(struct sieve_generator *gentr, unsigned int source_line,
50
50
const char *fmt, ...) ATTR_FORMAT(3, 4);
51
51
void sieve_generator_error
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_critical
55
(struct sieve_generator *gentr, unsigned int source_line,
56
const char *fmt, ...) ATTR_FORMAT(3, 4);
55
(struct sieve_generator *gentr, unsigned int source_line,
56
const char *fmt, ...) ATTR_FORMAT(3, 4);
62
62
void sieve_generator_extension_set_context
63
(struct sieve_generator *gentr, const struct sieve_extension *ext,
63
(struct sieve_generator *gentr, const struct sieve_extension *ext,
65
65
const void *sieve_generator_extension_get_context
66
66
(struct sieve_generator *gentr, const struct sieve_extension *ext);
72
72
struct sieve_jumplist {
85
85
(struct sieve_jumplist *jlist, sieve_size_t jump);
86
86
void sieve_jumplist_resolve(struct sieve_jumplist *jlist);
92
92
bool sieve_generate_argument
93
(const struct sieve_codegen_env *cgenv, struct sieve_ast_argument *arg,
93
(const struct sieve_codegen_env *cgenv, struct sieve_ast_argument *arg,
94
94
struct sieve_command *cmd);
95
95
bool sieve_generate_arguments
96
(const struct sieve_codegen_env *cgenv, struct sieve_command *cmd,
96
(const struct sieve_codegen_env *cgenv, struct sieve_command *cmd,
97
97
struct sieve_ast_argument **last_arg_r);
98
98
bool sieve_generate_argument_parameters
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 *arg);
102
102
bool sieve_generate_block
103
103
(const struct sieve_codegen_env *cgenv, struct sieve_ast_node *block);
104
104
bool sieve_generate_test
105
(const struct sieve_codegen_env *cgenv, struct sieve_ast_node *tst_node,
105
(const struct sieve_codegen_env *cgenv, struct sieve_ast_node *tst_node,
106
106
struct sieve_jumplist *jlist, bool jump_true);
107
107
struct sieve_binary *sieve_generator_run
108
108
(struct sieve_generator *gentr, struct sieve_binary_block **sblock_r);
110
110
#endif /* __SIEVE_GENERATOR_H */