23 #define LUA_VERSION "Lua 5.1" 24 #define LUA_RELEASE "Lua 5.1.4" 25 #define LUA_VERSION_NUM 501 26 #define LUA_COPYRIGHT "Copyright (C) 1994-2008 Lua.org, PUC-Rio" 27 #define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo & W. Celes" 31 #define LUA_SIGNATURE "\033Lua" 34 #define LUA_MULTRET (-1) 40 #define LUA_REGISTRYINDEX (-10000) 41 #define LUA_ENVIRONINDEX (-10001) 42 #define LUA_GLOBALSINDEX (-10002) 43 #define lua_upvalueindex(i) (LUA_GLOBALSINDEX-(i)) 49 #define LUA_ERRSYNTAX 3 54 typedef struct lua_State lua_State;
56 typedef int (*lua_CFunction) (lua_State *L);
62 typedef const char * (*lua_Reader) (lua_State *L,
void *ud,
size_t *sz);
64 typedef int (*lua_Writer) (lua_State *L,
const void* p,
size_t sz,
void* ud);
70 typedef void * (*lua_Alloc) (
void *ud,
void *ptr,
size_t osize,
size_t nsize);
76 #define LUA_TNONE (-1) 79 #define LUA_TBOOLEAN 1 80 #define LUA_TLIGHTUSERDATA 2 84 #define LUA_TFUNCTION 6 85 #define LUA_TUSERDATA 7 89 #define LUA_MINSTACK 20 95 #if defined(LUA_USER_H) 101 typedef LUA_NUMBER lua_Number;
105 typedef LUA_INTEGER lua_Integer;
112 LUA_API lua_State *(lua_newstate) (lua_Alloc f,
void *ud);
113 LUA_API void (lua_close) (lua_State *L);
114 LUA_API lua_State *(lua_newthread) (lua_State *L);
116 LUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf);
122 LUA_API int (lua_gettop) (lua_State *L);
123 LUA_API void (lua_settop) (lua_State *L,
int idx);
124 LUA_API void (lua_pushvalue) (lua_State *L,
int idx);
125 LUA_API void (lua_remove) (lua_State *L,
int idx);
126 LUA_API void (lua_insert) (lua_State *L,
int idx);
127 LUA_API void (lua_replace) (lua_State *L,
int idx);
128 LUA_API int (lua_checkstack) (lua_State *L,
int sz);
130 LUA_API void (lua_xmove) (lua_State *from, lua_State *to,
int n);
137 LUA_API int (lua_isnumber) (lua_State *L,
int idx);
138 LUA_API int (lua_isstring) (lua_State *L,
int idx);
139 LUA_API int (lua_iscfunction) (lua_State *L,
int idx);
140 LUA_API int (lua_isuserdata) (lua_State *L,
int idx);
141 LUA_API int (lua_type) (lua_State *L,
int idx);
142 LUA_API
const char *(lua_typename) (lua_State *L,
int tp);
144 LUA_API int (lua_equal) (lua_State *L,
int idx1,
int idx2);
145 LUA_API int (lua_rawequal) (lua_State *L,
int idx1,
int idx2);
146 LUA_API int (lua_lessthan) (lua_State *L,
int idx1,
int idx2);
148 LUA_API lua_Number (lua_tonumber) (lua_State *L,
int idx);
149 LUA_API lua_Integer (lua_tointeger) (lua_State *L,
int idx);
150 LUA_API int (lua_toboolean) (lua_State *L,
int idx);
151 LUA_API
const char *(lua_tolstring) (lua_State *L,
int idx,
size_t *len);
152 LUA_API size_t (lua_objlen) (lua_State *L,
int idx);
153 LUA_API lua_CFunction (lua_tocfunction) (lua_State *L,
int idx);
154 LUA_API
void *(lua_touserdata) (lua_State *L,
int idx);
155 LUA_API lua_State *(lua_tothread) (lua_State *L,
int idx);
156 LUA_API
const void *(lua_topointer) (lua_State *L,
int idx);
162 LUA_API void (lua_pushnil) (lua_State *L);
163 LUA_API void (lua_pushnumber) (lua_State *L, lua_Number n);
164 LUA_API void (lua_pushinteger) (lua_State *L, lua_Integer n);
165 LUA_API void (lua_pushlstring) (lua_State *L,
const char *s,
size_t l);
166 LUA_API void (lua_pushstring) (lua_State *L,
const char *s);
167 LUA_API
const char *(lua_pushvfstring) (lua_State *L,
const char *fmt,
169 LUA_API
const char *(lua_pushfstring) (lua_State *L,
const char *fmt, ...);
170 LUA_API void (lua_pushcclosure) (lua_State *L, lua_CFunction fn,
int n);
171 LUA_API void (lua_pushboolean) (lua_State *L,
int b);
172 LUA_API void (lua_pushlightuserdata) (lua_State *L,
void *p);
173 LUA_API int (lua_pushthread) (lua_State *L);
179 LUA_API void (lua_gettable) (lua_State *L,
int idx);
180 LUA_API void (lua_getfield) (lua_State *L,
int idx,
const char *k);
181 LUA_API void (lua_rawget) (lua_State *L,
int idx);
182 LUA_API void (lua_rawgeti) (lua_State *L,
int idx,
int n);
183 LUA_API void (lua_createtable) (lua_State *L,
int narr,
int nrec);
184 LUA_API
void *(lua_newuserdata) (lua_State *L,
size_t sz);
185 LUA_API int (lua_getmetatable) (lua_State *L,
int objindex);
186 LUA_API void (lua_getfenv) (lua_State *L,
int idx);
192 LUA_API void (lua_settable) (lua_State *L,
int idx);
193 LUA_API void (lua_setfield) (lua_State *L,
int idx,
const char *k);
194 LUA_API void (lua_rawset) (lua_State *L,
int idx);
195 LUA_API void (lua_rawseti) (lua_State *L,
int idx,
int n);
196 LUA_API int (lua_setmetatable) (lua_State *L,
int objindex);
197 LUA_API int (lua_setfenv) (lua_State *L,
int idx);
203 LUA_API void (lua_call) (lua_State *L,
int nargs,
int nresults);
204 LUA_API int (lua_pcall) (lua_State *L,
int nargs,
int nresults,
int errfunc);
205 LUA_API int (lua_cpcall) (lua_State *L, lua_CFunction func,
void *ud);
206 LUA_API int (lua_load) (lua_State *L, lua_Reader reader,
void *dt,
207 const char *chunkname);
209 LUA_API int (lua_dump) (lua_State *L, lua_Writer writer,
void *data);
215 LUA_API int (lua_yield) (lua_State *L,
int nresults);
216 LUA_API int (lua_resume) (lua_State *L,
int narg);
217 LUA_API int (lua_status) (lua_State *L);
224 #define LUA_GCRESTART 1 225 #define LUA_GCCOLLECT 2 226 #define LUA_GCCOUNT 3 227 #define LUA_GCCOUNTB 4 229 #define LUA_GCSETPAUSE 6 230 #define LUA_GCSETSTEPMUL 7 232 LUA_API int (lua_gc) (lua_State *L,
int what,
int data);
239 LUA_API int (lua_error) (lua_State *L);
241 LUA_API int (lua_next) (lua_State *L,
int idx);
243 LUA_API void (lua_concat) (lua_State *L,
int n);
245 LUA_API lua_Alloc (lua_getallocf) (lua_State *L,
void **ud);
246 LUA_API
void lua_setallocf (lua_State *L, lua_Alloc f,
void *ud);
256 #define lua_pop(L,n) lua_settop(L, -(n)-1) 258 #define lua_newtable(L) lua_createtable(L, 0, 0) 260 #define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n))) 262 #define lua_pushcfunction(L,f) lua_pushcclosure(L, (f), 0) 264 #define lua_strlen(L,i) lua_objlen(L, (i)) 266 #define lua_isfunction(L,n) (lua_type(L, (n)) == LUA_TFUNCTION) 267 #define lua_istable(L,n) (lua_type(L, (n)) == LUA_TTABLE) 268 #define lua_islightuserdata(L,n) (lua_type(L, (n)) == LUA_TLIGHTUSERDATA) 269 #define lua_isnil(L,n) (lua_type(L, (n)) == LUA_TNIL) 270 #define lua_isboolean(L,n) (lua_type(L, (n)) == LUA_TBOOLEAN) 271 #define lua_isthread(L,n) (lua_type(L, (n)) == LUA_TTHREAD) 272 #define lua_isnone(L,n) (lua_type(L, (n)) == LUA_TNONE) 273 #define lua_isnoneornil(L, n) (lua_type(L, (n)) <= 0) 275 #define lua_pushliteral(L, s) \ 276 lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1) 278 #define lua_setglobal(L,s) lua_setfield(L, LUA_GLOBALSINDEX, (s)) 279 #define lua_getglobal(L,s) lua_getfield(L, LUA_GLOBALSINDEX, (s)) 281 #define lua_tostring(L,i) lua_tolstring(L, (i), NULL) 289 #define lua_open() luaL_newstate() 291 #define lua_getregistry(L) lua_pushvalue(L, LUA_REGISTRYINDEX) 293 #define lua_getgccount(L) lua_gc(L, LUA_GCCOUNT, 0) 295 #define lua_Chunkreader lua_Reader 296 #define lua_Chunkwriter lua_Writer 300 LUA_API
void lua_setlevel (lua_State *from, lua_State *to);
313 #define LUA_HOOKCALL 0 314 #define LUA_HOOKRET 1 315 #define LUA_HOOKLINE 2 316 #define LUA_HOOKCOUNT 3 317 #define LUA_HOOKTAILRET 4 323 #define LUA_MASKCALL (1 << LUA_HOOKCALL) 324 #define LUA_MASKRET (1 << LUA_HOOKRET) 325 #define LUA_MASKLINE (1 << LUA_HOOKLINE) 326 #define LUA_MASKCOUNT (1 << LUA_HOOKCOUNT) 332 typedef void (*lua_Hook) (lua_State *L,
lua_Debug *ar);
335 LUA_API
int lua_getstack (lua_State *L,
int level,
lua_Debug *ar);
336 LUA_API
int lua_getinfo (lua_State *L,
const char *what,
lua_Debug *ar);
337 LUA_API
const char *lua_getlocal (lua_State *L,
const lua_Debug *ar,
int n);
338 LUA_API
const char *lua_setlocal (lua_State *L,
const lua_Debug *ar,
int n);
339 LUA_API
const char *lua_getupvalue (lua_State *L,
int funcindex,
int n);
340 LUA_API
const char *lua_setupvalue (lua_State *L,
int funcindex,
int n);
342 LUA_API
int lua_sethook (lua_State *L, lua_Hook func,
int mask,
int count);
343 LUA_API lua_Hook lua_gethook (lua_State *L);
344 LUA_API
int lua_gethookmask (lua_State *L);
345 LUA_API
int lua_gethookcount (lua_State *L);
351 const char *namewhat;
358 char short_src[LUA_IDSIZE];