diff --git a/src/eval.cpp b/src/eval.cpp index 7e630fd..7ca18bc 100644 --- a/src/eval.cpp +++ b/src/eval.cpp @@ -584,13 +584,21 @@ namespace Slime { Lisp_Object* parsed, * evaluated; while (true) { - delete_error(); + if (Globals::error) { + log_error(); + delete_error(); + } fputs("> ", stdout); line = read_expression(); - try_void parsed = Parser::parse_single_expression(line); + parsed = Parser::parse_single_expression(line); + if (Globals::error) { + continue; + } free(line); - try_void evaluated = eval_expr(parsed); - // try_void evaluated = eval_expr(parsed); + evaluated = eval_expr(parsed); + if (Globals::error) { + continue; + } if (evaluated && evaluated != Memory::nil) { print(evaluated); }