Home | History | Annotate | Download | only in lua
      1 /* -----------------------------------------------------------------------------
      2  * luaruntime.swg
      3  *
      4  * all the runtime code for .
      5  * ----------------------------------------------------------------------------- */
      6 
      7 %runtime "swigrun.swg";         /* Common C API type-checking code */
      8 %runtime "luarun.swg";          /* Lua runtime stuff */
      9 
     10 %insert(initbeforefunc) "swiginit.swg"
     11 
     12 %insert(initbeforefunc) %{
     13 
     14 /* Forward declaration of where the user's %init{} gets inserted */
     15 void SWIG_init_user(lua_State* L );
     16 
     17 #ifdef __cplusplus
     18 extern "C" {
     19 #endif
     20 /* this is the initialization function
     21   added at the very end of the code
     22   the function is always called SWIG_init, but an earlier #define will rename it
     23 */
     24 #if ((SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC))
     25 LUALIB_API int SWIG_init(lua_State* L)
     26 #else
     27 SWIGEXPORT int SWIG_init(lua_State* L) /* default Lua action */
     28 #endif
     29 {
     30 #if (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC) /* valid for both Lua and eLua */
     31   int i;
     32   /* start with global table */
     33   lua_pushglobaltable (L);
     34   /* SWIG's internal initalisation */
     35   SWIG_InitializeModule((void*)L);
     36   SWIG_PropagateClientData();
     37 #endif
     38 
     39 #if ((SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUA) && (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC))
     40   /* add a global fn */
     41   SWIG_Lua_add_function(L,"swig_type",SWIG_Lua_type);
     42   SWIG_Lua_add_function(L,"swig_equals",SWIG_Lua_equal);
     43   /* begin the module (its a table with the same name as the module) */
     44   SWIG_Lua_module_begin(L,SWIG_name);
     45   /* add commands/functions */
     46   for (i = 0; swig_commands[i].name; i++){
     47     SWIG_Lua_module_add_function(L,swig_commands[i].name,swig_commands[i].func);
     48   }
     49   /* add variables */
     50   for (i = 0; swig_variables[i].name; i++){
     51     SWIG_Lua_module_add_variable(L,swig_variables[i].name,swig_variables[i].get,swig_variables[i].set);
     52   }
     53 #endif
     54 
     55 #if (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC)
     56   /* set up base class pointers (the hierarchy) */
     57   for (i = 0; swig_types[i]; i++){
     58     if (swig_types[i]->clientdata){
     59       SWIG_Lua_init_base_class(L,(swig_lua_class*)(swig_types[i]->clientdata));
     60     }
     61   }
     62   /* additional registration structs & classes in lua */
     63   for (i = 0; swig_types[i]; i++){
     64     if (swig_types[i]->clientdata){
     65       SWIG_Lua_class_register(L,(swig_lua_class*)(swig_types[i]->clientdata));
     66     }
     67   }
     68 #endif
     69 
     70 #if ((SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUA) && (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC))
     71   /* constants */
     72   SWIG_Lua_InstallConstants(L,swig_constants);
     73 #endif
     74 
     75 #if (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC)
     76   /* invoke user-specific initialization */
     77   SWIG_init_user(L);
     78   /* end module */
     79   /* Note: We do not clean up the stack here (Lua will do this for us). At this
     80      point, we have the globals table and out module table on the stack. Returning
     81      one value makes the module table the result of the require command. */
     82   return 1;
     83 #else
     84   return 0;
     85 #endif
     86 }
     87 
     88 #ifdef __cplusplus
     89 }
     90 #endif
     91 
     92 %}
     93 
     94 /* Note: the initialization function is closed after all code is generated */
     95 
     96