|
|
|
#include "fh_error.h"
|
|
|
|
|
|
|
|
/** Error names */
|
|
|
|
static const char *errornames[FH_ERR_MAX] = {
|
|
|
|
[FH_OK] = "OK",
|
|
|
|
[FH_ERR_CS_OVERFLOW] = "CS_OVERFLOW",
|
|
|
|
[FH_ERR_DS_OVERFLOW] = "DS_OVERFLOW",
|
|
|
|
[FH_ERR_RS_OVERFLOW] = "RS_OVERFLOW",
|
|
|
|
[FH_ERR_CS_UNDERFLOW] = "CS_UNDERFLOW",
|
|
|
|
[FH_ERR_DS_UNDERFLOW] = "DS_UNDERFLOW",
|
|
|
|
[FH_ERR_RS_UNDERFLOW] = "RS_UNDERFLOW",
|
|
|
|
[FH_ERR_HEAP_FULL] = "HEAP_FULL",
|
|
|
|
[FH_ERR_DICT_FULL] = "DICT_FULL",
|
|
|
|
[FH_ERR_COMPILE_FULL] = "COMPILE_FULL",
|
|
|
|
[FH_ERR_NAME_TOO_LONG] = "NAME_TOO_LONG",
|
|
|
|
[FH_ERR_INVALID_STATE] = "INVALID_STATE",
|
|
|
|
[FH_ERR_INTERNAL] = "INTERNAL_ERROR",
|
|
|
|
[FH_ERR_UNKNOWN_WORD] = "UNKNOWN_WORD",
|
|
|
|
[FH_ERR_ILLEGAL_FETCH] = "ILLEGAL_FETCH",
|
|
|
|
[FH_ERR_ILLEGAL_STORE] = "ILLEGAL_STORE",
|
|
|
|
[FH_ERR_DIV_BY_ZERO] = "DIV_BY_ZERO",
|
|
|
|
[FH_ERR_SYNTAX] = "SYNTAX_ERROR",
|
|
|
|
};
|
|
|
|
|
|
|
|
/** Get error name from code, returns Unknown if not defined */
|
|
|
|
const char *fherr_name(enum fh_error e)
|
|
|
|
{
|
|
|
|
if (e >= FH_ERR_MAX) {
|
|
|
|
return "Unknown";
|
|
|
|
}
|
|
|
|
return errornames[e];
|
|
|
|
}
|