mirror of
https://github.com/samsonjs/lake.git
synced 2026-03-25 08:55:49 +00:00
25 lines
520 B
C
25 lines
520 B
C
#ifndef _LAKE_ENV_H
|
|
#define _LAKE_ENV_H 1
|
|
|
|
#include "hashtab.h"
|
|
|
|
struct env {
|
|
struct env *parent;
|
|
hashtab_t *bindings;
|
|
hashtab_t *symbols;
|
|
};
|
|
typedef struct env Env;
|
|
|
|
#include "lake.h"
|
|
|
|
void set_shared_env(Env *env);
|
|
Env *shared_env(void);
|
|
|
|
Env *env_make(Env *parent);
|
|
LakeVal *env_define(Env *env, char *key, LakeVal *val);
|
|
LakeVal *env_set(Env *env, char *key, LakeVal *val);
|
|
LakeVal *env_get(Env *env, char *key);
|
|
int env_is_bound(Env *env, char *key);
|
|
LakeVal *env_eval(Env *env, LakeVal *expr);
|
|
|
|
#endif
|