40 #ifndef _lua51scriptingengine_cpp
41 #define _lua51scriptingengine_cpp
51 #include "stringtool.h"
154 int LuaBytecodeDumper(lua_State *State,
const void* Buffer,
size_t Size,
void* BinBuff)
156 BinaryTools::BinaryBuffer* CompilingScript =
reinterpret_cast<BinaryTools::BinaryBuffer*
>(BinBuff);
157 CompilingScript->Concatenate(
171 const char* LuaBytecodeLoader(lua_State* State,
void* BinBuff,
size_t* Size)
173 FlaggedBuffer* LoadingBuffer =
reinterpret_cast<FlaggedBuffer*
>(BinBuff);
174 *Size = LoadingBuffer->Size;
176 return (
const char*)LoadingBuffer->Binary;
186 const char* LuaSourceLoader(lua_State* State,
void* BinBuff,
size_t* Size)
188 Lua51Script* LoadingScript =
reinterpret_cast<Lua51Script*
>(BinBuff);
189 if(LoadingScript->GetByteCodeReference().Loaded)
191 LoadingScript->GetByteCodeReference().Loaded =
false;
194 *Size = LoadingScript->GetSourceCode().size();
195 LoadingScript->GetByteCodeReference().Loaded =
true;
196 return LoadingScript->GetSourceCode().c_str();
212 const char* ErrorCString = lua_tolstring(this->State, -1, &Length);
213 ErrorMessage.reserve(Length+2);
214 ErrorMessage =
String(ErrorCString);
216 if(ErrorMessage.length()!=Length)
218 ErrorMessage +=
"\n";
247 if(ScriptToLoad->FunctionCall)
249 lua_getglobal(this->State,ScriptToLoad->SourceCode.c_str());
265 for(ArgumentGroup::const_iterator Iter = ScriptToLoad->Args.begin();
266 Iter != ScriptToLoad->Args.end();
271 { Current->
Push(this->State); }
280 lua_pcall(this->State, ArgumentCount, LUA_MULTRET, 0)
286 while(lua_gettop(State)>PreviousStackSize)
289 return PreviousStackSize-lua_gettop(State);
306 Integer StackLocation = lua_gettop(State);
307 if(LUA_TNIL==lua_type(State,StackLocation))
309 if(LUA_TBOOLEAN==lua_type(State,StackLocation))
311 if(LUA_TLIGHTUSERDATA==lua_type(State,StackLocation))
313 if(LUA_TNUMBER==lua_type(State,StackLocation))
315 if(LUA_TSTRING==lua_type(State,StackLocation))
317 if(LUA_TTABLE==lua_type(State,StackLocation))
319 if(LUA_TFUNCTION==lua_type(State,StackLocation))
321 if(LUA_TUSERDATA==lua_type(State,StackLocation))
323 if(LUA_TTHREAD==lua_type(State,StackLocation))
497 for(NameValuePairList::const_iterator Iter = Params.begin(); Params.end() != Iter; Iter++ )
500 String LoadState(Iter->second);
501 if(
String(
"Load")==LoadState)
504 if(
String(
"Unload")==LoadState)
521 { lua_close(State); }
529 return CountedPtrCast<iScript>(Results);
550 Integer StackSize = lua_gettop(this->State);
552 assert(lua_gettop(this->State) == StackSize + 1);
557 assert(lua_gettop(this->State) == StackSize);
590 lua_load(this->State, LuaSourceLoader, ScriptToCompile, ScriptToCompile->
GetName().c_str())
618 if(LibrariesToOpen &
IOLib)
620 if(LibrariesToOpen &
OSLib)
649 if (lua_istable(State, -1))
660 lua_getglobal(State, Base.c_str());
661 if (lua_istable(State, -1))
663 lua_pushstring(State, Alias.c_str());
664 lua_getglobal(State, Sub.c_str());
665 lua_settable(State, -3);
670 if (lua_istable(State, -1))
672 lua_pushstring(State, Alias.c_str());
673 lua_getglobal(State, Sub.c_str());
674 lua_settable(State, -3);
686 lua_pushcfunction(State, luaopen_base);
687 lua_pushliteral(State, LUA_COLIBNAME);
688 lua_call(State, 1, 0);
692 lua_pushcfunction(State, luaopen_package);
693 lua_pushliteral(State, LUA_LOADLIBNAME);
694 lua_call(State, 1, 0);
698 lua_pushcfunction(State, luaopen_string);
699 lua_pushliteral(State, LUA_STRLIBNAME);
700 lua_call(State, 1, 0);
704 lua_pushcfunction(State, luaopen_table);
705 lua_pushliteral(State, LUA_TABLIBNAME);
706 lua_call(State, 1, 0);
710 lua_pushcfunction(State, luaopen_math);
711 lua_pushliteral(State, LUA_MATHLIBNAME);
712 lua_call(State, 1, 0);
716 lua_pushcfunction(State, luaopen_io);
717 lua_pushliteral(State, LUA_IOLIBNAME);
718 lua_call(State, 1, 0);
722 lua_pushcfunction(State, luaopen_os);
723 lua_pushliteral(State, LUA_OSLIBNAME);
724 lua_call(State, 1, 0);
728 lua_pushcfunction(State, luaopen_debug);
729 lua_pushliteral(State, LUA_DBLIBNAME);
730 lua_call(State, 1, 0);
737 lua_call(State, 1, 0);
744 lua_call(State, 1, 0);
752 lua_call(State, 1, 0);
759 lua_call(State, 1, 0);
767 lua_call(State, 1, 0);
774 lua_call(State, 1, 0);
782 lua_call(State, 1, 0);
789 lua_call(State, 1, 0);
797 lua_call(State, 1, 0);
804 lua_call(State, 1, 0);
811 {
AliasLibrary(
"MezzanineSafe",
"MezzanineXMLSafe",
"XML"); }
814 {
AliasLibrary(
"Mezzanine",
"MezzanineThreading",
"Threading"); }
816 {
AliasLibrary(
"MezzanineSafe",
"MezzanineThreadingSafe",
"Threading"); }
819 {
AliasLibrary(
"Mezzanine",
"MezzaninePhysics",
"Physics"); }
821 {
AliasLibrary(
"MezzanineSafe",
"MezzaninePhysicsSafe",
"Physics"); }
824 {
AliasLibrary(
"Mezzanine",
"MezzanineMathTools",
"MathTools"); }
826 {
AliasLibrary(
"MezzanineSafe",
"MezzanineMathToolsSafe",
"MathTools"); }
832 {
return lua_gettop(State); }
835 {
return isalpha(IdChar) || IdChar==
'_'; }
838 {
return isalnum(IdChar) || IdChar==
'_'; }
841 {
return isalnum(IdChar) || IdChar==
'_' || IdChar==
'.' || IdChar==
':'; }
845 String::const_iterator Iter = Id.begin();
848 for(Iter++; Iter!=Id.end(); Iter++)
861 if(LUA_TNIL==lua_type(State,StackLocation))
863 if(LUA_TBOOLEAN==lua_type(State,StackLocation))
865 if(LUA_TLIGHTUSERDATA==lua_type(State,StackLocation))
867 if(LUA_TNUMBER==lua_type(State,StackLocation))
869 if(LUA_TSTRING==lua_type(State,StackLocation))
871 if(LUA_TTABLE==lua_type(State,StackLocation))
873 if(LUA_TFUNCTION==lua_type(State,StackLocation))
875 if(LUA_TUSERDATA==lua_type(State,StackLocation))
877 if(LUA_TTHREAD==lua_type(State,StackLocation))
885 lua_getglobal(State, LuaIdentifier.c_str());
900 lua_getglobal(State, TableName.c_str());
901 AlreadyDidTables.push_back(TableName);
907 if(!(LUA_TTABLE==lua_type(State,-1)))
915 while (lua_next(State, -2) != 0)
918 if(LUA_TSTRING==lua_type(State,-2))
922 { TablePrefix = TableName +
"."; }
923 CommandGroup.insert((TablePrefix + lua_tostring(State,-2)).c_str(), &
GetLuaTypeString(-1));
927 if(LUA_TTABLE==lua_type(State,-1))
930 bool AlreadyParsed =
false;
932 for(std::vector<String>::const_iterator Iter = AlreadyDidTables.begin();
933 AlreadyDidTables.end() != Iter;
938 AlreadyParsed =
true;
964 {
delete ToBeDestroyed; }
Correlates to Lua51ScriptingEngine::OpenMezzanineXMLLibrary.
CountedPtr< iScriptArgument > ScriptArgFromStack()
Get the top value of the Lua stack.
Thrown when Lua returns a yield and it should not have.
virtual CountedPtr< iScriptCompilable > Compile(const String &SourceToCompile)
Calls Compile(CountedPtr) and returns a CountedPtr to the script created...
Correlates to Lua51ScriptingEngine::OpenMezzanineMathToolsLibrary.
static const String MezzSafeTableName
The name used to identify a table loaded by the MezzanineSafe library, "MezzanineSafe".
virtual void AliasLibrary(const String &Base, const String &Sub, const String &Alias)
Nest Lua modules to put libraries in more clean positions.
virtual String GetImplementationTypeName() const
This Allows any manager name to be sent to a stream. Primarily used for logging.
void SetXMLSafe()
Set The MezzanineXMLSafe library as the XML member of the MezzanineSafe library or fail silently...
static const String StringLibName
The name used to identify the String library, "String".
static const String MezzMathToolsTableName
The name used to identify a table loaded by the MezzanineMathTools library, "MezzanineMathTools".
static const String MezzMathToolsSafeTableName
The name used to identify a table loaded by the MezzanineMathToolsSafe library, "MezzanineMathToolsSa...
A quick way to refer to all the libraries opened by Lua51ScriptingEngine::OpenAllLibraries.
static const String TypeNameNil
A human friendly representation of the Lua type nil.
virtual void OpenMezzanineThreadingLibrary()
Make the Threading parts of the Mezzanine Libary available for use in Lua51 scripts.
bool Boole
Generally acts a single bit, true or false.
virtual void OpenMezzaninePhysicsLibrary()
Make the Physics parts of the Mezzanine Libary available for use in Lua51 scripts.
virtual void OpenTableLibrary()
Enable Lua table manipulation functionality.
static const String TypeNameUserData
A human friendly representation of the Lua type user data.
virtual void ThrowFromLuaErrorCode(int LuaReturn)
This will throw an exception.
static const String MezzPhysicsLibName
The name used to identify the MezzaninePhysics library, "MezzaninePhysics".
static const String BaseLibName
The name used to identify the Base library, "Base".
ManagerType
A listing of Manager Types.
String ToString(const T &Datum)
Converts whatever to a String as long as a streaming operator is available for it.
virtual CountedPtr< iScript > Execute(const String &ScriptSource)
Compile and execute a passed string.
virtual void OpenMezzanineThreadingSafeLibrary()
Make the Threading parts of the Mezzanine Libary available for use in Lua51 scripts.
virtual void OpenMezzanineXMLLibrary()
Make the XML parts of the Mezzanine Libary available for use in Lua51 scripts.
static const String MezzThreadingSafeTableName
The name used to identify a table loaded by the MezzanineThreadingSafe library, "MezzanineThreadingSa...
static const String MezzLibName
The name used to identify the Mezzanine library, "Mezzanine".
int luaopen_MezzanineMathToolsSafe(lua_State *L)
Entry to Swig binding for loading the safe version of the MathTools.
virtual Whole GetArgumentCount() const
How many arguments have been attached to this script?
virtual void OpenStringLibrary()
Allow Lua scripts access to the Lua string manipulation libary.
void SetMathTools()
Set The MezzanineMathTools library as the MathTools member of the Mezzanine library or fail silently...
virtual void OpenMezzanineSafeLibrary()
Make a subset of the Mezzanine Library available for use in Lua51 scripts.
#define MEZZ_EXCEPTION(num, desc)
An easy way to throw exceptions with rich information.
All the definitions for datatypes as well as some basic conversion functions are defined here...
Correlates to Lua51ScriptingEngine::OpenOSLibrary.
static const String & GetLibName(Lua51Libraries Lib)
Convert a Lua51Libraries value to its name.
Correlates to Lua51ScriptingEngine::OpenMezzanineThreadingSafeLibrary.
int Integer
A datatype used to represent any integer close to.
void SetPhysics()
Set The MezzaninePhysics library as the Physics member of the Mezzanine library or fail silently...
This class is used to store a Lua script and in its source and compiled state.
static const String DebugLibName
The name used to identify the Debug library, "Debug".
static const String PackageTableName
The name used to identify a table loaded by the Package library, "package".
Correlates to Lua51ScriptingEngine::OpenMezzaninePhysicsSafeLibrary.
Correlates to Lua51ScriptingEngine::OpenMezzanineThreadingLibrary.
Correlates to Lua51ScriptingEngine::OpenMezzaninePhysicsLibrary.
static const String IOLibName
The name used to identify the IO library, "IO".
static bool IsValidCharInTableIdentifier(const char IdChar)
Is the given character valid for is in a Lua Identifier including tables leading up to it and scoping...
virtual Boole IsLibraryOpen(Lua51Libraries LibToCheck)
Check the Lua state to see if a table exists.
lua_State * GetRawLuaState()
Get the underlying Lua state that can be used with lua api calls directly.
static const String MezzPhysicsSafeTableName
The name used to identify a table loaded by the MezzaninePhysicsSafe library, "MezzaninePhysicsSafe"...
int luaopen_MezzanineMathTools(lua_State *L)
Entry to Swig binding for loading the MathTools.
static const String BaseTableName
The name used to identify a table loaded by the Base library, "coroutine".
virtual void OpenDebugLibrary()
Enable Debugging Lua features.
This implements the exception hiearchy for Mezzanine.
virtual bool IsCompiled() const
Has this script already been compiled into a bytecode.
static const String PackageLibName
The name used to identify the Package library, "Package".
int GetStackCount()
The stack is a specific part of the State relating to how data is passed between functions. How big is that?
Mezzanine::Trie< char, const Mezzanine::String * > CommandTrie
A type for efficiently storing the kinds of Lexigraphical data aboutthe Lua runtime.
Correlates to Lua51ScriptingEngine::OpenBaseLibrary.
void ScriptOntoStack(Lua51Script *ScriptToLoad)
Put a lua script onto the stack, compiling it if needed.
virtual FlaggedBuffer & GetByteCodeReference()
Get a reference to bytecode instead of a copy.
virtual void OpenIOLibrary()
Enable Input/Output in lua scripts for reading and writing files.
static const String MezzPhysicsTableName
The name used to identify a table loaded by the MezzaninePhysics library, "MezzaninePhysics".
ManagerBase::ManagerType GetManagerType() const
Gets the type of manager that is created by this factory.
int luaopen_MezzaninePhysicsSafe(lua_State *L)
Entry to Swig binding for loading the safe version of the Physics system.
virtual void OpenDefaultLibraries()
Prepare most Mezzanine and some Lua functionality for use in Lua scripts.
Correlates to Lua51ScriptingEngine::OpenMezzanineXMLSafeLibrary.
static const String TypeNameFunction
A human friendly representation of the Lua type function.
void SetXML()
Set The MezzanineXML library as the XML member of the Mezzanine library or fail silently.
int luaopen_MezzanineXML(lua_State *L)
Entry to Swig binding for loading the XML library.
Lua51ScriptingEngine(Lua51Libraries LibrariesToOpen=DefaultLibs)
Constructs a Scripting engine with a set of libraries preloaded.
static const String MezzMathToolsLibName
The name used to identify the MezzanineMathTools library, "MezzanineMathTools".
No special care is required for String Lua Arguments, so a simple typedef is used.
void SetMathToolsSafe()
Set The MezzanineMathToolsSafe library as the MathTools member of the MezzanineSafe library or fail s...
static const String TypeNameBoolean
A human friendly representation of the Lua type boolean.
This is the base class for all managers that do no describe properties of a single world...
This file has the interface for the Lua scripts.
TypePointedTo * Get() const
Get the raw pointer to the managed object.
void CheckLuaStateAfterConstruction() const
Checks the internal Lua to see if memory was correctly allocated during its creation.
Thrown when there is an unknown issue with a file.
Correlates to Lua51ScriptingEngine::OpenStringLibrary.
A light-weight handle for manipulating nodes in DOM tree.
This file has the definition of the Script Arguments for Lua 51.
A quick way to refer to all the libraries opened by Lua51ScriptingEngine::OpenDefaultLibraries.
Correlates to Lua51ScriptingEngine::OpenPackageLibrary.
Correlates to Lua51ScriptingEngine::OpenMezzanineSafeLibrary.
static const String StringTableName
The name used to identify a table loaded by the String library, "string".
int luaopen_MezzanineThreading(lua_State *L)
Entry to Swig binding for loading the FrameScheduler.
Correlates to Lua51ScriptingEngine::OpenIOLibrary.
virtual void OpenMathLibrary()
Enable Lua math and random number functionality.
Whole ScriptArgsFromStack(Lua51Script *ScriptWasRun, Integer PreviousStackSize)
Remove Scripts from Lua stack and put them into arguments on the passed script.
Correlates to Lua51ScriptingEngine::OpenMezzanineMathToolsSafeLibrary.
Correlates to Lua51ScriptingEngine::OpenMathLibrary.
static const String OSLibName
The name used to identify the OS library, "OS".
static const String MathTableName
The name used to identify a table loaded by the Math library, "math".
virtual void OpenMezzaninePhysicsSafeLibrary()
Make the Physics parts of the Mezzanine Libary available for use in Lua51 scripts.
The workhorse of the Lua scripting system. All scripts come here to be executed.
static const String MezzMathToolsSafeLibName
The name used to identify the MezzanineMathToolsSafe library, "MezzanineMathToolsSafe".
const String & GetLuaTypeString(int StackLocation)
Get a human friendly string containing the type of the thing at the given stack location.
static const String ScriptEngineName
The name of this scripting engine for inspection purposes, "Lua51ScriptingEngine".
static const String TableTableName
The name used to identify a table loaded by the Table library, "table".
virtual void Push(lua_State *TargetState) const =0
Handle the details of putting this data onto Lua's Stack.
Thrown when an unknown error happens in a Lua script.
Thrown when a passed parameter is checked at runtime and not in the expected range.
void PopulateTabCompletionTrie(CommandTrie &CommandGroup, const String &TableName="", std::vector< String > AlreadyDidTables=std::vector< String >())
Populate a Trie with all the members and types in the current lua runtime.
Thrown when lua code in incorrect.
static const String MezzPhysicsSafeLibName
The name used to identify the MezzaninePhysicsSafe library, "MezzaninePhysicsSafe".
static const String TypeNameNumber
A human friendly representation of the Lua type number.
virtual ~Lua51ScriptingEngine()
Virtual Deconstructor.
static bool IsValidCharStartIdentifier(const char IdChar)
Is the given character valid for starting a Lua Identifier.
static const String DebugTableName
The name used to identify a table loaded by the Debug library, "debug".
static const String TypeNameLightUserData
A human friendly representation of the Lua type light user data.
std::list< NameValuePair > NameValuePairList
This is a datatype mostly used for describing settings or parameters that can't be declared in advanc...
void ScriptArgsOntoStack(Lua51Script *ScriptToLoad)
Put the arguments in a script onto the stack.
static const String & GetTableName(Lua51Libraries Lib)
Convert a Lua51Libraries value to the name of a table it loads.
static const String GlobalTableName
The place Lua keeps all the identifiers in a single Lua State.
The ScriptArgumentGeneric needs just a bit of Lua specific functionality so we add push/pop for th...
static const String OSTableName
The name used to identify a table loaded by the OS library, "os".
static const String TypeNameTable
A human friendly representation of the Lua type table.
virtual void AddReturn(CountedPtr< iScriptArgument > ReturnArg)
Add another value to be returned.
int luaopen_MezzanineThreadingSafe(lua_State *L)
Entry to Swig binding for loading the safe version of the FrameScheduler.
static const String MathLibName
The name used to identify the Math library, "Math".
String GetName() const
Get the name of the current Script.
int luaopen_MezzanineSafe(lua_State *L)
Entry to Swig binding for loading the safe versions of the core Mezzanine library.
Correlates to Lua51ScriptingEngine::OpenDebugLibrary.
Thrown when Lua has an error handling an error.
void SetPhysicsSafe()
Set The MezzaninePhysicsSafe library as the Physics member of the MezzanineSafe library or fail silen...
virtual void OpenAllLibraries()
Make all Mezzanine and Lua functionality.
Thrown when a Lua script has a runtime error.
static bool IsValidCharInIdentifier(const char IdChar)
Is the given character valid for is in a Lua Identifier.
static const String TypeNameString
A human friendly representation of the Lua type string.
void SetThreading()
Set The MezzanineThreading library as the Threading member of the Mezzanine library or fail silently...
virtual void OpenMezzanineMathToolsSafeLibrary()
Make the MathTools parts of the Mezzanine Libary available for use in Lua51 scripts.
virtual void OpenOSLibrary()
EnableOS facilities in lua scriptsm such as file managements, time and shell execution.
No special care is required for Bool Lua Arguments, so a simple typedef is used.
virtual void OpenBaseLibrary()
Make some eof the more core functionality available to lua scripts.
virtual void OpenMezzanineXMLSafeLibrary()
Make the XML parts of the Mezzanine Libary available for use in Lua51 scripts.
The bulk of the engine components go in this namspace.
int luaopen_MezzaninePhysics(lua_State *L)
Entry to Swig binding for loading the Physics system.
unsigned long Whole
Whole is an unsigned integer, it will be at least 32bits in size.
virtual void OpenMezzanineLibrary()
Make everything in the Mezzanine Libary available for use in Lua51 scripts.
virtual void OpenMezzanineMathToolsLibrary()
Make the MathTools parts of the Mezzanine Libary available for use in Lua51 scripts.
Correlates to Lua51ScriptingEngine::OpenTableLibrary.
virtual void OpenPackageLibrary()
Allow Lua scripts to load other libraries.
String GetManagerImplName() const
Gets the name of the manager that is created by this factory.
void SetThreadingSafe()
Set The MezzanineThreadingSafe library as the Threading member of the MezzanineSafe library or fail s...
CountedPtr< iScriptArgument > GetValue(const String &LuaIdentifier)
Get the Value stored in a lua identifier.
static bool IsValidIdentifier(const String &Id)
Is a string a valid identifier in Lua.
Thrown when a pointer parameter is checked at runtime and cannot be cast as expected.
static const String IOTableName
The name used to identify a table loaded by the IO library, "io".
static const String MezzThreadingLibName
The name used to identify the MezzanineThreading library, "MezzanineThreading".
int luaopen_Mezzanine(lua_State *L)
Entry to Swig binding for loading the core Mezzanine library.
Thrown when A memory allocation was attempted and failed.
virtual void OpenLibraries(int LibrariesToOpen)
Makes Lua function calls in Lua standard libraries available for use in Lua scripts.
static const String MezzThreadingSafeLibName
The name used to identify the MezzanineThreadingSafe library, "MezzanineThreadingSafe".
void DestroyManager(EntresolManager *ToBeDestroyed)
Destroys a Manager created by this factory.
static const String MezzThreadingTableName
The name used to identify a table loaded by the MezzanineThreading library, "MezzanineThreading".
int luaopen_MezzanineXMLSafe(lua_State *L)
Entry to Swig binding for loading the safe version XML library.
This file has the interface for the Lua based implementation of the Scripting system.
static const String MezzXMLSafeTableName
The name used to identify a table loaded by the MezzanineXMLSafe library, "MezzanineXMLSafe".
The interface for a script argument.
static Lua51Libraries GetLibFromName(String Name)
Convert a string similar to one of the names on the Lua51ScriptingEngine to number.
void StackExecute(Whole ArgumentCount)
Execute a thing on the top of the stack with arguments already put there.
static const String MezzXMLTableName
The name used to identify a table loaded by the MezzanineXML library, "MezzanineXML".
static const String MezzXMLLibName
The name used to identify the MezzanineXML library, "MezzanineXML".
std::string String
A datatype used to a series of characters.
A Real that can readily be passed into lua scripts.
static const String TableLibName
The name used to identify the Table library, "Table".
static const ManagerBase::ManagerType InterfaceType
The type of functionality this manager provides. For ManagerBase compatibility.
Represents not much of anything but will insert and retrieves Nils from Lua51.
Lua51Libraries
Intended only to make constructing an Lua51ScriptingEngine with the desired libraries open a little e...
Correlates to Lua51ScriptingEngine::OpenMezzanineLibrary.
static const String MezzXMLSafeLibName
The name used to identify the MezzanineXMLSafe library, "MezzanineXMLSafe".
static const String MezzSafeLibName
The name used to identify the MezzanineSafe library, "MezzanineSafe".
EntresolManager * CreateManager(const NameValuePairList &Params)
Creates a manager of the type represented by this factory.
static const String AllLibsName
The name used to identify the set of all libraries, "All".
static const String MezzTableName
The name used to identify a table loaded by the Mezzanine library, "Mezzanine".
static const String NoLibName
The name used to identify No libraries, "None".
static const String TypeNameThread
A human friendly representation of the Lua type thread.
static const String DefaultLibsName
The name used to identify the Default set of libraries, "Default".