From 2ed275821676a0d5baea6c7fd843d71c72c2342c Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Mon, 9 Sep 2024 12:41:49 -0400 Subject: initial mips32 (r2000ish mips32r6) assembler --- lib/error.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 lib/error.c (limited to 'lib/error.c') diff --git a/lib/error.c b/lib/error.c new file mode 100644 index 0000000..78f75ef --- /dev/null +++ b/lib/error.c @@ -0,0 +1,53 @@ +#include +#include +#include + +char *current_file = "file.asm"; + +__attribute__((format(printf, 4, 5))) +void __log_impl_pos(int line, int column, int type, const char *format, ...) +{ + va_list list; + va_start(list, format); + + char *t = NULL; + switch (type) { + case __DEBUG: + t = "\033[34mdebug:\033[0m"; + break; + case __WARNING: + t = "\033[35mwarning:\033[0m"; + break; + case __ERROR: + t = "\033[31merror:\033[0m"; + break; + } + + printf("%s:%d:%d: %s ", current_file, line, column, t); + vprintf(format, list); + putchar('\n'); +} + +__attribute__((format(printf, 2, 3))) +void __log_impl(int type, const char *format, ...) +{ + va_list list; + va_start(list, format); + + char *t = NULL; + switch (type) { + case __DEBUG: + t = "\033[34mdebug:\033[0m"; + break; + case __WARNING: + t = "\033[35mwarning:\033[0m"; + break; + case __ERROR: + t = "\033[31merror:\033[0m"; + break; + } + + printf("%s ", t); + vprintf(format, list); + putchar('\n'); +} -- cgit v1.2.3-freya