summary refs log tree commit diff stats
path: root/lib/wrappers/lua/lualib.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/wrappers/lua/lualib.nim')
-rw-r--r--lib/wrappers/lua/lualib.nim73
1 files changed, 73 insertions, 0 deletions
diff --git a/lib/wrappers/lua/lualib.nim b/lib/wrappers/lua/lualib.nim
new file mode 100644
index 000000000..df5d53101
--- /dev/null
+++ b/lib/wrappers/lua/lualib.nim
@@ -0,0 +1,73 @@
+#*****************************************************************************
+# *                                                                            *
+# *  File:        lualib.pas                                                   *
+# *  Authors:     TeCGraf           (C headers + actual Lua libraries)         *
+# *               Lavergne Thomas   (original translation to Pascal)           *
+# *               Bram Kuijvenhoven (update to Lua 5.1.1 for FreePascal)       *
+# *  Description: Standard Lua libraries                                       *
+# *                                                                            *
+# *****************************************************************************
+#
+#** $Id: lualib.h,v 1.28 2003/03/18 12:24:26 roberto Exp $
+#** Lua standard libraries
+#** See Copyright Notice in lua.h
+#
+#
+#** Translated to pascal by Lavergne Thomas
+#** Bug reports :
+#**    - thomas.lavergne@laposte.net
+#**   In french or in english
+#
+
+import lua
+
+const 
+  LUA_COLIBNAME* = "coroutine"
+  LUA_TABLIBNAME* = "table"
+  LUA_IOLIBNAME* = "io"
+  LUA_OSLIBNAME* = "os"
+  LUA_STRLINAME* = "string"
+  LUA_MATHLIBNAME* = "math"
+  LUA_DBLIBNAME* = "debug"
+  LUA_LOADLIBNAME* = "package"
+
+proc luaopen_base*(L: Plua_State): cint{.cdecl, dynlib: LUA_LIB_NAME, 
+    importc.}
+proc luaopen_table*(L: Plua_State): cint{.cdecl, dynlib: LUA_LIB_NAME, 
+    importc.}
+proc luaopen_io*(L: Plua_State): cint{.cdecl, dynlib: LUA_LIB_NAME, importc.}
+proc luaopen_string*(L: Plua_State): cint{.cdecl, dynlib: LUA_LIB_NAME, 
+    importc.}
+proc luaopen_math*(L: Plua_State): cint{.cdecl, dynlib: LUA_LIB_NAME, 
+    importc.}
+proc luaopen_debug*(L: Plua_State): cint{.cdecl, dynlib: LUA_LIB_NAME, 
+    importc.}
+proc luaopen_package*(L: Plua_State): cint{.cdecl, dynlib: LUA_LIB_NAME, 
+    importc.}
+proc luaL_openlibs*(L: Plua_State){.cdecl, dynlib: LUA_LIB_NAME, importc.}
+  # compatibility code 
+proc lua_baselibopen*(L: Plua_State): Bool
+proc lua_tablibopen*(L: Plua_State): Bool
+proc lua_iolibopen*(L: Plua_State): Bool
+proc lua_strlibopen*(L: Plua_State): Bool
+proc lua_mathlibopen*(L: Plua_State): Bool
+proc lua_dblibopen*(L: Plua_State): Bool
+# implementation
+
+proc lua_baselibopen(L: Plua_State): Bool = 
+  Result = luaopen_base(L) != 0'i32
+
+proc lua_tablibopen(L: Plua_State): Bool = 
+  Result = luaopen_table(L) != 0'i32
+
+proc lua_iolibopen(L: Plua_State): Bool = 
+  Result = luaopen_io(L) != 0'i32
+
+proc lua_strlibopen(L: Plua_State): Bool = 
+  Result = luaopen_string(L) != 0'i32
+
+proc lua_mathlibopen(L: Plua_State): Bool = 
+  Result = luaopen_math(L) != 0'i32
+
+proc lua_dblibopen(L: Plua_State): Bool = 
+  Result = luaopen_debug(L) != 0'i32