diff --git a/include/picrin/error.h b/include/picrin/error.h index 0549c69d..5be65502 100644 --- a/include/picrin/error.h +++ b/include/picrin/error.h @@ -9,6 +9,19 @@ extern "C" { #endif +struct pic_error { + PIC_OBJECT_HEADER + pic_sym type; + pic_str *msg; + pic_value irrs; + pic_str *stack; +}; + +#define pic_error_p(v) (pic_type(v) == PIC_TT_ERROR) +#define pic_error_ptr(v) ((struct pic_error *)pic_ptr(v)) + +struct pic_error *pic_make_error(pic_state *, pic_sym, const char *, pic_list); + /* do not return from try block! */ #define pic_try \ @@ -27,19 +40,6 @@ noreturn void pic_raise(pic_state *, pic_value); noreturn void pic_throw(pic_state *, pic_sym, const char *, pic_list); noreturn void pic_error(pic_state *, const char *, pic_list); -struct pic_error { - PIC_OBJECT_HEADER - pic_sym type; - pic_str *msg; - pic_value irrs; - pic_str *stack; -}; - -#define pic_error_p(v) (pic_type(v) == PIC_TT_ERROR) -#define pic_error_ptr(v) ((struct pic_error *)pic_ptr(v)) - -struct pic_error *pic_make_error(pic_state *, pic_sym, const char *, pic_list); - #if defined(__cplusplus) } #endif