-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmutators.h
More file actions
31 lines (23 loc) · 911 Bytes
/
mutators.h
File metadata and controls
31 lines (23 loc) · 911 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef MUTATORS_H
#define MUTATORS_H
#include "../utils/ast.h"
typedef enum STATE_FLAG{
STATE_OK = 0,
STATE_COPY_REROLL = -1,
STATE_REROLL = -2,
} STATE_FLAG;
int entry_mutate(ast_data_t **data, size_t max_size, size_t seed);
// --- mutators ---
// -- class --
int add_clz_and_init(ast_data_t *data);
int make_clz_inherit(ast_data_t *data, stmt_ty clz, PyObject *base);
int init_builtin_instance(ast_data_t *data, PyObject *type, asdl_stmt_seq **body_raw);
// -- function --
int add_rand_override(ast_data_t *data, stmt_ty clz, overridable_func func);
int feed_func_locals(ast_data_t *data, stmt_ty func, stmt_ty base_clz);
int func_variable_lifetime(ast_data_t *data, stmt_ty func);
// -- variables --
int mutate_dict_entry(ast_data_t *data, stmt_ty picked_func);
int mutate_list_entry(ast_data_t *data, stmt_ty picked_func);
int blend_locals_global(ast_data_t *data);
#endif // MUTATORS_H