From 85d2ede92d8754af484d7423e9a1541060999e82 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Mon, 1 May 2023 20:04:48 -0400 Subject: [PATCH] step: add an error message for wrong op-number order. --- mumble | Bin 103664 -> 103664 bytes src/mumble.c | 22 +++++++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/mumble b/mumble index 8dddf29a4c51430c66a55b7b7a80d1876304100d..86b3a477366a70e84c3e625945f808721de6d79d 100755 GIT binary patch delta 20852 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 AxBvhE delta 21056 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 i++){ if(v->cell[i]->type != LISPVAL_NUM){ - return lispval_err("Error: Operating on non-numbers"); + return lispval_err("Error: Operating on non-numbers. This can be caused by an input like (+ 1 2 (3 * 4)). Because the (3 * 4) doesn't have the correct operation order, it isn't simplified, and then + can't sum over it."); } } // Check how many elements @@ -338,23 +338,27 @@ int main(int argc, char** argv) mpc_ast_t* ast = result.output; // Print AST if VERBOSE - if (VERBOSE) + if (VERBOSE){ + printf("\nPrinting AST"); print_ast(ast, 0); - + } // Evaluate the AST // if(VERBOSE) printf("\n\nEvaluating the AST"); // lispval result = evaluate_ast(ast); lispval* l = read_lispval(ast); if (VERBOSE){ - printf("\n\nTree printing: "); - print_lispval_tree(l, 0); - } - if (VERBOSE){ - printf("\nParenthesis printing: \n"); + printf("\n\nPrinting initially parsed lispvalue"); + printf("\nTree printing: "); + print_lispval_tree(l, 2); + printf("\nParenthesis printing: "); print_lispval_parenthesis(l); } lispval* result = evaluate_lispval(l); - printf("\n"); print_lispval_parenthesis(result); + { + printf("\n\nResult: "); + print_lispval_parenthesis(result); + printf("\n"); + } delete_lispval(l); } else { /* Otherwise Print the Error */