Added lambda functions. variable length arguments still todo.

This commit is contained in:
2014-05-26 22:37:19 +01:00
parent 41fd1756a9
commit c1987617a0
9 changed files with 172 additions and 25 deletions

5
lenv.h
View File

@@ -25,11 +25,13 @@ extern "C" {
struct lenv {
size_t count;
struct lenv* parent;
struct symtab** syms;
};
lenv* lenv_new();
void lenv_delete(lenv* env);
lenv* lenv_copy(lenv* env);
int lenv_compare_symtabs(const void *a, const void *b);
void lenv_sort(lenv* env);
@@ -37,9 +39,12 @@ extern "C" {
lval* lenv_get(lenv* env, lval* sym);
void lenv_put(lenv* env, lval* key, lval* val);
void lenv_def(lenv* env, lval* key, lval* val);
void lenv_var(lenv* env, lval* key, lval* val);
symtab* symtab_new(char* sym, lval* lval);
void symtab_delete(symtab* symtab);
symtab* symtab_copy(symtab* symtab);
#ifdef __cplusplus
}