pebblisp/src/env.h

32 lines
747 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;
int 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