From 0904e0af50cd484efde6db093c15c468e3585f66 Mon Sep 17 00:00:00 2001 From: sbosse Date: Mon, 16 Mar 2026 11:10:17 +0100 Subject: [PATCH] Mon 16 Mar 11:09:06 CET 2026 --- src/error.h | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/error.h diff --git a/src/error.h b/src/error.h new file mode 100644 index 0000000..e4c0473 --- /dev/null +++ b/src/error.h @@ -0,0 +1,57 @@ +#ifndef _ERROR_H +#define _ERROR_H + + +typedef enum { + EOK=0, + ECALL, // CALL/CCALL error + EDATA, // DATA error + EEXPR, // Expression error + EEVENT, // Event error + EHEAP, // Heap error + EINPUT, // Input error (EWOULDBLOCk...) + ENOTFOUND, + EOP, // Instruction error + EPROC, // Procedure error + ERANGE, // Array range error + ERUN, // Run-time error + ESTACK, // Stack error + ESYNTAX, // Syntax error + ETASK, // Task (creation) error + ETODO, // Not yet implemented + ETYPE, + EVAR, // Variable error + EWOULDBLOCK, // Blocking IO not allowed +} errors_t; + +#define ERRORS char *Errors[]={\ + "EOK",\ + "ECALL",\ + "EDATA",\ + "EEXPR",\ + "EEVENT",\ + "EHEAP",\ + "EINPUT",\ + "ENOTFOUND",\ + "EOP",\ + "EPROC",\ + "ERANGE",\ + "ERUN",\ + "ESTACK",\ + "ESYNTAX",\ + "ETASK",\ + "ETODO",\ + "ETYPE",\ + "EVAR",\ + "EWOULDBLOCK",\ +} +extern char *Errors[]; + +typedef int8_t error_t; +// void error(reg_t *R,error_t e); + +#define RETURNERROR(R,e,status) { error(R,e); return status; } +#define RETURNERROR0(R,e) { error(R,e); return; } + + +#endif