6 #ifndef RZ_IL_VARIABLE_H
7 #define RZ_IL_VARIABLE_H
Holds a set of variable definitions and their current contents This is meant only as a low-level cont...
Definition of a variable inside the vm.
RzILSortPure sort
"type" of the variable
RZ_API RZ_BORROW RzILVar * rz_il_var_set_create_var(RzILVarSet *vs, const char *name, RzILSortPure sort)
RZ_API void rz_il_variable_free(RZ_NULLABLE RzILVar *var)
RZ_API bool rz_il_var_set_bind(RzILVarSet *vs, const char *name, RZ_OWN RzILVal *val)
RZ_API bool rz_il_var_set_init(RzILVarSet *vs)
RZ_API void rz_il_var_set_reset(RzILVarSet *vs)
RZ_API RZ_OWN RzPVector * rz_il_var_set_get_all(RzILVarSet *vs)
const char * rz_il_var_kind_name(RzILVarKind kind)
RZ_API RZ_BORROW RzILVar * rz_il_var_set_get(RzILVarSet *vs, const char *name)
RZ_API RZ_OWN RzILVar * rz_il_variable_new(RZ_NONNULL const char *name, RzILSortPure sort)
struct rz_il_var_t RzILVar
Definition of a variable inside the vm.
RZ_API RZ_BORROW RzILVal * rz_il_var_set_get_value(RzILVarSet *vs, const char *name)
struct rz_il_var_set_t RzILVarSet
Holds a set of variable definitions and their current contents This is meant only as a low-level cont...
RZ_API void rz_il_var_set_fini(RzILVarSet *vs)
@ RZ_IL_VAR_KIND_GLOBAL
global var, usually bound to a physical representation like a register.
@ RZ_IL_VAR_KIND_LOCAL
local var, defined and assigned by set ops, mutable and useable across effects.
@ RZ_IL_VAR_KIND_LOCAL_PURE
local pure var, bound only by let expressions, scope is limited to the let's pure body,...
RZ_API RZ_OWN RZ_NULLABLE RzILVal * rz_il_var_set_remove_var(RzILVarSet *vs, const char *name)