26 lines
643 B
C
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
|
|
|