summaryrefslogtreecommitdiff
path: root/error.c
diff options
context:
space:
mode:
Diffstat (limited to 'error.c')
-rw-r--r--error.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/error.c b/error.c
index 2a59553..09f2c32 100644
--- a/error.c
+++ b/error.c
@@ -7,19 +7,6 @@
ErrorGuard *globalerrorguard;
-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",
-};
-
ErrorGuard *
newerrorguard(Array *codes, Statement *guard)
{
@@ -69,3 +56,19 @@ match:
longjmp(matching->jmp, 1);
}
+Rune *
+errorstr(int code)
+{
+ Rune *err;
+ switch(code){
+ case ESyntax: err = L"SYNTAX ERROR"; break;
+ case EIndex: err = L"INDEX ERROR"; break;
+ case ERank: err = L"RANK ERROR"; break;
+ case ELength: err = L"LENGTH ERROR"; break;
+ case EValue: err = L"VALUE ERROR"; break;
+ case EDomain: err = L"DOMAIN ERROR"; break;
+ case ENotImplemented: err = L"NOT IMPLEMENTED"; break;
+ default: err = L""; break;
+ }
+ return err;
+} \ No newline at end of file