23typedef struct luaL_Buffer luaL_Buffer;
27#define LUA_ERRFILE (LUA_ERRERR+1)
31#define LUA_LOADED_TABLE "_LOADED"
35#define LUA_PRELOAD_TABLE "_PRELOAD"
38typedef struct luaL_Reg {
44#define LUAL_NUMSIZES (sizeof(lua_Integer)*16 + sizeof(lua_Number))
46LUALIB_API void (luaL_checkversion_) (lua_State *L, lua_Number ver,
size_t sz);
47#define luaL_checkversion(L) \
48 luaL_checkversion_(L, LUA_VERSION_NUM, LUAL_NUMSIZES)
50LUALIB_API int (luaL_getmetafield) (lua_State *L,
int obj,
const char *e);
51LUALIB_API int (luaL_callmeta) (lua_State *L,
int obj,
const char *e);
52LUALIB_API
const char *(luaL_tolstring) (lua_State *L,
int idx,
size_t *len);
53LUALIB_API int (luaL_argerror) (lua_State *L,
int arg,
const char *extramsg);
54LUALIB_API int (luaL_typeerror) (lua_State *L,
int arg,
const char *tname);
55LUALIB_API
const char *(luaL_checklstring) (lua_State *L,
int arg,
57LUALIB_API
const char *(luaL_optlstring) (lua_State *L,
int arg,
58 const char *def,
size_t *l);
59LUALIB_API lua_Number (luaL_checknumber) (lua_State *L,
int arg);
60LUALIB_API lua_Number (luaL_optnumber) (lua_State *L,
int arg, lua_Number def);
62LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L,
int arg);
63LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L,
int arg,
66LUALIB_API void (luaL_checkstack) (lua_State *L,
int sz,
const char *msg);
67LUALIB_API void (luaL_checktype) (lua_State *L,
int arg,
int t);
68LUALIB_API void (luaL_checkany) (lua_State *L,
int arg);
70LUALIB_API int (luaL_newmetatable) (lua_State *L,
const char *tname);
71LUALIB_API void (luaL_setmetatable) (lua_State *L,
const char *tname);
72LUALIB_API
void *(luaL_testudata) (lua_State *L,
int ud,
const char *tname);
73LUALIB_API
void *(luaL_checkudata) (lua_State *L,
int ud,
const char *tname);
75LUALIB_API void (luaL_where) (lua_State *L,
int lvl);
76LUALIB_API int (luaL_error) (lua_State *L,
const char *fmt, ...);
78LUALIB_API int (luaL_checkoption) (lua_State *L,
int arg,
const char *def,
79 const char *
const lst[]);
81LUALIB_API int (luaL_fileresult) (lua_State *L,
int stat,
const char *fname);
82LUALIB_API int (luaL_execresult) (lua_State *L,
int stat);
86#define LUA_REFNIL (-1)
88LUALIB_API int (luaL_ref) (lua_State *L,
int t);
89LUALIB_API void (luaL_unref) (lua_State *L,
int t,
int ref);
91LUALIB_API int (luaL_loadfilex) (lua_State *L,
const char *filename,
94#define luaL_loadfile(L,f) luaL_loadfilex(L,f,NULL)
96LUALIB_API int (luaL_loadbufferx) (lua_State *L,
const char *buff,
size_t sz,
97 const char *name,
const char *mode);
98LUALIB_API int (luaL_loadstring) (lua_State *L,
const char *s);
100LUALIB_API lua_State *(luaL_newstate) (
void);
102LUALIB_API
unsigned luaL_makeseed (lua_State *L);
104LUALIB_API lua_Integer (luaL_len) (lua_State *L,
int idx);
106LUALIB_API void (luaL_addgsub) (luaL_Buffer *b,
const char *s,
107 const char *p,
const char *r);
108LUALIB_API
const char *(luaL_gsub) (lua_State *L,
const char *s,
109 const char *p,
const char *r);
111LUALIB_API void (luaL_setfuncs) (lua_State *L,
const luaL_Reg *l,
int nup);
113LUALIB_API int (luaL_getsubtable) (lua_State *L,
int idx,
const char *fname);
115LUALIB_API void (luaL_traceback) (lua_State *L, lua_State *L1,
116 const char *msg,
int level);
118LUALIB_API void (luaL_requiref) (lua_State *L,
const char *modname,
119 lua_CFunction openf,
int glb);
128#define luaL_newlibtable(L,l) \
129 lua_createtable(L, 0, sizeof(l)/sizeof((l)[0]) - 1)
131#define luaL_newlib(L,l) \
132 (luaL_checkversion(L), luaL_newlibtable(L,l), luaL_setfuncs(L,l,0))
134#define luaL_argcheck(L, cond,arg,extramsg) \
135 ((void)(luai_likely(cond) || luaL_argerror(L, (arg), (extramsg))))
137#define luaL_argexpected(L,cond,arg,tname) \
138 ((void)(luai_likely(cond) || luaL_typeerror(L, (arg), (tname))))
140#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL))
141#define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL))
143#define luaL_typename(L,i) lua_typename(L, lua_type(L,(i)))
145#define luaL_dofile(L, fn) \
146 (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0))
148#define luaL_dostring(L, s) \
149 (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0))
151#define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n)))
153#define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n)))
155#define luaL_loadbuffer(L,s,sz,n) luaL_loadbufferx(L,s,sz,n,NULL)
162#define luaL_intop(op,v1,v2) \
163 ((lua_Integer)((lua_Unsigned)(v1) op (lua_Unsigned)(v2)))
167#if defined(LUA_FAILISFALSE)
168#define luaL_pushfail(L) lua_pushboolean(L, 0)
170#define luaL_pushfail(L) lua_pushnil(L)
188 char b[LUAL_BUFFERSIZE];
193#define luaL_bufflen(bf) ((bf)->n)
194#define luaL_buffaddr(bf) ((bf)->b)
197#define luaL_addchar(B,c) \
198 ((void)((B)->n < (B)->size || luaL_prepbuffsize((B), 1)), \
199 ((B)->b[(B)->n++] = (c)))
201#define luaL_addsize(B,s) ((B)->n += (s))
203#define luaL_buffsub(B,s) ((B)->n -= (s))
205LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B);
206LUALIB_API
char *(luaL_prepbuffsize) (luaL_Buffer *B,
size_t sz);
207LUALIB_API void (luaL_addlstring) (luaL_Buffer *B,
const char *s,
size_t l);
208LUALIB_API void (luaL_addstring) (luaL_Buffer *B,
const char *s);
209LUALIB_API void (luaL_addvalue) (luaL_Buffer *B);
210LUALIB_API void (luaL_pushresult) (luaL_Buffer *B);
211LUALIB_API void (luaL_pushresultsize) (luaL_Buffer *B,
size_t sz);
212LUALIB_API
char *(luaL_buffinitsize) (lua_State *L, luaL_Buffer *B,
size_t sz);
214#define luaL_prepbuffer(B) luaL_prepbuffsize(B, LUAL_BUFFERSIZE)
232#define LUA_FILEHANDLE "FILE*"
235typedef struct luaL_Stream {
239 lua_CFunction closef;
250#if defined(LUA_COMPAT_APIINTCASTS)
252#define luaL_checkunsigned(L,a) ((lua_Unsigned)luaL_checkinteger(L,a))
253#define luaL_optunsigned(L,a,d) \
254 ((lua_Unsigned)luaL_optinteger(L,a,(lua_Integer)(d)))
256#define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n)))
257#define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d)))
259#define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n)))
260#define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d)))