From d38ae947933fe26773a810d91fba3b23766d4d92 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Wed, 13 Oct 2021 20:46:26 +0200 Subject: Add set! and eval procedures --- src/bootstrap/environment.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'src/bootstrap/environment.c') diff --git a/src/bootstrap/environment.c b/src/bootstrap/environment.c index d4e9f86..99dd7fd 100644 --- a/src/bootstrap/environment.c +++ b/src/bootstrap/environment.c @@ -60,18 +60,13 @@ env_lookup(Environment *env, Object *symbol) { return obj_err; } -void -env_update_symbol(Environment *env, Object *symbol, Object *value) { - // Try to find an existing symbol in the current environment. +ssize_t +env_symbol_index_in_current_env(Environment *env, Object *symbol) { for (size_t i = 0; i < env->size; i++) { EnvEntry entry = env->buf[i]; if (obj_eq(symbol, entry.symbol)) { - env->buf[i].value = value; - return; + return i; } } - // If we don't find the symbol, add a new entry. - env_add_symbol(env, symbol, value); + return -1; } - -// TODO: Free env function. -- cgit v1.2.1