x-engine-c v0.2.13
The C engine for x-lang
Loading...
Searching...
No Matches
x-env.h
Go to the documentation of this file.
1#ifndef X_ENV_H
2#define X_ENV_H
3
23/*
24 * ., .,
25 * {O,O}
26 * ( )
27 * " "
28 */
29
30#include "x-obj.h"
31
34#define x_env_bindings(E) x_firstobj(E)
35#define x_env_parent(E) x_restobj(E)
36#define x_env_isroot(B,E) x_obj_isnil((B), x_restobj(E))
40x_obj_t *x_env_make(x_obj_t *p_base, x_obj_t *p_parent);
41
46x_obj_t *x_env_lookup(x_obj_t *p_base, x_obj_t *p_env, x_obj_t *p_sym);
47
51x_obj_t *x_env_bind(x_obj_t *p_base, x_obj_t *p_env,
52 x_obj_t *p_sym, x_obj_t *p_val);
53
56x_obj_t *x_env_extend(x_obj_t *p_base, x_obj_t *p_parent,
57 x_obj_t *p_params, x_obj_t *p_vals);
58
59#endif /* X_ENV_H */
Definition x-obj.h:212
x_obj_t * x_env_bind(x_obj_t *p_base, x_obj_t *p_env, x_obj_t *p_sym, x_obj_t *p_val)
Definition x-env.c:139
x_obj_t * x_env_make(x_obj_t *p_base, x_obj_t *p_parent)
Definition x-env.c:31
x_obj_t * x_env_extend(x_obj_t *p_base, x_obj_t *p_parent, x_obj_t *p_params, x_obj_t *p_vals)
Definition x-env.c:207
x_obj_t * x_env_lookup(x_obj_t *p_base, x_obj_t *p_env, x_obj_t *p_sym)
Definition x-env.c:83
The x-expr object system – atoms, pairs, flags, and type dispatch.