From d3ab3ac44b8095878fcdb5c0a84e6cb80c74dd79 Mon Sep 17 00:00:00 2001 From: "Michael D. Lowis" Date: Sun, 16 Jun 2024 22:41:39 -0400 Subject: [PATCH] added assert and error --- runtime.h | 15 +++++---------- runtime/Assert.c | 8 ++++++++ runtime/Error.c | 6 ++++++ 3 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 runtime/Assert.c create mode 100644 runtime/Error.c diff --git a/runtime.h b/runtime.h index 2a29bee..92b118f 100644 --- a/runtime.h +++ b/runtime.h @@ -199,20 +199,14 @@ Value ToString(Value val); /* Builtin Functions *************************************************/ -static void Error(Value val) { - fprintf(stderr, "fatal error: %s\n", ValueAsString(val)->bytes); - exit(1); -} -static void Assert(char* file, int lineno, Value val) { - if (IsFalse(val) || IsNil(val)) { - fprintf(stderr, "%s:%d:error: Assertion failed\n", file, lineno); - exit(1); - } -} +void Error(Value val); +void Assert(char* file, int lineno, Value val); + /* Binary Operators *************************************************/ + Value OpAdd(Value left, Value right); Value OpSub(Value left, Value right); Value OpMul(Value left, Value right); @@ -227,6 +221,7 @@ Value OpNeq(Value left, Value right); /* Arrays And Hashes *************************************************/ + void Array_Set(Value array, int index, Value value); Value Array_Get(Value array, int index); diff --git a/runtime/Assert.c b/runtime/Assert.c new file mode 100644 index 0000000..fc6896b --- /dev/null +++ b/runtime/Assert.c @@ -0,0 +1,8 @@ +#include "runtime.h" + +void Assert(char* file, int lineno, Value val) { + if (IsFalse(val) || IsNil(val)) { + fprintf(stderr, "%s:%d:error: Assertion failed\n", file, lineno); + exit(1); + } +} diff --git a/runtime/Error.c b/runtime/Error.c new file mode 100644 index 0000000..bb99752 --- /dev/null +++ b/runtime/Error.c @@ -0,0 +1,6 @@ +#include "runtime.h" + +void Error(Value val) { + fprintf(stderr, "fatal error: %s\n", ValueAsString(val)->bytes); + exit(1); +} -- 2.55.0