#include "forth_internal.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_ARITH] = "ARITHMETIC_ERROR", [FH_ERR_SYNTAX] = "SYNTAX_ERROR", [FH_ERR_PICTNUM_FULL] = "PICTNUM_FULL", [FH_ERR_NOT_APPLICABLE] = "NOT_APPLICABLE", [FH_ERR_BAD_DEFER] = "BAD_DEFER", [FH_ERR_BAD_OPCODE] = "BAD_OPCODE", }; /** 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]; }