25 lines
730 B
C
25 lines
730 B
C
|
#ifndef ENVIRONMENT_H
|
||
|
#define ENVIRONMENT_H
|
||
|
|
||
|
#include "object.h"
|
||
|
|
||
|
struct Environment;
|
||
|
struct Environment {
|
||
|
char **strings;
|
||
|
Object *objects;
|
||
|
struct Environment *outer;
|
||
|
char size;
|
||
|
};
|
||
|
|
||
|
Object fetchFromEnvironment(const char *name, struct Environment *env);
|
||
|
struct Environment envForLambda(const Object *params, const Object *arg_forms,
|
||
|
struct Environment *outer);
|
||
|
void addToEnv(struct Environment *env, const char *name, const Object obj);
|
||
|
void printEnv(struct Environment *env);
|
||
|
void addFunc(const char *name, Object (*func)(Object, Object, struct Environment*),
|
||
|
struct Environment *env);
|
||
|
void deleteEnv(struct Environment *e);
|
||
|
struct Environment defaultEnv();
|
||
|
|
||
|
#endif
|