#include "ReScript/luaengine.hpp" #include #include #include static int l_sin (lua_State *L) { //lua_Number d = luaL_checknumber(L, 1); //DEBUG(std::to_string(d)) //lua_pushnumber(L, sin(d)); LuaNumber LN = LuaNumber(); LN.Pull(L, 1); LuaNumber LN2 = sin(LN.Value()); //LN2.Push(L); DEBUG(std::to_string(LN.Value())); DEBUG(std::to_string(LN2.Value())); DEBUG(std::to_string(sin(LN.Value()))); lua_pushnumber(L, LN2.Value()); return 1; } int main() { char buff[256]; int error; //lua_State *L = luaL_newstate(); //luaL_openlibs(L); LuaEngine LE = LuaEngine(); //lua_pushcfunction(LE.L, l_sin); //lua_setglobal(LE.L, "mysin"); LuaCFunction lcf = LuaCFunction(&l_sin); lcf.Name("mysin"); LE.Push(lcf); //std::map m; //m.emplace(LuaNumber(1), LuaNumber(20)); //if (LuaNumber(1) == LuaNumber(2)) { // exit(1); //} //LuaTable lt = m; //LE.Push(lt); while(fgets(buff, sizeof(buff), stdin) != NULL) { error = LE.LoadString(buff) || LE.Pcall(0,0,0); if (error) { fprintf(stderr, "%s\n", LE.ToString(-1)); LE.Pop(1); } } //lua_close(LE.L); return 0; }