Implement 5.52 translate Scheme to C

This commit is contained in:
2021-06-12 19:49:53 -04:00
parent 15057b52d4
commit 90a1f8a573
12 changed files with 808 additions and 199 deletions

25
shared/scm2c/env.h Normal file
View File

@@ -0,0 +1,25 @@
#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