123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package lua
- const (
- // BaseLibName is here for consistency; the base functions have no namespace/library.
- BaseLibName = ""
- // LoadLibName is here for consistency; the loading system has no namespace/library.
- LoadLibName = "package"
- // TabLibName is the name of the table Library.
- TabLibName = "table"
- // IoLibName is the name of the io Library.
- IoLibName = "io"
- // OsLibName is the name of the os Library.
- OsLibName = "os"
- // StringLibName is the name of the string Library.
- StringLibName = "string"
- // MathLibName is the name of the math Library.
- MathLibName = "math"
- // DebugLibName is the name of the debug Library.
- DebugLibName = "debug"
- // ChannelLibName is the name of the channel Library.
- ChannelLibName = "channel"
- // CoroutineLibName is the name of the coroutine Library.
- CoroutineLibName = "coroutine"
- )
- type luaLib struct {
- libName string
- libFunc LGFunction
- }
- var luaLibs = []luaLib{
- luaLib{LoadLibName, OpenPackage},
- luaLib{BaseLibName, OpenBase},
- luaLib{TabLibName, OpenTable},
- luaLib{IoLibName, OpenIo},
- luaLib{OsLibName, OpenOs},
- luaLib{StringLibName, OpenString},
- luaLib{MathLibName, OpenMath},
- luaLib{DebugLibName, OpenDebug},
- luaLib{ChannelLibName, OpenChannel},
- luaLib{CoroutineLibName, OpenCoroutine},
- }
- // OpenLibs loads the built-in libraries. It is equivalent to running OpenLoad,
- // then OpenBase, then iterating over the other OpenXXX functions in any order.
- func (ls *LState) OpenLibs() {
- // NB: Map iteration order in Go is deliberately randomised, so must open Load/Base
- // prior to iterating.
- for _, lib := range luaLibs {
- ls.Push(ls.NewFunction(lib.libFunc))
- ls.Push(LString(lib.libName))
- ls.Call(1, 0)
- }
- }
|