title: "Api" date: 2023-11-04T14:29:51+07:00
lua_Number
lua_Integer
luaL_Buffer
lua_State* luaL_newstate();
void luaL_openlibs(lua_State*L);
int luaL_loadbuffer(lua_State*L, const char* buf, int len, const char* name);
int luaL_newmetatable (lua_State *L, const char *tname);
int luaL_optint (lua_State *L, int narg, int d);
lua_Integer luaL_optinteger (lua_State *L,
int narg,
lua_Integer d);
long luaL_optlong (lua_State *L, int narg, long d);
const char *luaL_optlstring (lua_State *L,
int narg,
const char *d,
size_t *l);
const char *luaL_optstring (lua_State *L,
int narg,
const char *d);
lua_Number luaL_optnumber (lua_State *L, int narg, lua_Number d);
//
void luaL_checkstack (lua_State *L, int sz, const char *msg);
const char *luaL_checkstring (lua_State *L, int narg);
const char *luaL_checklstring (lua_State *L, int narg, size_t *l);
lua_Number luaL_checknumber (lua_State *L, int narg);
int luaL_checkoption (lua_State *L,
int narg,
const char *def,
const char *const lst[]);
void *luaL_checkudata (lua_State *L, int narg, const char *tname);
// 检查函数参数 narg 是否是类型 t
void luaL_checktype(lua_State*L, int narg, int t);
int lua_load(lua_State*L, lua_Reader reader, void*data, const char* chunkname);
void lua_call(lua_State*L, int nargs, int nresults);
int lua_pcall(lua_State*L, int nargs, int nresults, int errfunc);
int lua_status (lua_State *L);
int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar);
void lua_close(lua_State*L);
/* push 系列
栈中索引是以 1 开始。第一个压入栈中元素为 1. -1 表示栈顶
*/
void lua_pushnil(lua_State*L);
void lua_pushboolean(lua_State*L, int bool);
void lua_pushnumber(lua_State*L, lua_Number n);
void lua_pushinteger(lua_State*L, lua_Integer n);
void lua_pushlstring(lua_State*L, const char*s, size_t len);
void lua_pushstring(lua_State*L, const char*s);
void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n);
int lua_checkstack(lua_State*L, int sz);
/*返回值
LUA_TNONE
LUA_TNIL
LUA_TNUMBER
LUA_TBOOLEAN
LUA_TSTRING
LUA_TTABLE
LUA_TFUNCTION
LUA_USERDATA
LUA_TTHREAD
LUA_TLIGHTUSERDATA
*/
int lua_type(lua_State*L, int index);
// 转换 type 为字符串
const char* lua_typename(lua_State*L, int type)
/* lua_is***
兼容类型返回 1, 否则返回 0。(lua_isboolean例外)
*/
int lua_isnumber(lua_State*L, int idx);
int lua_isboolean(lua_State*L, int idx);
int lua_isfunction(lua_State*L, int idx);
int lua_istable(lua_State*L, int idx);
int lua_isstring(lua_State*L, int idx);
int lua_isnil(lua_State*L, int idx);
int lua_iscfunction(lua_State*L, int idx);
/** lua_to***
*/
int lua_toboolean(lua_State*L, int idx);
lua_Number lua_tonumber(lua_State*L, int idx);
lua_Integer lua_tointeger(lua_State*L, int idx);
const char* lua_tolstring(lua_State*L, int idx, size_t* len);
const char* lua_tostring(lua_State*L, int idx);
lua_CFunction lua_tocfunction (lua_State *L, int index);
const void *lua_topointer (lua_State *L, int index);
lua_State *lua_tothread (lua_State *L, int index);
void *lua_touserdata (lua_State *L, int index);
size_t lua_objlen(lua_State*L, int idx);
/** stack
*/
int lua_gettop(lua_State*L);
void lua_settop(lua_State*L, int idx);
// 指定索引入栈
void lua_pushvalue(lua_State*L, int idx);
void lua_remove(lua_State*L, int idx);
// 栈顶元素插入
void lua_insert(lua_State*L, int idx);
// 弹出栈顶,并设置到索引
void lua_replace(lua_State*L, int idx);
void lua_pop(lua_State*L, int num);
lua_CFunction lua_atpanic(lua_State*L, lua_CFunction panicf);
int lua_error(lua_State*L);
/**
what:
LUA_GCSTOP
LUA_GCCRESTART
LUA_GCCOLLECT
LUA_GCCOUNT
LUA_GCCOUNTB
LUA_GCSTOP
LUA_GCSETPAAUSE
LUA_GCSETSTEPMUL
*/
int lua_gc(lua_State*L, int what, int data);
void lua_getfenv (lua_State *L, int index);
int lua_setfenv (lua_State *L, int index);
void lua_getglobal (lua_State *L, const char *name);
void lua_setglobal (lua_State *L, const char *name);
// table
void lua_getfield (lua_State *L, int index, const char *k);
void lua_setfield (lua_State *L, int index, const char *k);
int lua_getmetatable (lua_State *L, int index);
int lua_setmetatable (lua_State *L, int index);
void lua_gettable (lua_State *L, int index);
void lua_settable (lua_State *L, int index);
int lua_rawequal (lua_State *L, int index1, int index2);
//
void lua_rawget (lua_State *L, int index);
void lua_rawgeti (lua_State *L, int index, int n);
void lua_rawset (lua_State *L, int index);
void lua_rawseti (lua_State *L, int index, int n);
void luaL_buffinit (lua_State *L, luaL_Buffer *B);
void luaL_addchar (luaL_Buffer *B, char c);
void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l);
void luaL_addsize (luaL_Buffer *B, size_t n);
void luaL_addstring (luaL_Buffer *B, const char *s);
void luaL_addvalue (luaL_Buffer *B);
void luaL_pushresult (luaL_Buffer *B);