x-engine-c v0.2.13
The C engine for x-lang
Loading...
Searching...
No Matches
procedure.h
Go to the documentation of this file.
1#ifndef X_TYPE_PROCEDURE_H
2#define X_TYPE_PROCEDURE_H
3
37/*
38 * ., .,
39 * {O,O}
40 * ( )
41 * " "
42 */
43#include "x-type.h"
44#include "x-type/prim.h"
45
46#define X_TYPE_PROCEDURE_NAME "PROCEDURE"
50#define x_obj_type_isprocedure(B,X) x_obj_is_type((B), (X), X_TYPE_PROCEDURE_NAME)
64#define x_procstate(X) x_callable_state((X))
65#define x_procparams(X) x_firstobj(x_procstate((X)))
66#define x_procbody(X) x_firstobj(x_restobj(x_procstate((X))))
67#define x_procenv(X) x_restobj(x_restobj(x_procstate((X))))
70#define X_OBJ_FLAG_WRAP X_OBJ_FLAG_1
74#define x_mkproc(B,P,BD,E) x_make_procedure((B), X_OBJ_FLAG_NONE, (P), (BD), (E))
75#define x_mkfproc(B,F,P,BD,E) x_make_procedure((B), (F), (P), (BD), (E))
76#define x_mkwrap(B,C) x_make_procedure((B), X_OBJ_FLAG_WRAP, NULL, NULL, (C))
89 x_obj_t *p_params, x_obj_t *p_body, x_obj_t *p_env);
90
101
102#endif /* X_TYPE_PROCEDURE_H */
static void x_obj_t * p_args
Definition x-prim.h:56
x_obj_t * x_type_procedure_apply(x_obj_t *p_base, x_obj_t *p_args)
Definition procedure.c:251
x_satom_t x_type_procedure_struct_prim
Definition procedure.h:84
x_obj_t * x_make_procedure(x_obj_t *p_base, x_obj_flag_t flags, x_obj_t *p_params, x_obj_t *p_body, x_obj_t *p_env)
Definition procedure.c:80
x_obj_t * x_type_procedure_register(x_obj_t *p_base, x_obj_t *p_args)
Definition procedure.c:131
x_obj_t * x_type_procedure_call(x_obj_t *p_base, x_obj_t *p_args)
Definition procedure.c:188
x_obj_t * x_type_procedure_make(x_obj_t *p_base, x_obj_t *p_args)
Definition procedure.c:150
x_obj_t * x_type_procedure_struct(x_obj_t *p_base, x_obj_t *p_args)
Definition procedure.c:110
x_satom_t x_type_procedure_call_prim
Definition procedure.h:83
x_satom_t x_type_procedure_name
Definition procedure.c:55
x_satom_t x_type_procedure_make_prim
Definition procedure.h:82
Definition x-obj.h:212
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.