aboutsummaryrefslogtreecommitdiffstats
path: root/src/bootstrap/environment.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bootstrap/environment.c')
-rw-r--r--src/bootstrap/environment.c42
1 files changed, 0 insertions, 42 deletions
diff --git a/src/bootstrap/environment.c b/src/bootstrap/environment.c
deleted file mode 100644
index fca2449..0000000
--- a/src/bootstrap/environment.c
+++ /dev/null
@@ -1,42 +0,0 @@
1//
2// Environment.
3//
4
5typedef struct EnvSymbol {
6 Object *symbol;
7 Object *value;
8} EnvSymbol;
9
10typedef struct Environment {
11 struct Environment *parent;
12 EnvSymbol *memory;
13 size_t size;
14 size_t capacity;
15} Environment;
16
17#define ENV_SIZE 256
18static EnvSymbol environment[ENV_SIZE];
19static size_t env_n = 0;
20
21Object *
22env_find_symbol(Object *symbol) {
23 for (size_t i = 0; i < env_n; i++) {
24 if (symbol_eq(environment[i].symbol, symbol)) {
25 return environment[i].value;
26 }
27 }
28 return obj_nil;
29}
30
31Environment *
32env_create(Environment *parent) {
33 // TODO: calloc env and assign parent.
34 return NULL;
35}
36
37void
38env_add_symbol(EnvSymbol symbol, Environment *env) {
39 // TODO: If empty allocate enough for one object.
40 // TODO: If full double the capacity and realloc.
41 // TODO: Put the symbol on the next slot available.
42}