From 9009175bc9ec7f79db903798797fc6fd9ec39aa8 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Sat, 6 May 2023 23:28:04 -0400 Subject: [PATCH] some scaffolding for adding functions --- mumble | Bin 184712 -> 185176 bytes src/mumble.c | 78 ++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 65 insertions(+), 13 deletions(-) diff --git a/mumble b/mumble index 013364e5b1f7e6028a051230b23fdcb64096820b..438a268f6eda81240d2ce9378a8f30669da87504 100755 GIT binary patch delta 56196 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 Gs{aqB7Fl`# delta 55182 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%0D_XR*UqM#2qBu8y*tLrM9( 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 Xy)_(6gFi7CoVbsJ&nVb>z%2iNA6xrM diff --git a/src/mumble.c b/src/mumble.c index d879bc3..a168edf 100644 --- a/src/mumble.c +++ b/src/mumble.c @@ -44,7 +44,8 @@ enum { LISPVAL_NUM, LISPVAL_ERR, LISPVAL_SYM, - LISPVAL_FUNC, + LISPVAL_BUILTIN_FUNC, + LISPVAL_USER_FUNC, LISPVAL_SEXPR, LISPVAL_QEXPR, }; @@ -118,7 +119,7 @@ lispval* lispval_builtin_func(lispbuiltin func, char* builtin_func_name) if (VERBOSE) printfln("Allocating func name:%s, pointer: %p", builtin_func_name, func); lispval* v = malloc(sizeof(lispval)); - v->type = LISPVAL_FUNC; + v->type = LISPVAL_BUILTIN_FUNC; v->count = 0; v->builtin_func_name = malloc(strlen(builtin_func_name) + 1); strcpy(v->builtin_func_name, builtin_func_name); @@ -128,6 +129,18 @@ lispval* lispval_builtin_func(lispbuiltin func, char* builtin_func_name) return v; } +lispenv* new_lispenv(); +lispval* lispval_lambda_func(lispval* variables, lispval* manipulation){ + lispval* v = malloc(sizeof(lispval)); + v->type = LISPVAL_USER_FUNC; + v->builtin_func = NULL; + v->env = new_lispenv(); + v->variables = variables; + v->manipulation = manipulation; + // unclear how to garbage-collect this. Maybe add to a list and collect at the end? + return v; +} + lispval* lispval_sexpr(void) { if (VERBOSE) @@ -190,16 +203,41 @@ void delete_lispval(lispval* v) if (VERBOSE) printfln("Freed sym"); break; - case LISPVAL_FUNC: - if (VERBOSE) - printfln("Freeing func"); - if (v->builtin_func_name != NULL) - free(v->builtin_func_name); - v->builtin_func_name = NULL; + case LISPVAL_BUILTIN_FUNC: + if (v->builtin_func_name != NULL){ + if (VERBOSE){ + printfln("Freeing builtin func"); + } + free(v->builtin_func_name); + v->builtin_func_name = NULL; + } if (v != NULL) free(v); if (VERBOSE) - printfln("Freed func"); + printfln("Freed builtin func"); + // Don't do anything with v->func for now + // Though we could delete the pointer to the function later + // free(v->func); + break; + case LISPVAL_USER_FUNC: + if (VERBOSE) + printfln("Freeing user-defined func"); + if (v->env != NULL){ + free(v->env); + v->env = NULL; + } + if (v->variables != NULL){ + free(v->variables); + v->variables = NULL; + } + if (v->manipulation != NULL){ + free(v->manipulation); + v->manipulation = NULL; + } + if (v != NULL) + free(v); + if (VERBOSE) + printfln("Freed user-defined func"); // Don't do anything with v->func for now // Though we could delete the pointer to the function later // free(v->func); @@ -399,9 +437,12 @@ void print_lispval_tree(lispval* v, int indent_level) case LISPVAL_SYM: printfln("%sSymbol: %s", indent, v->sym); break; - case LISPVAL_FUNC: + case LISPVAL_BUILTIN_FUNC: printfln("%sFunction, name: %s, pointer: %p", indent, v->builtin_func_name, v->builtin_func); break; + case LISPVAL_USER_FUNC: + printfln("%sUser-defined function: %p", indent, v->env); // Identify it with its environment? + break; case LISPVAL_SEXPR: printfln("%sSExpr, with %d children:", indent, v->count); for (int i = 0; i < v->count; i++) { @@ -439,9 +480,12 @@ void print_lispval_parenthesis(lispval* v) case LISPVAL_SYM: printf("%s ", v->sym); break; - case LISPVAL_FUNC: + case LISPVAL_BUILTIN_FUNC: printf(" ", v->builtin_func_name, v->builtin_func); break; + case LISPVAL_USER_FUNC: + printf(" ", v->env); + break; case LISPVAL_SEXPR: printf("( "); for (int i = 0; i < v->count; i++) { @@ -497,9 +541,12 @@ lispval* clone_lispval(lispval* old) case LISPVAL_SYM: new = lispval_sym(old->sym); break; - case LISPVAL_FUNC: + case LISPVAL_BUILTIN_FUNC: new = lispval_builtin_func(old->builtin_func, old->builtin_func_name); break; + case LISPVAL_USER_FUNC: + new = lispval_lambda_func(old->variables, old->manipulation); + break; case LISPVAL_SEXPR: new = lispval_sexpr(); break; @@ -874,7 +921,7 @@ lispval* evaluate_lispval(lispval* l, lispenv* env) // Check if the first element is an operation. if (VERBOSE) printfln("Checking is first element is a function"); - if (l->count >= 2 && ((l->cell[0])->type == LISPVAL_FUNC)) { + if (l->count >= 2 && ((l->cell[0])->type == LISPVAL_BUILTIN_FUNC)){ if (VERBOSE) printfln("Passed check"); @@ -909,6 +956,11 @@ lispval* evaluate_lispval(lispval* l, lispenv* env) printfln("Cleaned up. Returning"); return answer; } + + if (l->count >= 2 && ((l->cell[0])->type == LISPVAL_USER_FUNC)) { + // Do something with user-defined functions here + } + return l; } // Increase or decrease verbosity level manually