19 #define LUA_GNAME "_G" 22 typedef struct luaL_Buffer luaL_Buffer;
26 #define LUA_ERRFILE (LUA_ERRERR+1) 30 #define LUA_LOADED_TABLE "_LOADED" 34 #define LUA_PRELOAD_TABLE "_PRELOAD" 37 typedef struct luaL_Reg {
43 #define LUAL_NUMSIZES (sizeof(lua_Integer)*16 + sizeof(lua_Number)) 45 LUALIB_API void (luaL_checkversion_) (lua_State *L, lua_Number ver,
size_t sz);
46 #define luaL_checkversion(L) \ 47 luaL_checkversion_(L, LUA_VERSION_NUM, LUAL_NUMSIZES) 49 LUALIB_API int (luaL_getmetafield) (lua_State *L,
int obj,
const char *e);
50 LUALIB_API int (luaL_callmeta) (lua_State *L,
int obj,
const char *e);
51 LUALIB_API
const char *(luaL_tolstring) (lua_State *L,
int idx,
size_t *len);
52 LUALIB_API int (luaL_argerror) (lua_State *L,
int arg,
const char *extramsg);
53 LUALIB_API int (luaL_typeerror) (lua_State *L,
int arg,
const char *tname);
54 LUALIB_API
const char *(luaL_checklstring) (lua_State *L,
int arg,
56 LUALIB_API
const char *(luaL_optlstring) (lua_State *L,
int arg,
57 const char *def,
size_t *l);
58 LUALIB_API lua_Number (luaL_checknumber) (lua_State *L,
int arg);
59 LUALIB_API lua_Number (luaL_optnumber) (lua_State *L,
int arg, lua_Number def);
61 LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L,
int arg);
62 LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L,
int arg,
65 LUALIB_API void (luaL_checkstack) (lua_State *L,
int sz,
const char *msg);
66 LUALIB_API void (luaL_checktype) (lua_State *L,
int arg,
int t);
67 LUALIB_API void (luaL_checkany) (lua_State *L,
int arg);
69 LUALIB_API int (luaL_newmetatable) (lua_State *L,
const char *tname);
70 LUALIB_API void (luaL_setmetatable) (lua_State *L,
const char *tname);
71 LUALIB_API
void *(luaL_testudata) (lua_State *L,
int ud,
const char *tname);
72 LUALIB_API
void *(luaL_checkudata) (lua_State *L,
int ud,
const char *tname);
74 LUALIB_API void (luaL_where) (lua_State *L,
int lvl);
75 LUALIB_API int (luaL_error) (lua_State *L,
const char *fmt, ...);
77 LUALIB_API int (luaL_checkoption) (lua_State *L,
int arg,
const char *def,
78 const char *
const lst[]);
80 LUALIB_API int (luaL_fileresult) (lua_State *L,
int stat,
const char *fname);
81 LUALIB_API int (luaL_execresult) (lua_State *L,
int stat);
85 #define LUA_NOREF (-2) 86 #define LUA_REFNIL (-1) 88 LUALIB_API int (luaL_ref) (lua_State *L,
int t);
89 LUALIB_API void (luaL_unref) (lua_State *L,
int t,
int ref);
91 LUALIB_API int (luaL_loadfilex) (lua_State *L,
const char *filename,
94 #define luaL_loadfile(L,f) luaL_loadfilex(L,f,NULL) 96 LUALIB_API int (luaL_loadbufferx) (lua_State *L,
const char *buff,
size_t sz,
97 const char *name,
const char *mode);
98 LUALIB_API int (luaL_loadstring) (lua_State *L,
const char *s);
100 LUALIB_API lua_State *(luaL_newstate) (
void);
102 LUALIB_API lua_Integer (luaL_len) (lua_State *L,
int idx);
104 LUALIB_API
void luaL_addgsub (luaL_Buffer *b,
const char *s,
105 const char *p,
const char *r);
106 LUALIB_API
const char *(luaL_gsub) (lua_State *L,
const char *s,
107 const char *p,
const char *r);
109 LUALIB_API void (luaL_setfuncs) (lua_State *L,
const luaL_Reg *l,
int nup);
111 LUALIB_API int (luaL_getsubtable) (lua_State *L,
int idx,
const char *fname);
113 LUALIB_API void (luaL_traceback) (lua_State *L, lua_State *L1,
114 const char *msg,
int level);
116 LUALIB_API void (luaL_requiref) (lua_State *L,
const char *modname,
117 lua_CFunction openf,
int glb);
126 #define luaL_newlibtable(L,l) \ 127 lua_createtable(L, 0, sizeof(l)/sizeof((l)[0]) - 1) 129 #define luaL_newlib(L,l) \ 130 (luaL_checkversion(L), luaL_newlibtable(L,l), luaL_setfuncs(L,l,0)) 132 #define luaL_argcheck(L, cond,arg,extramsg) \ 133 ((void)((cond) || luaL_argerror(L, (arg), (extramsg)))) 135 #define luaL_argexpected(L,cond,arg,tname) \ 136 ((void)((cond) || luaL_typeerror(L, (arg), (tname)))) 138 #define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL)) 139 #define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL)) 141 #define luaL_typename(L,i) lua_typename(L, lua_type(L,(i))) 143 #define luaL_dofile(L, fn) \ 144 (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0)) 146 #define luaL_dostring(L, s) \ 147 (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0)) 149 #define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n))) 151 #define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n))) 153 #define luaL_loadbuffer(L,s,sz,n) luaL_loadbufferx(L,s,sz,n,NULL) 157 #define luaL_pushfail(L) lua_pushnil(L) 173 char b[LUAL_BUFFERSIZE];
178 #define luaL_bufflen(bf) ((bf)->n) 179 #define luaL_buffaddr(bf) ((bf)->b) 182 #define luaL_addchar(B,c) \ 183 ((void)((B)->n < (B)->size || luaL_prepbuffsize((B), 1)), \ 184 ((B)->b[(B)->n++] = (c))) 186 #define luaL_addsize(B,s) ((B)->n += (s)) 188 #define luaL_buffsub(B,s) ((B)->n -= (s)) 190 LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B);
191 LUALIB_API
char *(luaL_prepbuffsize) (luaL_Buffer *B,
size_t sz);
192 LUALIB_API void (luaL_addlstring) (luaL_Buffer *B,
const char *s,
size_t l);
193 LUALIB_API void (luaL_addstring) (luaL_Buffer *B,
const char *s);
194 LUALIB_API void (luaL_addvalue) (luaL_Buffer *B);
195 LUALIB_API void (luaL_pushresult) (luaL_Buffer *B);
196 LUALIB_API void (luaL_pushresultsize) (luaL_Buffer *B,
size_t sz);
197 LUALIB_API
char *(luaL_buffinitsize) (lua_State *L, luaL_Buffer *B,
size_t sz);
199 #define luaL_prepbuffer(B) luaL_prepbuffsize(B, LUAL_BUFFERSIZE) 217 #define LUA_FILEHANDLE "FILE*" 220 typedef struct luaL_Stream {
222 lua_CFunction closef;
234 #if !defined(lua_writestring) 235 #define lua_writestring(s,l) fwrite((s), sizeof(char), (l), stdout) 239 #if !defined(lua_writeline) 240 #define lua_writeline() (lua_writestring("\n", 1), fflush(stdout)) 244 #if !defined(lua_writestringerror) 245 #define lua_writestringerror(s,p) \ 246 (fprintf(stderr, (s), (p)), fflush(stderr)) 257 #if defined(LUA_COMPAT_APIINTCASTS) 259 #define luaL_checkunsigned(L,a) ((lua_Unsigned)luaL_checkinteger(L,a)) 260 #define luaL_optunsigned(L,a,d) \ 261 ((lua_Unsigned)luaL_optinteger(L,a,(lua_Integer)(d))) 263 #define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n))) 264 #define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d))) 266 #define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n))) 267 #define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d)))