SICP/shared/scm2c/env.h

26 lines
643 B
C

#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