jkbbwr
07/13/2016, 5:21 PMinterface RawLua : Library {
fun luaL_newstate(): Pointer
fun luaL_openlibs(L: Pointer)
fun luaL_loadstring(L: Pointer, str: String): Int
fun lua_pcallk(L: Pointer, nargs: Int, nresults: Int, msgh: Int, ctx: Int = 0, k: Pointer? = Pointer.NULL): Int
}
// Add some macros
fun RawLua.lua_pcall(L: Pointer, nargs: Int, nresults: Int, msgh: Int): Int = lua_pcallk(L, nargs, nresults, msgh)
fun RawLua.luaL_dostring(L: Pointer, str: String): Int = luaL_loadstring(L, str) xor lua_pcall(L, 0, LUA_MULTRET, 0)
fun main(args: Array<String>) {
Native.setProtected(true)
val rlua = Native.loadLibrary("lua", RawLua::class.java) as RawLua
val sp = rlua.luaL_newstate()
rlua.luaL_openlibs(sp)
rlua.luaL_dostring(sp, "print(\"hi from lua\")")
}