| 54 | } |
| 55 | |
| 56 | void hc_dsl_init(struct hc_dsl *dsl, struct hc_malloc *malloc) { |
| 57 | hc_set_init(&dsl->env, malloc, sizeof(struct env_item), env_cmp); |
| 58 | dsl->env.key = env_key; |
| 59 | dsl->out = hc_stdout(); |
| 60 | |
| 61 | hc_vm_init(&dsl->vm, &hc_malloc_default); |
| 62 | hc_dsl_set_fun(dsl, "print", lib_print); |
| 63 | hc_dsl_set_fun(dsl, "upcase", lib_upcase); |
| 64 | } |
| 65 | |
| 66 | static void deinit_env(struct hc_set *env) { |
| 67 | hc_vector_do(&env->items, _it) { |