pebblisp/src/env.h

25 lines
730 B
C
Raw Normal View History

#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