Пример #1
0
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;
}
Пример #2
0
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;
}
Пример #3
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);
}
Пример #4
0
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();
}
Пример #5
0
int __open(lua_State *l) {
	luaopen_lpeg(l);
}