From 4c3a1734224e205d00a71584797be8a5c934375c Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Sun, 7 May 2023 15:46:57 -0400 Subject: [PATCH] Revert "experiment with builtin def; to be reverted" This reverts commit 2f2fa4a7e7ac015fcee2519523dd22b4287d47a2. --- mumble | Bin 125232 -> 125232 bytes src/mumble.c | 42 ++++++++++++++++++++++-------------------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/mumble b/mumble index 62883a0f0e3148ba72908e6d3d1f796f97018563..2fbef487521255a5b0ece82ead299ed6e649978e 100755 GIT binary patch delta 28409 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 b=KrfY*7T85(>4_Uw>bP0nvwKKSx5d49^!~9 delta 27875 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 diff --git a/src/mumble.c b/src/mumble.c index e95c015..650104d 100644 --- a/src/mumble.c +++ b/src/mumble.c @@ -608,7 +608,7 @@ lispval* clone_lispval(lispval* old) return lispval_err("Error: Cloning element of unknown type."); } - if ((old->type == LISPVAL_QEXPR || old->type == LISPVAL_SEXPR) && old->count > 0 ) { + if (old->count > 0 && (old->type == LISPVAL_QEXPR || old->type == LISPVAL_SEXPR)) { for (int i = 0; i < old->count; i++) { lispval* temp_child = old->cell[i]; lispval* child = clone_lispval(temp_child); @@ -698,7 +698,7 @@ lispval* builtin_eval(lispval* v, lispenv* env) lispval* temp = clone_lispval(old); temp->type = LISPVAL_SEXPR; lispval* answer = evaluate_lispval(temp, env); - // answer = evaluate_lispval(answer, env); + answer = evaluate_lispval(answer, env); // ^ needed to make this example work: // (eval {head {+ -}}) 1 2 3 // though I'm not sure why @@ -733,27 +733,29 @@ lispval* builtin_join(lispval* l, lispenv* e) // Define a variable lispval* builtin_def(lispval* v, lispenv* env) { - // Takes two arguments: def { a } { 1 } - // def a {1} - // def b (@ {x y} {+ x y}) + // Takes two arguments: def { a b } { 1 2 } LISPVAL_ASSERT(v->count == 2, "Error: function def passed something other than 2 arguments"); - lispval* symbol_wrapper = v->cell[0]; - lispval* value_wrapper = v->cell[1]; + lispval* symbols = v->cell[0]; + lispval* values = v->cell[1]; + symbols = evaluate_lispval(symbols, env); + values = evaluate_lispval(values, env); - LISPVAL_ASSERT(symbol_wrapper->type == LISPVAL_QEXPR, "First argument should be a Q-expr with a symbol; def {a} ((+ 1 2))"); - LISPVAL_ASSERT(symbol_wrapper->count == 1, "First argument should only have one sub-argument; def {a} ((+ 1 2))"); - - // LISPVAL_ASSERT(value_wrapper->type == LISPVAL_QEXPR || value_wrapper->type == LISPVAL_SEXPR, "Second argument should be a () or [] list; def {a} {1}; def {a} ((1 2 3))"); - LISPVAL_ASSERT(value_wrapper->count == 1, "Second argument should be a () or [] list wtih one element; def {a} {1}; def {a} ((1 2 3))"); + LISPVAL_ASSERT(symbols->type == LISPVAL_QEXPR, "Error: Argument passed to def is not a q-expr, i.e., a bracketed list."); + LISPVAL_ASSERT(values->type == LISPVAL_QEXPR, "Error: Argument passed to def is not a q-expr, i.e., a bracketed list."); + LISPVAL_ASSERT(symbols->count == values->count, "Error: In function \"def\" both subarguments should have the same length"); - lispval* symbol = symbol_wrapper->cell[0]; - lispval* value = value_wrapper->cell[0]; - - LISPVAL_ASSERT(symbol->type == LISPVAL_SYM, "First argument should be a symbol; def {a} ((+ 1 2))"); - insert_in_current_lispenv(symbol->sym, value, env); - - return lispval_sexpr(); // () + for (int i = 0; i < symbols->count; i++) { + LISPVAL_ASSERT(symbols->cell[i]->type == LISPVAL_SYM, "Error: in function def, the first list of items should be of type symbol: def { a b } { 1 2 } "); + if (VERBOSE) + print_lispval_tree(symbols, 0); + if (VERBOSE) + print_lispval_tree(values, 0); + if (VERBOSE) + printf("\n"); + insert_in_current_lispenv(symbols->cell[i]->sym, values->cell[i], env); + } + return lispval_sexpr(); // () } // A builtin for defining a function @@ -962,7 +964,7 @@ lispval* evaluate_lispval(lispval* l, lispenv* env) if (VERBOSE) printfln("Applying function to operands"); // lispval* answer = lispval_num(42); - lispval* answer = clone_lispval(f->builtin_func(operands, env)); + lispval* answer = f->builtin_func(operands, env); if (VERBOSE) printfln("Applied function to operands");