56 lines
1.2 KiB
C++
56 lines
1.2 KiB
C++
#include "ReScript/luaengine.hpp"
|
|
#include <cmath>
|
|
#include <errno.h>
|
|
#include <jlog/jlog.hpp>
|
|
|
|
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<LuaAny, LuaAny> 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;
|
|
}
|