#ifndef CODEGEN_VAR_MAP_H_ #define CODEGEN_VAR_MAP_H_ #include #include struct mie_value; struct ivy_ast_node; enum codegen_var_flags { CODEGEN_VAR_F_PTR = 0x01u, CODEGEN_VAR_F_CAPTURE = 0x02u, }; struct codegen_var { enum codegen_var_flags v_flags; struct mie_type *v_type; struct ivy_ast_node *v_node; struct mie_value *v_value; }; struct codegen_var_map { b_hashmap *m_map; }; extern enum ivy_status codegen_var_map_init(struct codegen_var_map *map); extern enum ivy_status codegen_var_map_fini(struct codegen_var_map *map); extern enum ivy_status codegen_var_map_get( struct codegen_var_map *map, const char *ident, struct codegen_var **out); extern enum ivy_status codegen_var_map_put( struct codegen_var_map *map, const char *ident, const struct codegen_var *var); #endif