void luaInit() { #ifdef __PRAXIS_WINDOWS__ EnterCriticalSection (&g_cs) ; #endif g_pLuaState = luaL_newstate(); luaL_openlibs(g_pLuaState); luaopen_lpeg(g_pLuaState); // lua_register(g_pLuaState, "foo", cbLuaFoo); lua_register(g_pLuaState, "print", cbLuaPrint); luaL_dostring(g_pLuaState, "function onerror(s) " "endGL() " "glResetStencil() " "return s .. \"\\n\" .. debug.traceback() " "end"); lua_sethook(g_pLuaState, cbLuaBreakHook, LUA_MASKCOUNT, 1000); #ifdef __PRAXIS_WINDOWS__ LeaveCriticalSection (&g_cs) ; #endif g_bLuaRunning = true; }
int main(int argc, char *argv[]) { int status, result, opt, debug; struct option cliopts[] = { {"debug", no_argument, NULL, 'd'}, {"verbose", no_argument, NULL, 'v'}, {0, 0, 0, 0} }; lua_State *L; L = luaL_newstate(); luaL_openlibs(L); luaopen_lpeg(L); // Prepare to call main with a table generated from CLI arguments luaL_dostring(L, "require \"main\""); lua_getglobal(L, "main"); lua_newtable(L); // Parse CLI arguments, pushing appropriate values into the table to be passed while((opt = getopt_long(argc, argv, "e:d", cliopts, NULL)) != -1) { switch (opt) { case 'e': ay_pusheval(L, optarg); break; case 'd': debug = 1; break; case 0: break; } } lua_pushboolean(L, debug); lua_setfield(L, -2, "debug"); // Last remaining argument should be source file to run if (optind < argc) { lua_pushstring(L, argv[optind]); lua_setfield(L, -2, "srcfile"); } CHECK_LOADED(lua_pcall(L, 1, 0, 0)); return 0; }
void luaopen_lua_extensions(lua_State *L) { luaL_Reg* lib = luax_exts; lua_getglobal(L, "package"); lua_getfield(L, -1, "preload"); for (; lib->func; lib++) { lua_pushcfunction(L, lib->func); lua_setfield(L, -2, lib->name); } lua_pop(L, 2); // load extensions script luaopen_socket_scripts(L); // load lpeg support luaopen_lpeg(L); // load pbc support luaopen_protobuf_c(L); }
void OpenLuaExport() { LuaWrapper* poWrapper = LuaWrapper::Instance(); RegLuaDebugger(NULL); luaopen_cmsgpack(poWrapper->GetLuaState()); luaopen_lpeg(poWrapper->GetLuaState()); luaopen_protobuf_c(poWrapper->GetLuaState()); luaopen_cjson(poWrapper->GetLuaState()); RegTimerMgr("GlobalExport"); RegWordFilter("GlobalExport"); poWrapper->RegFnList(_global_lua_func, "GlobalExport"); RegLuaCmd("NetworkExport"); RegLuaRpc("NetworkExport"); RegLuaPBPack("NetworkExport"); RegLuaNetwork("NetworkExport"); RegLuaSerialize("cseri"); RegClassSSDBDriver(); RegClassMysqlDriver(); RegClassRobot(); }
int __open(lua_State *l) { luaopen_lpeg(l); }