/** * @file error.c * @brief Implements the error subsystem: claims and names the akbasic status band. */ #include #include akerr_ErrorContext *akbasic_error_register(void) { PREPARE_ERROR(errctx); /* * Claim the whole band before naming anything in it: libakerror refuses a * name for a status we do not own. Any collision propagates to the caller -- * another component owning part of our range is an initialization failure, * not a warning. */ PASS(errctx, akerr_reserve_status_range(AKBASIC_ERR_BASE, AKBASIC_ERR_LIMIT - AKBASIC_ERR_BASE, AKBASIC_OWNER)); PASS(errctx, akerr_register_status_name(AKBASIC_OWNER, AKBASIC_ERR_SYNTAX, "Syntax Error")); PASS(errctx, akerr_register_status_name(AKBASIC_OWNER, AKBASIC_ERR_TYPE, "Type Error")); PASS(errctx, akerr_register_status_name(AKBASIC_OWNER, AKBASIC_ERR_UNDEFINED, "Undefined Reference")); PASS(errctx, akerr_register_status_name(AKBASIC_OWNER, AKBASIC_ERR_BOUNDS, "Out Of Bounds")); PASS(errctx, akerr_register_status_name(AKBASIC_OWNER, AKBASIC_ERR_ENVIRONMENT, "Environment Error")); PASS(errctx, akerr_register_status_name(AKBASIC_OWNER, AKBASIC_ERR_VALUE, "Value Error")); PASS(errctx, akerr_register_status_name(AKBASIC_OWNER, AKBASIC_ERR_STATE, "State Error")); PASS(errctx, akerr_register_status_name(AKBASIC_OWNER, AKBASIC_ERR_DEVICE, "Device Error")); SUCCEED_RETURN(errctx); }