#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