diff options
Diffstat (limited to 'libs/lua/src/lauxlib.h')
-rw-r--r-- | libs/lua/src/lauxlib.h | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/libs/lua/src/lauxlib.h b/libs/lua/src/lauxlib.h new file mode 100644 index 0000000..3425823 --- /dev/null +++ b/libs/lua/src/lauxlib.h | |||
@@ -0,0 +1,174 @@ | |||
1 | /* | ||
2 | ** $Id: lauxlib.h,v 1.88.1.1 2007/12/27 13:02:25 roberto Exp $ | ||
3 | ** Auxiliary functions for building Lua libraries | ||
4 | ** See Copyright Notice in lua.h | ||
5 | */ | ||
6 | |||
7 | |||
8 | #ifndef lauxlib_h | ||
9 | #define lauxlib_h | ||
10 | |||
11 | |||
12 | #include <stddef.h> | ||
13 | #include <stdio.h> | ||
14 | |||
15 | #include "lua.h" | ||
16 | |||
17 | |||
18 | #if defined(LUA_COMPAT_GETN) | ||
19 | LUALIB_API int (luaL_getn) (lua_State *L, int t); | ||
20 | LUALIB_API void (luaL_setn) (lua_State *L, int t, int n); | ||
21 | #else | ||
22 | #define luaL_getn(L,i) ((int)lua_objlen(L, i)) | ||
23 | #define luaL_setn(L,i,j) ((void)0) /* no op! */ | ||
24 | #endif | ||
25 | |||
26 | #if defined(LUA_COMPAT_OPENLIB) | ||
27 | #define luaI_openlib luaL_openlib | ||
28 | #endif | ||
29 | |||
30 | |||
31 | /* extra error code for `luaL_load' */ | ||
32 | #define LUA_ERRFILE (LUA_ERRERR+1) | ||
33 | |||
34 | |||
35 | typedef struct luaL_Reg { | ||
36 | const char *name; | ||
37 | lua_CFunction func; | ||
38 | } luaL_Reg; | ||
39 | |||
40 | |||
41 | |||
42 | LUALIB_API void (luaI_openlib) (lua_State *L, const char *libname, | ||
43 | const luaL_Reg *l, int nup); | ||
44 | LUALIB_API void (luaL_register) (lua_State *L, const char *libname, | ||
45 | const luaL_Reg *l); | ||
46 | LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e); | ||
47 | LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e); | ||
48 | LUALIB_API int (luaL_typerror) (lua_State *L, int narg, const char *tname); | ||
49 | LUALIB_API int (luaL_argerror) (lua_State *L, int numarg, const char *extramsg); | ||
50 | LUALIB_API const char *(luaL_checklstring) (lua_State *L, int numArg, | ||
51 | size_t *l); | ||
52 | LUALIB_API const char *(luaL_optlstring) (lua_State *L, int numArg, | ||
53 | const char *def, size_t *l); | ||
54 | LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int numArg); | ||
55 | LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int nArg, lua_Number def); | ||
56 | |||
57 | LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int numArg); | ||
58 | LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int nArg, | ||
59 | lua_Integer def); | ||
60 | |||
61 | LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg); | ||
62 | LUALIB_API void (luaL_checktype) (lua_State *L, int narg, int t); | ||
63 | LUALIB_API void (luaL_checkany) (lua_State *L, int narg); | ||
64 | |||
65 | LUALIB_API int (luaL_newmetatable) (lua_State *L, const char *tname); | ||
66 | LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname); | ||
67 | |||
68 | LUALIB_API void (luaL_where) (lua_State *L, int lvl); | ||
69 | LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...); | ||
70 | |||
71 | LUALIB_API int (luaL_checkoption) (lua_State *L, int narg, const char *def, | ||
72 | const char *const lst[]); | ||
73 | |||
74 | LUALIB_API int (luaL_ref) (lua_State *L, int t); | ||
75 | LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref); | ||
76 | |||
77 | LUALIB_API int (luaL_loadfile) (lua_State *L, const char *filename); | ||
78 | LUALIB_API int (luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz, | ||
79 | const char *name); | ||
80 | LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s); | ||
81 | |||
82 | LUALIB_API lua_State *(luaL_newstate) (void); | ||
83 | |||
84 | |||
85 | LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p, | ||
86 | const char *r); | ||
87 | |||
88 | LUALIB_API const char *(luaL_findtable) (lua_State *L, int idx, | ||
89 | const char *fname, int szhint); | ||
90 | |||
91 | |||
92 | |||
93 | |||
94 | /* | ||
95 | ** =============================================================== | ||
96 | ** some useful macros | ||
97 | ** =============================================================== | ||
98 | */ | ||
99 | |||
100 | #define luaL_argcheck(L, cond,numarg,extramsg) \ | ||
101 | ((void)((cond) || luaL_argerror(L, (numarg), (extramsg)))) | ||
102 | #define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL)) | ||
103 | #define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL)) | ||
104 | #define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n))) | ||
105 | #define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d))) | ||
106 | #define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n))) | ||
107 | #define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d))) | ||
108 | |||
109 | #define luaL_typename(L,i) lua_typename(L, lua_type(L,(i))) | ||
110 | |||
111 | #define luaL_dofile(L, fn) \ | ||
112 | (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0)) | ||
113 | |||
114 | #define luaL_dostring(L, s) \ | ||
115 | (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0)) | ||
116 | |||
117 | #define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n))) | ||
118 | |||
119 | #define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n))) | ||
120 | |||
121 | /* | ||
122 | ** {====================================================== | ||
123 | ** Generic Buffer manipulation | ||
124 | ** ======================================================= | ||
125 | */ | ||
126 | |||
127 | |||
128 | |||
129 | typedef struct luaL_Buffer { | ||
130 | char *p; /* current position in buffer */ | ||
131 | int lvl; /* number of strings in the stack (level) */ | ||
132 | lua_State *L; | ||
133 | char buffer[LUAL_BUFFERSIZE]; | ||
134 | } luaL_Buffer; | ||
135 | |||
136 | #define luaL_addchar(B,c) \ | ||
137 | ((void)((B)->p < ((B)->buffer+LUAL_BUFFERSIZE) || luaL_prepbuffer(B)), \ | ||
138 | (*(B)->p++ = (char)(c))) | ||
139 | |||
140 | /* compatibility only */ | ||
141 | #define luaL_putchar(B,c) luaL_addchar(B,c) | ||
142 | |||
143 | #define luaL_addsize(B,n) ((B)->p += (n)) | ||
144 | |||
145 | LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B); | ||
146 | LUALIB_API char *(luaL_prepbuffer) (luaL_Buffer *B); | ||
147 | LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l); | ||
148 | LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s); | ||
149 | LUALIB_API void (luaL_addvalue) (luaL_Buffer *B); | ||
150 | LUALIB_API void (luaL_pushresult) (luaL_Buffer *B); | ||
151 | |||
152 | |||
153 | /* }====================================================== */ | ||
154 | |||
155 | |||
156 | /* compatibility with ref system */ | ||
157 | |||
158 | /* pre-defined references */ | ||
159 | #define LUA_NOREF (-2) | ||
160 | #define LUA_REFNIL (-1) | ||
161 | |||
162 | #define lua_ref(L,lock) ((lock) ? luaL_ref(L, LUA_REGISTRYINDEX) : \ | ||
163 | (lua_pushstring(L, "unlocked references are obsolete"), lua_error(L), 0)) | ||
164 | |||
165 | #define lua_unref(L,ref) luaL_unref(L, LUA_REGISTRYINDEX, (ref)) | ||
166 | |||
167 | #define lua_getref(L,ref) lua_rawgeti(L, LUA_REGISTRYINDEX, (ref)) | ||
168 | |||
169 | |||
170 | #define luaL_reg luaL_Reg | ||
171 | |||
172 | #endif | ||
173 | |||
174 | |||