#include #include #include #include #include "apl9.h" ErrorHandler globalerror; Rune *errorstrs[] = { [ESyntax] = L"SYNTAX ERROR", [EParse] = L"PARSE ERROR", [EValue] = L"VALUE ERROR", [EDomain] = L"DOMAIN ERROR", [ERank] = L"RANK ERROR", [EType] = L"TYPE ERROR", [ELength] = L"LENGTH ERROR", [EIndex] = L"INDEX ERROR", [EShape] = L"SHAPE ERROR", [ENotImplemented] = L"NOT IMPLEMENTED", }; void throwerror(Rune *msg, int err) { free(globalerror.msg); globalerror.msg = msg ? runestrdup(msg) : nil; longjmp(globalerror.jmp, err); }