#ifndef ENV_H #define ENV_H #include "datum.h" typedef struct mapping { const char *variable; datum *value; struct mapping *next; } mapping; typedef struct environment { struct mapping *first_mapping; struct environment *outer_env; } environment; datum* define_variable(const char *var, datum *value, environment *env); datum* lookup_variable_value(char* c, environment* e); datum* make_compiled_proc(void* entry, environment* e); environment* extend_environment(const char **args, datum *argl, environment* env); environment* get_global_environment(void); mapping* new_mapping(const char* var, datum* value); #endif