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 | |