1#ifndef X_TYPE_OPERATIVE_H
2#define X_TYPE_OPERATIVE_H
45#define X_TYPE_OPERATIVE_NAME "OPERATIVE"
49#define x_obj_type_isoperative(B,X) x_obj_is_type((B), (X), X_TYPE_OPERATIVE_NAME)
58#define x_opstate(X) x_callable_state((X))
59#define x_opparams(X) x_firstobj(x_opstate((X)))
60#define x_openvparam(X) x_firstobj(x_restobj(x_opstate((X))))
61#define x_opbody(X) x_firstobj(x_restobj(x_restobj(x_opstate((X)))))
62#define x_openv(X) x_restobj(x_restobj(x_restobj(x_opstate((X)))))
67#define x_mkop(B,P,EP,BD,E) x_make_operative((B), X_OBJ_FLAG_NONE, (P), (EP), (BD), (E))
static void x_obj_t * p_args
Definition x-prim.h:56
x_obj_t * x_type_operative_call(x_obj_t *p_base, x_obj_t *p_args)
Definition operative.c:188
x_satom_t x_type_operative_name
Definition operative.c:39
x_obj_t * x_make_operative(x_obj_t *p_base, x_obj_flag_t flags, x_obj_t *p_params, x_obj_t *p_envparam, x_obj_t *p_body, x_obj_t *p_env)
Definition operative.c:68
x_satom_t x_type_operative_make_prim
Definition operative.h:73
x_obj_t * x_type_operative_make(x_obj_t *p_base, x_obj_t *p_args)
Definition operative.c:139
x_satom_t x_type_operative_struct_prim
Definition operative.h:75
x_satom_t x_type_operative_call_prim
Definition operative.h:74
x_obj_t * x_type_operative_register(x_obj_t *p_base, x_obj_t *p_args)
Definition operative.c:120
x_obj_t * x_type_operative_struct(x_obj_t *p_base, x_obj_t *p_args)
Definition operative.c:99
enum x_obj_flag_enum x_obj_flag_t
x_obj_t x_satom_t[X_OBJ_META_LEN+X_OBJ_UNITS_ATOM]
Definition x-obj.h:283
Primitive (C function) type and unified callable dispatch.
Type system field accessors and type struct definition.