| 1 | /* |
| 2 | ** Error handling. |
| 3 | ** Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h |
| 4 | */ |
| 5 | |
| 6 | #ifndef _LJ_ERR_H |
| 7 | #define _LJ_ERR_H |
| 8 | |
| 9 | #include <stdarg.h> |
| 10 | |
| 11 | #include "lj_obj.h" |
| 12 | |
| 13 | typedef enum { |
| 14 | #define ERRDEF(name, msg) \ |
| 15 | LJ_ERR_##name, LJ_ERR_##name##_ = LJ_ERR_##name + sizeof(msg)-1, |
| 16 | #include "lj_errmsg.h" |
| 17 | LJ_ERR__MAX |
| 18 | } ErrMsg; |
| 19 | |
| 20 | LJ_DATA const char *lj_err_allmsg; |
| 21 | #define err2msg(em) (lj_err_allmsg+(int)(em)) |
| 22 | |
| 23 | LJ_FUNC GCstr *lj_err_str(lua_State *L, ErrMsg em); |
| 24 | LJ_FUNCA_NORET void LJ_FASTCALL lj_err_throw(lua_State *L, int errcode); |
| 25 | LJ_FUNC_NORET void lj_err_mem(lua_State *L); |
| 26 | LJ_FUNC_NORET void lj_err_run(lua_State *L); |
| 27 | LJ_FUNC_NORET void lj_err_msg(lua_State *L, ErrMsg em); |
| 28 | LJ_FUNC_NORET void lj_err_lex(lua_State *L, GCstr *src, const char *tok, |
| 29 | BCLine line, ErrMsg em, va_list argp); |
| 30 | LJ_FUNC_NORET void lj_err_optype(lua_State *L, cTValue *o, ErrMsg opm); |
| 31 | LJ_FUNC_NORET void lj_err_comp(lua_State *L, cTValue *o1, cTValue *o2); |
| 32 | LJ_FUNC_NORET void lj_err_optype_call(lua_State *L, TValue *o); |
| 33 | LJ_FUNC_NORET void lj_err_callermsg(lua_State *L, const char *msg); |
| 34 | LJ_FUNC_NORET void lj_err_callerv(lua_State *L, ErrMsg em, ...); |
| 35 | LJ_FUNC_NORET void lj_err_caller(lua_State *L, ErrMsg em); |
| 36 | LJ_FUNC_NORET void lj_err_arg(lua_State *L, int narg, ErrMsg em); |
| 37 | LJ_FUNC_NORET void lj_err_argv(lua_State *L, int narg, ErrMsg em, ...); |
| 38 | LJ_FUNC_NORET void lj_err_argtype(lua_State *L, int narg, const char *xname); |
| 39 | LJ_FUNC_NORET void lj_err_argt(lua_State *L, int narg, int tt); |
| 40 | |
| 41 | #endif |
| 42 | |