Doesn't compile with eris lua yet. Getting closer.

This commit is contained in:
2021-02-28 14:01:59 -05:00
parent ca4012acc5
commit 6a0ffa6171
2 changed files with 43 additions and 57 deletions

View File

@@ -6,7 +6,6 @@ LuaSpecial LuaRegistry(LUA_REGISTRYINDEX);
LuaSpecial LuaGlobals(LUA_GLOBALSINDEX);
LuaNilMarker LuaNil;
LuaNewTableMarker LuaNewTable;
LuaDiscardMarker LuaDiscard;
LuaFunctionReg::LuaFunctionReg(const char *m, const char *n, lua_CFunction f) {
mode_ = m;
@@ -27,6 +26,28 @@ LuaFunctionReg::List LuaFunctionReg::all() {
LuaFunctionReg *LuaFunctionReg::LuaFunctionRegistry;
lua_Integer LuaStack::ckinteger(LuaSlot s) const {
luaL_checktype(L_, s, LUA_TNUMBER);
return lua_tointeger(L_, s);
}
lua_Number LuaStack::cknumber(LuaSlot s) const {
luaL_checktype(L_, s, LUA_TNUMBER);
return lua_tonumber(L_, s);
}
std::string LuaStack::ckstring(LuaSlot s) const {
luaL_checktype(L_, s, LUA_TSTRING);
size_t len;
const char *s = lua_tolstring(L_, s, &len);
return std::string(s, len);
}
lua_State *LuaStack::ckthread(LuaSlot s) const {
luaL_checktype(L_, s, LUA_TTHREAD);
return lua_tothread(L_, s);
}
void LuaStack::count_slots_finalize(int narg, int nvar, int nret) {
narg_ = narg;
nret_ = nret;
@@ -62,42 +83,27 @@ int LuaStack::result() {
return nret_;
}
void LuaStack::pop_any_value(lua_Integer &s) const {
luaL_checktype(L_, -1, LUA_TNUMBER);
s = lua_tointeger(L_, -1);
lua_pop(L_, 1);
}
void LuaStack::pop_any_value(lua_Number &s) const {
luaL_checktype(L_, -1, LUA_TNUMBER);
s = lua_tonumber(L_, -1);
lua_pop(L_, 1);
}
void LuaStack::pop_any_value(std::string &s) const {
luaL_checktype(L_, -1, LUA_TSTRING);
size_t len;
const char *str = luaL_cklstring(L_, -1, &len);
const char *str = lua_tolstring(L_, -1, &len);
s = std::string(str, len);
lua_pop(L_, 1);
}
void LuaStack::pop_any_value(LuaAcceptNilNumber &s) const {
if (lua_isnil(L_, -1)) {
s.v = 0.0;
} else {
s.v = luaL_cknumber(L_, -1);
}
lua_pop(L_, 1);
}
void LuaStack::pop_any_value(LuaAcceptNilInteger &s) const {
if (lua_isnil(L_, -1)) {
s.v = 0;
} else {
s.v = luaL_ckinteger(L_, -1);
}
lua_pop(L_, 1);
}
void LuaStack::pop_any_value(LuaAcceptNilString &s) const {
if (lua_isnil(L_, -1)) {
s.v = "";
} else {
size_t len;
const char *str = luaL_cklstring(L_, -1, &len);
s.v = std::string(str, len);
}
lua_pop(L_, 1);
}
std::string LuaStack::ckstring(LuaSlot s) const {
size_t len;
const char *str = luaL_cklstring(L_, s, &len);