diff options
Diffstat (limited to 'src/env.h')
-rw-r--r-- | src/env.h | 19 |
1 files changed, 7 insertions, 12 deletions
@@ -4,24 +4,19 @@ // #include "value.h" typedef struct value * _value_t; -#include "hashtable.h" - -typedef struct symbol_table *env_t; +typedef struct env * env_t; #define ENV_EMPTY NULL typedef void (*env_destroy_func)(char *key, _value_t value); -struct symbol_table { - hashtable_t table; - - struct symbol_table *parent; - size_t refs; +env_t env_create(env_t parent, env_destroy_func destroy_func); +void env_destroy(env_t env); - env_destroy_func destroy_func; -}; +int env_insert(env_t env, char *key, _value_t data, + char **prevkey, _value_t *prevdata); +int env_query(env_t env, char *key, _value_t *data); -env_t env_create(env_t parent, env_destroy_func destroy_func); env_t env_copy(env_t env); -void env_destroy(env_t env); +env_t env_parent(env_t env); #endif |