diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/LICENSE.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/LICENSE.meta
index 69941879..edf7e0ba 100644
--- a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/LICENSE.meta
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/LICENSE.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 77bed9ffa87904128bf91eb0d73bd35e
-timeCreated: 1455193522
-licenseType: Free
+timeCreated: 1469184162
+licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Hardwire.dll b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Hardwire.dll
deleted file mode 100644
index 53cb34a5..00000000
Binary files a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Hardwire.dll and /dev/null differ
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Hardwire.pdb b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Hardwire.pdb
deleted file mode 100644
index 81fed278..00000000
Binary files a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Hardwire.pdb and /dev/null differ
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.dll b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.dll
deleted file mode 100644
index a33c9c98..00000000
Binary files a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.dll and /dev/null differ
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.pdb b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.pdb
deleted file mode 100644
index 687d25bf..00000000
Binary files a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.pdb and /dev/null differ
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.pdb b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.pdb
deleted file mode 100644
index 69c3fc86..00000000
Binary files a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.pdb and /dev/null differ
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/MoonSharp.chm b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/MoonSharp.chm
new file mode 100755
index 00000000..03ffe26d
Binary files /dev/null and b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/MoonSharp.chm differ
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.pdb.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/MoonSharp.chm.meta
similarity index 53%
rename from Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.pdb.meta
rename to Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/MoonSharp.chm.meta
index 36e27c0a..2176730a 100644
--- a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.pdb.meta
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/MoonSharp.chm.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
-guid: 4375c8dc0d3dd47a782783697a009e01
-timeCreated: 1456222253
-licenseType: Free
+guid: a6522c34e88cb479daaf0624291fdf1f
+timeCreated: 1469184162
+licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter.meta
new file mode 100644
index 00000000..e79d587f
--- /dev/null
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 59c62150d81bb4757bbd52cc1156bfc4
+folderAsset: yes
+timeCreated: 1469184162
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35.meta
new file mode 100644
index 00000000..e57d0ff1
--- /dev/null
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 7b9728102f90f421391adc0a85886f84
+folderAsset: yes
+timeCreated: 1469184162
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.dll b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.dll
new file mode 100755
index 00000000..dcf971ca
Binary files /dev/null and b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.dll differ
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.dll.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.dll.meta
similarity index 82%
rename from Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.dll.meta
rename to Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.dll.meta
index bb7d22e1..4796d506 100644
--- a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.dll.meta
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.dll.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
-guid: 2d32648e4d82e4c3e837a7ad11352ac0
-timeCreated: 1454345354
-licenseType: Free
+guid: 38d231fdb8e284a95996ea99eb9b721f
+timeCreated: 1469184163
+licenseType: Pro
PluginImporter:
serializedVersion: 1
iconMap: {}
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.pdb b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.pdb
new file mode 100755
index 00000000..7bb15f24
Binary files /dev/null and b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.pdb differ
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.pdb.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.pdb.meta
similarity index 53%
rename from Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.pdb.meta
rename to Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.pdb.meta
index 2fb7a8cc..70491a17 100644
--- a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.pdb.meta
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.pdb.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
-guid: 45b1b1eac93b04a4a8d6ec29d4803aa9
-timeCreated: 1454345352
-licenseType: Free
+guid: 33ec89ff83a264a0fb6b4f6b219d02c1
+timeCreated: 1469184162
+licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.xml b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.xml
old mode 100644
new mode 100755
similarity index 96%
rename from Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.xml
rename to Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.xml
index 3a62e277..015c7315
--- a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.xml
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.xml
@@ -4403,6 +4403,12 @@
The ex.
+
+
+ Initializes a new instance of the class.
+
+ The ex.
+
Initializes a new instance of the class.
@@ -4416,11 +4422,6 @@
The format.
The arguments.
-
-
- Gets or sets a value indicating whether the message should not be decorated
-
-
Creates a ScriptRuntimeException with a predefined error message specifying that
@@ -4737,6 +4738,12 @@
The member descriptor.
+
+
+ Rethrows this instance if
+
+
+
Exception thrown when an inconsistent state is reached in the interpreter
@@ -4747,6 +4754,12 @@
Base type of all exceptions thrown in MoonSharp
+
+
+ Initializes a new instance of the class.
+
+ The ex.
+
Initializes a new instance of the class.
@@ -4781,6 +4794,17 @@
Gets the decorated message (error message plus error location in script) if possible.
+
+
+ Gets or sets a value indicating whether the message should not be decorated
+
+
+
+
+ Rethrows this instance if
+
+
+
Exception for all parsing/lexing errors.
@@ -4792,6 +4816,12 @@
This can be used in REPL interfaces to tell between unrecoverable errors and those which can be recovered by extra input.
+
+
+ Rethrows this instance if
+
+
+
This class is a container for arguments received by a CallbackFunction
@@ -5444,6 +5474,11 @@
Converts this MoonSharp DynValue to a CLR object.
+
+
+ Converts this MoonSharp DynValue to a CLR object of the specified type.
+
+
Converts this MoonSharp DynValue to a CLR object of the specified type.
@@ -7186,12 +7221,6 @@
Thrown if function is not of DataType.Function or DataType.ClrFunction
-
-
- Gets the main chunk function.
-
- A DynValue containing a function which executes the first chunk that has been loaded.
-
Gets or sets a value indicating whether the debugger is enabled.
@@ -7316,7 +7345,7 @@
Gets the integral key from a double.
-
+
Gets or sets the
with the specified key(s).
@@ -7326,9 +7355,7 @@
The .
- The key.
- Optional subkeys to access subtables
-
+ The keys to access the table and subtables
@@ -7341,23 +7368,22 @@
The key.
-
+
- Gets the dynvalue associated with the specified key (expressed as a System.Object)
+ Append the value to the table using the next available integer index.
- The key.
-
+ The value.
-
+
- Gets the dynvalue associated with the specified key (expressed as a System.Object) as a System.Object.
+ Sets the value associated to the specified key.
The key.
-
+ The value.
-
+
- Sets the dynvalue associated with the specified key. Both expressed as System.Object.
+ Sets the value associated to the specified key.
The key.
The value.
@@ -7369,18 +7395,19 @@
The key.
The value.
-
+
- Gets the value associated with the specified key.
+ Sets the value associated with the specified key.
The key.
-
+ The value.
-
+
- Sets the value associated to the specified key.
+ Sets the value associated with the specified keys.
+ Multiple keys can be used to access subtables.
- The key.
+ The keys.
The value.
@@ -7388,28 +7415,107 @@
Gets the value associated with the specified key.
The key.
-
-
+
- Gets the value associated with the specified key, without bringing to Nil the non-existant values.
+ Gets the value associated with the specified key.
The key.
-
-
+
- Sets the value associated to the specified key.
+ Gets the value associated with the specified key.
The key.
- The value.
-
+
Gets the value associated with the specified key.
+ (expressed as a ).
+
+ The key.
+
+
+
+ Gets the value associated with the specified keys (expressed as an
+ array of ).
+ This will marshall CLR and MoonSharp objects in the best possible way.
+ Multiple keys can be used to access subtables.
+
+ The keys to access the table and subtables
+
+
+
+ Gets the value associated with the specified key,
+ without bringing to Nil the non-existant values.
+
+ The key.
+
+
+
+ Gets the value associated with the specified key,
+ without bringing to Nil the non-existant values.
+
+ The key.
+
+
+
+ Gets the value associated with the specified key,
+ without bringing to Nil the non-existant values.
+
+ The key.
+
+
+
+ Gets the value associated with the specified key,
+ without bringing to Nil the non-existant values.
The key.
-
+
+
+
+ Gets the value associated with the specified keys (expressed as an
+ array of ).
+ This will marshall CLR and MoonSharp objects in the best possible way.
+ Multiple keys can be used to access subtables.
+
+ The keys to access the table and subtables
+
+
+
+ Remove the value associated with the specified key from the table.
+
+ The key.
+ true if values was successfully removed; otherwise, false.
+
+
+
+ Remove the value associated with the specified key from the table.
+
+ The key.
+ true if values was successfully removed; otherwise, false.
+
+
+
+ Remove the value associated with the specified key from the table.
+
+ The key.
+ true if values was successfully removed; otherwise, false.
+
+
+
+ Remove the value associated with the specified key from the table.
+
+ The key.
+ true if values was successfully removed; otherwise, false.
+
+
+
+ Remove the value associated with the specified keys from the table.
+ Multiple keys can be used to access subtables.
+
+ The key.
+ true if values was successfully removed; otherwise, false.
@@ -7657,6 +7763,12 @@
The current platform abstraction.
+
+
+ Gets or sets a value indicating whether interpreter exceptions should be
+ re-thrown as nested exceptions.
+
+
This class contains options to customize behaviour of Script objects.
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.xml.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.xml.meta
similarity index 54%
rename from Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.xml.meta
rename to Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.xml.meta
index b2713907..72a95465 100644
--- a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Interpreter.xml.meta
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/interpreter/net35/MoonSharp.Interpreter.xml.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
-guid: 894a26d5d6ca04417aef855d8dfefaf0
-timeCreated: 1454345354
-licenseType: Free
+guid: db5c496fe803241a3a5978f19312167f
+timeCreated: 1469184170
+licenseType: Pro
TextScriptImporter:
userData:
assetBundleName:
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/readme.txt b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/readme.txt
new file mode 100755
index 00000000..456051a4
--- /dev/null
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/readme.txt
@@ -0,0 +1,41 @@
+MoonSharp [http://www.moonsharp.org]
+------------------------------------
+
+This archive contains all the files required to setup MoonSharp on your machine.
+
+Contents:
+
+ - /interpreter -> The main DLL of the MoonSharp interpreter itself.
+ Use this if you want to just embed the interpreter in your application.
+
+ - /remotedebugger -> The DLL for the remote debugger facilities (plus the interpreter DLL itself).
+ Use this if you want to embed the intepreter in your application with remote debugging enabled.
+
+ - /repl -> The REPL interpreter. It's not really meant for production as much as to quickly test scripts,
+ or to compile bytecode.
+
+Each directory contains, where applyable, subdirectories for different .NET framework targets:
+
+
+- net35 :
+This is build targeting .NET 3.5 Client Framework.
+Use this if you are building an app targeting .NET 3.5 or later, Mono 2.x (or later), Xamarin or Unity 3D.
+
+- net40 :
+This is build targeting .NET 4.0 Client Framework.
+Use this if you are building an app targeting .NET 4.0 or later, Mono 3.x or Xamarin.
+
+- portable_net40 :
+This is a Portable Class Library targeting .NET 4.0, Silverlight 5, Xamarin Android, Xamarin iOS, Windows Store 8, Windows Phone 8.1
+Use this if you target these platforms. Note that some functionality (involving file system access or the remote debugger) is not available
+in this build due to limitations of PCLs.
+You also have to use this library if you target WSA/WP8 apps in Unity3D. Refer to this guide: http://docs.unity3d.com/Manual/windowsstore-plugins.html
+
+
+
+
+
+
+
+
+
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/readme.txt.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/readme.txt.meta
new file mode 100644
index 00000000..0f5cf7a9
--- /dev/null
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/readme.txt.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 55ed44903d2d1452d97cbff4e4a6ec92
+timeCreated: 1469184170
+licenseType: Pro
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger.meta
new file mode 100644
index 00000000..a74781b2
--- /dev/null
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 964bf40527d74489a864d05699e303d2
+folderAsset: yes
+timeCreated: 1469184162
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35.meta
new file mode 100644
index 00000000..a1413e13
--- /dev/null
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 821d381712dae4114b33722160cb95e0
+folderAsset: yes
+timeCreated: 1469184162
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.dll b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.dll
new file mode 100755
index 00000000..dcf971ca
Binary files /dev/null and b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.dll differ
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Hardwire.dll.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.dll.meta
similarity index 82%
rename from Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Hardwire.dll.meta
rename to Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.dll.meta
index 585584bb..cd93c67e 100644
--- a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Hardwire.dll.meta
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.dll.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
-guid: 39a7bcc4c4db443cc85a13a12555c9f7
-timeCreated: 1456222254
-licenseType: Free
+guid: 2d9170ef65b544155a44f86f61867ffb
+timeCreated: 1469184163
+licenseType: Pro
PluginImporter:
serializedVersion: 1
iconMap: {}
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.pdb b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.pdb
new file mode 100755
index 00000000..7bb15f24
Binary files /dev/null and b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.pdb differ
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Hardwire.pdb.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.pdb.meta
similarity index 53%
rename from Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Hardwire.pdb.meta
rename to Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.pdb.meta
index dd5ada10..06551369 100644
--- a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.Hardwire.pdb.meta
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.pdb.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
-guid: af73bc91714a54f6a9e72ca6770987d8
-timeCreated: 1456222253
-licenseType: Free
+guid: 4bc670b40db55451e87ed348ef88f523
+timeCreated: 1469184162
+licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.xml b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.xml
new file mode 100755
index 00000000..015c7315
--- /dev/null
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.xml
@@ -0,0 +1,7862 @@
+
+
+
+ MoonSharp.Interpreter
+
+
+
+
+ Class implementing coroutine Lua functions
+
+
+
+
+ Class implementing basic Lua functions (print, type, tostring, etc) as a MoonSharp module.
+
+
+
+
+ Class implementing debug Lua functions. Support for the debug module is partial.
+
+
+
+
+ Class implementing dynamic expression evaluations at runtime (a MoonSharp addition).
+
+
+
+
+ Class implementing error handling Lua functions (pcall and xpcall)
+
+
+
+
+ Abstract class implementing a file Lua userdata. Methods are meant to be called by Lua code.
+
+
+
+
+ Abstract class implementing a file Lua userdata. Methods are meant to be called by Lua code.
+
+
+
+
+ Abstract class implementing an unclosable file Lua userdata. Methods are meant to be called by Lua code.
+
+
+
+
+ Abstract class implementing a file Lua userdata. Methods are meant to be called by Lua code.
+
+
+
+
+ Namespace containing userdata classes for the 'io' module
+
+
+
+
+ Class implementing io Lua functions. Proper support requires a compatible IPlatformAccessor
+
+
+
+
+ Class implementing loading Lua functions like 'require', 'load', etc.
+
+
+
+
+ Class implementing bit32 Lua functions
+
+
+
+
+ Class implementing math Lua functions
+
+
+
+
+ Class implementing metatable related Lua functions (xxxmetatable and rawxxx).
+
+
+
+
+ Class implementing system related Lua functions from the 'os' module.
+ Proper support requires a compatible IPlatformAccessor
+
+
+
+
+ Class implementing time related Lua functions from the 'os' module.
+
+
+
+
+ Class implementing string Lua functions
+
+
+
+
+ Class implementing table Lua iterators (pairs, ipairs, next)
+
+
+
+
+ Class implementing table Lua functions
+
+
+
+
+ Class exposing table.unpack and table.pack in the global namespace (to work around the most common Lua 5.1 compatibility issue).
+
+
+
+
+ Namespace containing the implementation of the Lua standard library, as MoonSharp modules.
+ There's seldom the need to access these classes directly.
+
+
+
+
+ A Dictionary where multiple values can be associated to the same key
+
+ The key type
+ The value type
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The equality comparer to use in the underlying dictionary.
+
+
+
+ Adds the specified key. Returns true if this is the first value for a given key
+
+ The key.
+ The value.
+
+
+
+
+ Finds all the values associated with the specified key.
+ An empty collection is returned if not found.
+
+ The key.
+
+
+
+ Determines whether this contains the specified key
+
+ The key.
+
+
+
+ Gets the keys.
+
+
+
+
+ Clears this instance.
+
+
+
+
+ Removes the specified key and all its associated values from the multidictionary
+
+ The key.
+
+
+
+ Removes the value. Returns true if the removed value was the last of a given key
+
+ The key.
+ The value.
+
+
+
+
+ Implementation of IEqualityComparer enforcing reference equality
+
+
+
+
+ A non preallocated, non_fixed size stack
+
+
+
+
+
+ An index to accelerate operations on a LinkedList using a single key of type
+ More than one LinkedListIndex can index the same linked list, but every node in the linked list must be indexed by one and only one
+ LinkedListIndex object.
+
+ The type of the key. Must implement Equals and GetHashCode appropriately.
+ The type of the values contained in the linked list.
+
+
+
+ Initializes a new instance of the class.
+
+ The linked list to be indexed.
+
+
+
+ Finds the node indexed by the specified key, or null.
+
+ The key.
+
+
+
+ Updates or creates a new node in the linked list, indexed by the specified key.
+
+ The key.
+ The value.
+ The previous value of the element
+
+
+
+ Creates a new node in the linked list, indexed by the specified key.
+
+ The key.
+ The value.
+
+
+
+ Removes the specified key from the index, and the node indexed by the key from the linked list.
+
+ The key.
+
+
+
+ Determines whether the index contains the specified key.
+
+ The key.
+
+
+
+ Clears this instance (removes all elements)
+
+
+
+
+ Provides facility to create a "sliced" view over an existing IList
+
+ The type of the items contained in the collection
+
+
+
+ Initializes a new instance of the class.
+
+ The list to apply the Slice view on
+ From which index
+ The length of the slice
+ if set to true the view is in reversed order.
+
+
+
+ Gets or sets the element at the specified index.
+
+ The index.
+
+
+
+
+ Gets the index from which the slice starts
+
+
+
+
+ Gets the number of elements contained in the .
+
+ The number of elements contained in the .
+
+
+
+ Gets a value indicating whether this operates in a reversed direction.
+
+
+ true if this operates in a reversed direction; otherwise, false.
+
+
+
+
+ Calculates the real index in the underlying collection
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Converts to an array.
+
+
+
+
+ Converts to an list.
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+ Slices are readonly
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+ Slices are readonly
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+ Slices are readonly
+
+
+
+ Removes all items from the .
+
+ Slices are readonly
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies to.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+ Slices are readonly
+
+
+
+ A preallocated, non-resizable, stack
+
+
+
+
+
+ The scope of a closure (container of upvalues)
+
+
+
+
+ Gets the symbols.
+
+
+
+
+ Marks a property as a configruation property
+
+
+
+
+ The metamethod name (like '__div', '__ipairs', etc.)
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name for this property
+
+
+
+ Marks a method as the handler of metamethods of a userdata type
+
+
+
+
+ The metamethod name (like '__div', '__ipairs', etc.)
+
+
+
+
+ Initializes a new instance of the class.
+
+ The metamethod name (like '__div', '__ipairs', etc.)
+
+
+
+ Lists a userdata member not to be exposed to scripts referencing it by name.
+
+
+
+
+ Gets the name of the member to be hidden.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the member to hide.
+
+
+
+ Forces a class member visibility to scripts. Can be used to hide public members. Equivalent to MoonSharpVisible(false).
+
+
+
+
+ Base interface to describe access to members of a given type.
+ While it's not infrastructural to implement custom type descriptors, it's needed for
+ classes extending .
+
+
+
+
+ Gets a value indicating whether the described member is static.
+
+
+
+
+ Gets the name of the member
+
+
+
+
+ Gets the types of access supported by this member
+
+
+
+
+ Gets the value of this member as a to be exposed to scripts.
+ Implementors should raise exceptions if the value cannot be read or if access to an
+ instance member through a static userdata is attempted.
+
+ The script.
+ The object owning this member, or null if static.
+ The value of this member as a .
+
+
+
+ Sets the value of this member from a .
+ Implementors should raise exceptions if the value cannot be read or if access to an
+ instance member through a static userdata is attempted.
+
+ The script.
+ The object owning this member, or null if static.
+ The value to be set.
+
+
+
+ Extension methods for and .
+
+
+
+
+ Determines whether the specified MemberDescriptorAccess has ALL the specified flags.
+
+ The access.
+ The flag.
+
+
+
+
+ Determines whether this instance can be read
+
+ The descriptor instance.
+
+
+
+
+ Determines whether this instance can be written to
+
+ The descriptor instance.
+
+
+
+
+ Determines whether this instance can be executed (called as a function)
+
+ The descriptor instance.
+
+
+
+
+ Gets the getter of the member as a DynValue containing a callback
+
+ The descriptor instance.
+ The script.
+ The object.
+
+
+
+
+ Returns the specified descriptor if it supports all the specified access modes, otherwise returns null.
+
+ The descriptor instance.
+ The access mode(s).
+
+
+
+
+ Raises an appropriate ScriptRuntimeException if the specified access is not supported.
+ Checks are made for the MemberDescriptorAccess permissions AND for the access of instance
+ members through static userdatas.
+
+ The desc.
+ The access.
+ The object to be checked for access.
+
+
+
+ Interface for descriptors of any kind which support optimizations of their implementation according to InteropAccessMode
+ modes. This should seldom - if ever - be implemented in user code.
+
+
+
+
+ Called by standard descriptors when background optimization or preoptimization needs to be performed.
+
+
+
+
+ Specialized for members supporting overloads resolution.
+
+
+
+
+ Invokes the member from script.
+ Implementors should raise exceptions if the value cannot be executed or if access to an
+ instance member through a static userdata is attempted.
+
+ The script.
+ The object.
+ The context.
+ The arguments.
+
+
+
+
+ Gets the type which this extension method extends, null if this is not an extension method.
+
+
+
+
+ Gets the type of the arguments of the underlying CLR function
+
+
+
+
+ Gets a value indicating the type of the ParamArray parameter of a var-args function. If the function is not var-args,
+ null is returned.
+
+
+
+
+ Gets a value indicating the type of the elements of the ParamArray parameter of a var-args function. If the function is not var-args,
+ null is returned.
+
+
+
+
+ Gets a sort discriminant to give consistent overload resolution matching in case of perfectly equal scores
+
+
+
+
+ Interface for descriptors with the capability of being serialized
+ for later hardwiring.
+
+
+
+
+ Prepares the descriptor for hard-wiring.
+ The descriptor fills the passed table with all the needed data for hardwire generators to generate the appropriate code.
+
+ The table to be filled
+
+
+
+ Permissions for members access
+
+
+
+
+ The member can be read from
+
+
+
+
+ The member can be written to
+
+
+
+
+ The can be invoked
+
+
+
+
+ Descriptor of parameters used in implementations.
+
+
+
+
+ Gets the name of the parameter
+
+
+
+
+ Gets the type of the parameter
+
+
+
+
+ Gets a value indicating whether this instance has a default value.
+
+
+
+
+ Gets the default value
+
+
+
+
+ Gets a value indicating whether this instance is an out parameter
+
+
+
+
+ Gets a value indicating whether this instance is a "ref" parameter
+
+
+
+
+ Gets a value indicating whether this instance is a variable arguments param
+
+
+
+
+ Gets a value indicating whether this instance has been restricted.
+
+
+
+
+ Gets the original type of the parameter before any restriction has been applied.
+
+
+
+
+ If the type got restricted, the original type before the restriction.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ The type.
+ if set to true the parameter has default value.
+ The default value.
+ if set to true, is an out param.
+ if set to true is a ref param.
+ if set to true is variable arguments param.
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ The type.
+ if set to true the parameter has default value.
+ The default value.
+ if set to true, is an out param.
+ if set to true is a ref param.
+ if set to true is variable arguments param.
+ The type restriction, or nll.
+
+
+
+ Initializes a new instance of the class.
+
+ A ParameterInfo taken from reflection.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Restricts the type of this parameter to a tighter constraint.
+ Restrictions must be applied before the containing this
+ parameter is used in any way.
+
+ The new type.
+
+ Cannot restrict a ref/out or varargs param
+ or
+ Specified operation is not a restriction
+
+
+
+
+ Prepares the descriptor for hard-wiring.
+ The descriptor fills the passed table with all the needed data for hardwire generators to generate the appropriate code.
+
+ The table to be filled
+
+
+
+ An abstract user data descriptor which accepts members described by objects and
+ correctly dispatches to them.
+ Metamethods are also by default dispatched to operator overloads and other similar methods - see
+ .
+
+
+
+
+ The special name used by CLR for indexer getters
+
+
+
+
+ The special name used by CLR for indexer setters
+
+
+
+
+ The special name used by CLR for explicit cast conversions
+
+
+
+
+ The special name used by CLR for implicit cast conversions
+
+
+
+
+ Gets the name of the descriptor (usually, the name of the type described).
+
+
+
+
+ Gets the type this descriptor refers to
+
+
+
+
+ Gets a human readable friendly name of the descriptor
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type this descriptor refers to.
+ A friendly name for the type, or null.
+
+
+
+ Adds a member to the meta-members list.
+
+ The name of the metamethod.
+ The desc.
+
+ Thrown if a name conflict is detected and one of the conflicting members does not support overloads.
+
+
+
+
+ Adds a DynValue as a member
+
+ The name.
+ The value.
+
+
+
+ Adds a property to the member list
+
+ The name.
+ The descriptor.
+
+ Thrown if a name conflict is detected and one of the conflicting members does not support overloads.
+
+
+
+
+ Gets the member names.
+
+
+
+
+ Gets the members.
+
+
+
+
+ Finds the member with a given name. If not found, null is returned.
+
+ Name of the member.
+
+
+
+
+ Removes the member with a given name. In case of overloaded functions, all overloads are removed.
+
+ Name of the member.
+
+
+
+ Gets the meta member names.
+
+
+
+
+ Gets the meta members.
+
+
+
+
+ Finds the meta member with a given name. If not found, null is returned.
+
+ Name of the member.
+
+
+
+ Removes the meta member with a given name. In case of overloaded functions, all overloads are removed.
+
+ Name of the member.
+
+
+
+ Performs an "index" "get" operation. This tries to resolve minor variations of member names.
+
+ The script originating the request
+ The object (null if a static request is done)
+ The index.
+ If set to true, it's indexed with a name, if false it's indexed through brackets.
+
+
+
+
+ Tries to perform an indexing operation by checking newly added extension methods for the given indexName.
+
+ The script.
+ The object.
+ Member name to be indexed.
+
+
+
+
+
+ Determines whether the descriptor contains the specified member (by exact name)
+
+ Name of the member.
+
+
+
+
+ Determines whether the descriptor contains the specified member in the meta list (by exact name)
+
+ Name of the meta-member.
+
+
+
+
+ Tries to perform an indexing operation by checking methods and properties for the given indexName
+
+ The script.
+ The object.
+ Member name to be indexed.
+
+
+
+
+ Performs an "index" "set" operation. This tries to resolve minor variations of member names.
+
+ The script originating the request
+ The object (null if a static request is done)
+ The index.
+ The value to be set
+ If set to true, it's indexed with a name, if false it's indexed through brackets.
+
+
+
+
+ Tries to perform an indexing "set" operation by checking methods and properties for the given indexName
+
+ The script.
+ The object.
+ Member name to be indexed.
+ The value.
+
+
+
+
+ Converts the specified name from underscore_case to camelCase.
+ Just a wrapper over the method with the same name,
+
+ The name.
+
+
+
+
+ Converts the specified name to one with an uppercase first letter (something to Something).
+ Just a wrapper over the method with the same name,
+
+ The name.
+
+
+
+
+ Converts this userdata to string
+
+ The object.
+
+
+
+
+ Executes the specified indexer method.
+
+ The method descriptor
+ The script.
+ The object.
+ The indexer parameter
+ The dynvalue to set on a setter, or null.
+
+
+
+
+
+ Gets a "meta" operation on this userdata. If a descriptor does not support this functionality,
+ it should return "null" (not a nil).
+ See for further details.
+
+ If a method exists marked with for the specific
+ metamethod requested, that method is returned.
+
+ If the above fails, the following dispatching occur:
+
+ __add, __sub, __mul, __div, __mod and __unm are dispatched to C# operator overloads (if they exist)
+ __eq is dispatched to System.Object.Equals.
+ __lt and __le are dispatched IComparable.Compare, if the type implements IComparable or IComparable{object}
+ __len is dispatched to Length and Count properties, if those exist.
+ __iterator is handled if the object implements IEnumerable or IEnumerator.
+ __tonumber is dispatched to implicit or explicit conversion operators to standard numeric types.
+ __tobool is dispatched to an implicit or explicit conversion operator to bool. If that fails, operator true is used.
+
+ The script originating the request
+ The object (null if a static request is done)
+ The name of the metamember.
+
+
+
+
+
+ Determines whether the specified object is compatible with the specified type.
+ Unless a very specific behaviour is needed, the correct implementation is a
+ simple " return type.IsInstanceOfType(obj); "
+
+ The type.
+ The object.
+
+
+
+
+ Tries to convert a CLR object to a MoonSharp value, using "simple" logic.
+ Does NOT throw on failure.
+
+
+
+
+ Tries to convert a CLR object to a MoonSharp value, using more in-depth analysis
+
+
+
+
+ Converts an IEnumerable or IEnumerator to a DynValue
+
+ The script.
+ The object.
+
+
+
+
+ Static functions to handle conversions of numeric types
+
+
+
+
+ HashSet of numeric types
+
+
+
+
+ Array of numeric types in order used for some conversions
+
+
+
+
+ Converts a double to another type
+
+
+
+
+ Converts a type to double
+
+
+
+
+ Converts a DynValue to a CLR object [simple conversion]
+
+
+
+
+ Converts a DynValue to a CLR object of a specific type
+
+
+
+
+ Gets a relative weight of how much the conversion is matching the given types.
+ Implementation must follow that of DynValueToObjectOfType.. it's not very DRY in that sense.
+ However here we are in perf-sensitive path.. TODO : double-check the gain and see if a DRY impl is better.
+
+
+
+
+ Converts an IList to a Lua table.
+
+
+
+
+ Converts an IDictionary to a Lua table.
+
+
+
+
+ Determines whether the specified table can be converted to the specified type
+
+ The table.
+ The type.
+
+
+
+
+ Converts a table to a CLR object of a given type
+
+
+
+
+ Converts a table to a
+
+
+
+
+ Converts a table to a T[]
+
+
+
+
+ Converts a table to a
+
+
+
+
+ Converts a table to a , known in advance
+
+
+
+
+ Converts a table to a Dictionary, known in advance
+
+
+
+
+ A collection of custom converters between MoonSharp types and CLR types.
+ If a converter function is not specified or returns null, the standard conversion path applies.
+
+
+
+
+ Sets a custom converter from a script data type to a CLR data type. Set null to remove a previous custom converter.
+
+ The script data type
+ The CLR data type.
+ The converter, or null.
+
+
+
+ Gets a custom converter from a script data type to a CLR data type, or null
+
+ The script data type
+ The CLR data type.
+ The converter function, or null if not found
+
+
+
+ Sets a custom converter from a CLR data type. Set null to remove a previous custom converter.
+
+ The CLR data type.
+ The converter, or null.
+
+
+
+ Sets a custom converter from a CLR data type. Set null to remove a previous custom converter.
+
+ The CLR data type.
+ The converter, or null.
+
+
+
+ Gets a custom converter from a CLR data type, or null
+
+ Type of the color data.
+ The converter function, or null if not found
+
+
+
+
+ Sets a custom converter from a CLR data type. Set null to remove a previous custom converter.
+
+ The CLR data type.
+ The converter, or null.
+
+
+
+ Removes all converters.
+
+
+
+
+ Helper extension methods used to simplify some parts of userdata descriptor implementations
+
+
+
+
+ Determines whether a
+ or a is changing visibility of a member
+ to scripts.
+
+ The member to check.
+
+ true if visibility is forced visible,
+ false if visibility is forced hidden or the specified MemberInfo is null,
+ if no attribute was found
+
+ If both MoonSharpHiddenAttribute and MoonSharpVisibleAttribute are specified and they convey different messages.
+
+
+
+ Gets the visibility of the type as a string
+
+
+
+
+ Gets a string representing visibility of the given member type
+
+
+
+
+ Gets a string representing visibility of the given member type
+
+
+
+
+ Gets a string representing visibility of the given member type
+
+
+
+
+ Determines whether the specified PropertyInfo is visible publicly (either the getter or the setter is public).
+
+ The PropertyInfo.
+
+
+
+
+ Gets the list of metamethod names from attributes - in practice the list of metamethods declared through
+ .
+
+ The mi.
+
+
+
+
+ Gets the Types implemented in the assembly, catching the ReflectionTypeLoadException just in case..
+
+ The assebly
+
+
+
+
+ Gets the name of a conversion method to be exposed to Lua scripts
+
+ The type.
+
+
+
+
+ Gets all implemented types by a given type
+
+ The t.
+
+
+
+
+ Determines whether the string is a valid simple identifier (starts with letter or underscore
+ and contains only letters, digits and underscores).
+
+
+
+
+ Converts the string to a valid simple identifier (starts with letter or underscore
+ and contains only letters, digits and underscores).
+
+
+
+
+ Converts the specified name from underscore_case to camelCase.
+
+ The name.
+
+
+
+
+ Converts the specified name to one with an uppercase first letter (something to Something).
+
+ The name.
+
+
+
+
+ An interface for type descriptors having the ability to generate other descriptors on the fly.
+
+
+
+
+
+ Generates a new descriptor for the specified type.
+
+ The purpose is to allow a mechanism by which a type descriptor can replace itself with another
+ descriptor for a specific type. For example, descriptors can be created on the fly to support
+ generic types through this mechanism.
+
+ The return value should be:
+ null - if this descriptor is simply skipped for the specified type
+ this - acts as if the descriptor was a vanilla descriptor
+ a new descriptor - if a new descriptor should be used in place of this one
+
+ It's recommended that instances of descriptors are cached for future references. One possible way,
+ to do the caching is to have the generator register the descriptor through .
+ In that case, it should query whether the type is exactly registered, through
+
+ NOTE-1 : the search for descriptors does NOT stop with the descriptor returned by this type, but
+ other descriptors (e.g. for interfaces) might still be added.
+
+ NOTE-2 : the descriptor generation mechanism is not triggered on an exact match of types.
+
+ NOTE-3 : the method is called in the context of a lock over the descriptors registry so no unpredictable changes to the
+ registry can come from other threads during the execution of this method. However this method should not take other
+ locks, to avoid deadlocks.
+
+
+ The type.
+ Null, this object instance or a new descriptor.
+
+
+
+ Utility class which may be used to set properties on an object of type T, from values contained in a Lua table.
+ Properties must be decorated with the .
+ This is a generic version of .
+
+ The type of the object.
+
+
+
+ Initializes a new instance of the class.
+
+ The expected missing properties, that is expected fields in the table with no corresponding property in the object.
+
+
+
+ Adds an expected missing property, that is an expected field in the table with no corresponding property in the object.
+
+ The name.
+
+
+
+ Assigns properties from tables to an object.
+
+ The object.
+ The table.
+ Object is null
+ A field does not correspond to any property and that property is not one of the expected missing ones.
+
+
+
+ Gets the type-unsafe assigner corresponding to this object.
+
+
+
+
+
+ Sets the subassigner for the given type. Pass null to remove usage of subassigner for the given type.
+
+ Type of the property for which the subassigner will be used.
+ The property assigner.
+
+
+
+ Sets the subassigner for the given type
+
+ Type of the property for which the subassigner will be used.
+ The property assigner.
+
+
+
+ Assigns the properties of the specified object without checking the type.
+
+ The object.
+ The data.
+
+
+
+ Utility class which may be used to set properties on an object from values contained in a Lua table.
+ Properties must be decorated with the .
+ See for a generic compile time type-safe version.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type of the object.
+ The expected missing properties, that is expected fields in the table with no corresponding property in the object.
+
+ Type cannot be a value type.
+
+
+
+
+ Adds an expected missing property, that is an expected field in the table with no corresponding property in the object.
+
+ The name.
+
+
+
+ Assigns properties from tables to an object.
+
+ The object.
+ The table.
+ Object is null
+ The object is of an incompatible type.
+ A field does not correspond to any property and that property is not one of the expected missing ones.
+
+
+
+ Sets the subassigner for the given type. Pass null to remove usage of subassigner for the given type.
+
+ Type of the property for which the subassigner will be used.
+ The property assigner.
+
+
+
+ Assigns the properties of the specified object without checking the type.
+
+ The object.
+ The data.
+
+
+
+ Common interface for property assigners - basically used for sub-assigners
+
+
+
+
+ Assigns the properties of the specified object without checking the type.
+
+ The object.
+ The data.
+
+
+
+ Implementation of IProxyFactory taking two delegates for simple instancing of proxies.
+
+ The type of the proxy.
+ The type of the target.
+
+
+
+ Initializes a new instance of the class.
+
+ The proxy.
+ The deproxy.
+
+
+
+ Takes an instance of a target object and returns a proxy object wrapping it
+
+
+
+
+ Takes an instance of a target object and returns a proxy object wrapping it
+
+
+
+
+
+
+ Gets the proxied type
+
+
+
+
+
+ Gets the proxy type
+
+
+
+
+ Interface for proxy objects (type unsafe version)
+
+
+
+
+ Takes an instance of a target object and returns a proxy object wrapping it
+
+
+
+
+ Gets the proxied type
+
+
+
+
+ Gets the proxy type
+
+
+
+
+ Interface for proxy objects (type safe version)
+
+ The type of the proxy.
+ The type of the target.
+
+
+
+ Takes an instance of a target object and returns a proxy object wrapping it
+
+
+
+
+ Helps identifying a reflection special name
+
+
+
+
+ Class helping identifying special names found with reflection
+
+
+
+
+ Similar to , but with automatic type registration is disabled.
+
+
+
+
+ Allows type automatic registration for the specified type.
+ NOTE: automatic type registration is NOT recommended.
+
+ The type.
+
+ True to register the type automatically, false otherwise.
+
+
+
+
+ The default registration policy used by MoonSharp unless explicitely replaced.
+ Deregistrations are allowed, but registration of a new descriptor are not allowed
+ if a descriptor is already registered for that type.
+
+ Automatic type registration is disabled.
+
+
+
+
+ Called to handle the registration or deregistration of a type descriptor. Must return the type descriptor to be registered, or null to remove the registration.
+
+ The new descriptor, or null if this is a deregistration.
+ The old descriptor, or null if no descriptor was previously registered for this type.
+
+
+
+
+ Allows type automatic registration for the specified type.
+ NOTE: automatic type registration is NOT recommended.
+
+ The type.
+
+ True to register the type automatically, false otherwise.
+
+
+
+
+ A registration policy which makes registration permanent and not deletable.
+ Deregistrations are not allowed and registrations of a new descriptor are not allowed
+ if a descriptor is already registered for that type.
+
+
+
+
+ Called to handle the registration or deregistration of a type descriptor. Must return the type descriptor to be registered, or null to remove the registration.
+
+ The new descriptor, or null if this is a deregistration.
+ The old descriptor, or null if no descriptor was previously registered for this type.
+
+
+
+
+ Allows type automatic registration for the specified type.
+ NOTE: automatic type registration is NOT recommended.
+
+ The type.
+
+ True to register the type automatically, false otherwise.
+
+
+
+
+
+ Interface for managing how to handle
+
+
+
+
+ Called to handle the registration or deregistration of a type descriptor. Must return the type descriptor to be registered, or null to remove the registration.
+
+ The new descriptor, or null if this is a deregistration.
+ The old descriptor, or null if no descriptor was previously registered for this type.
+
+
+
+
+ Allows type automatic registration for the specified type.
+ NOTE: automatic type registration is NOT recommended.
+
+ The type.
+ True to register the type automatically, false otherwise.
+
+
+
+ Member descriptor for indexer of array types
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ if set to true is a setter indexer.
+ The indexer parameters.
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ if set to true [is setter].
+
+
+
+ Prepares the descriptor for hard-wiring.
+ The descriptor fills the passed table with all the needed data for hardwire generators to generate the appropriate code.
+
+ The table to be filled
+
+
+
+ Data descriptor used for proxy objects
+
+
+
+
+ Gets the descriptor which describes the proxy object
+
+
+
+
+ Gets the name of the descriptor (usually, the name of the type described).
+
+
+
+
+ Gets the type this descriptor refers to
+
+
+
+
+ Proxies the specified object.
+
+ The object.
+
+
+
+
+ Performs an "index" "get" operation.
+
+ The script originating the request
+ The object (null if a static request is done)
+ The index.
+ If set to true, it's indexed with a name, if false it's indexed through brackets.
+
+
+
+
+ Performs an "index" "set" operation.
+
+ The script originating the request
+ The object (null if a static request is done)
+ The index.
+ The value to be set
+ If set to true, it's indexed with a name, if false it's indexed through brackets.
+
+
+
+
+ Converts this userdata to string
+
+ The object.
+
+
+
+
+ Gets a "meta" operation on this userdata. If a descriptor does not support this functionality,
+ it should return "null" (not a nil).
+ These standard metamethods can be supported (the return value should be a function accepting the
+ classic parameters of the corresponding metamethod):
+ __add, __sub, __mul, __div, __div, __pow, __unm, __eq, __lt, __le, __lt, __len, __concat,
+ __pairs, __ipairs, __iterator, __call
+ These standard metamethods are supported through other calls for efficiency:
+ __index, __newindex, __tostring
+
+ The script originating the request
+ The object (null if a static request is done)
+ The name of the metamember.
+
+
+
+
+ Determines whether the specified object is compatible with the specified type.
+ Unless a very specific behaviour is needed, the correct implementation is a
+ simple " return type.IsInstanceOfType(obj); "
+
+ The type.
+ The object.
+
+
+
+
+ Member descriptor which allows to define new members which behave similarly to class instance members
+
+
+
+
+ Initializes a new instance of the class.
+ A new member descriptor is defined, which is a function taking no parameters and returning void, doing nothing.
+
+ Name of the function.
+
+
+
+ Initializes a new instance of the class.
+ The function described by descriptors created by this callback are defined as if they take no parameters
+ and thus don't support overload resolution well (unless they really take no parameters) but can freely be
+ used if no overload resolution is required.
+
+ Name of the function.
+ The callback function.
+
+
+
+ Initializes a new instance of the class.
+ Members defined with this constructor will support overload resolution.
+
+ Name of the function.
+ The call back.
+ The parameters.
+
+
+
+ The internal callback which actually executes the method
+
+ The script.
+ The object.
+ The context.
+ The arguments.
+
+
+
+
+ Class providing easier marshalling of CLR functions
+
+
+
+
+ Gets a value indicating whether the described method is static.
+
+
+
+
+ Gets the name of the described method
+
+
+
+
+ Gets a sort discriminant to give consistent overload resolution matching in case of perfectly equal scores
+
+
+
+
+ Gets the type of the arguments of the underlying CLR function
+
+
+
+
+ Gets the type which this extension method extends, null if this is not an extension method.
+
+
+
+
+ Gets a value indicating the type of the ParamArray parameter of a var-args function. If the function is not var-args,
+ null is returned.
+
+
+
+
+ Gets a value indicating the type of the elements of the ParamArray parameter of a var-args function. If the function is not var-args,
+ null is returned.
+
+
+
+
+ Initializes this instance.
+ This *MUST* be called by the constructors extending this class to complete initialization.
+
+ Name of the function.
+ if set to true [is static].
+ The parameters.
+ if set to true [is extension method].
+
+
+
+ Gets a callback function as a delegate
+
+ The script for which the callback must be generated.
+ The object (null for static).
+
+
+
+
+ Gets the callback function.
+
+ The script for which the callback must be generated.
+ The object (null for static).
+
+
+
+
+ Gets the callback function as a DynValue.
+
+ The script for which the callback must be generated.
+ The object (null for static).
+
+
+
+
+ Creates a callback DynValue starting from a MethodInfo.
+
+ The script.
+ The mi.
+ The object.
+
+
+
+
+ Builds the argument list.
+
+ The script.
+ The object.
+ The context.
+ The arguments.
+ Output: A list containing the indices of all "out" parameters, or null if no out parameters are specified.
+ The arguments, appropriately converted.
+
+
+
+ Builds the return value of a call
+
+ The script.
+ The out parameters indices, or null. See .
+ The parameters passed to the function.
+ The return value from the function. Use DynValue.Void if the function returned no value.
+ A DynValue to be returned to scripts
+
+
+
+ The internal callback which actually executes the method
+
+ The script.
+ The object.
+ The context.
+ The arguments.
+
+
+
+
+ Gets the types of access supported by this member
+
+
+
+
+ Gets the value of this member as a to be exposed to scripts.
+
+ The script.
+ The object owning this member, or null if static.
+
+ The value of this member as a .
+
+
+
+
+ Sets the value.
+
+ The script.
+ The object.
+ The v.
+
+
+
+
+ Standard descriptor for Enum values
+
+
+
+
+ Gets the underlying type of the enum.
+
+
+
+
+ Gets a value indicating whether underlying type of the enum is unsigned.
+
+
+
+
+ Gets a value indicating whether this instance describes a flags enumeration.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the enum.
+ Name of the friendly.
+ enumType must be an enum!
+
+
+
+ Fills the member list.
+
+
+
+
+ Adds an enum method to the object
+
+ The name.
+ The dyn value.
+
+
+
+ Gets the value of the enum as a long
+
+
+
+
+ Gets the value of the enum as a ulong
+
+
+
+
+ Creates an enum value from a long
+
+
+
+
+ Creates an enum value from a ulong
+
+
+
+
+ Creates conversion functions for signed enums
+
+
+
+
+ Creates conversion functions for unsigned enums
+
+
+
+
+ Determines whether the specified object is compatible with the specified type.
+
+ The type.
+ The object.
+
+
+
+
+ Gets a "meta" operation on this userdata.
+ In this specific case, only the concat operator is supported, only on flags enums and it implements the
+ 'or' operator.
+
+
+
+
+
+
+
+
+ Class providing a simple descriptor for constant DynValues in userdata
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ A string containing a table whose first member is the dynvalue to be deserialized (convoluted...).
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ The value.
+
+
+
+ Gets a value indicating whether the described member is static.
+
+
+
+
+ Gets the name of the member
+
+
+
+
+ Gets the types of access supported by this member
+
+
+
+
+ Gets the value wrapped by this descriptor
+
+
+
+
+ Gets the value of this member as a to be exposed to scripts.
+
+ The script.
+ The object owning this member, or null if static.
+
+ The value of this member as a .
+
+
+
+
+ Sets the value of this member from a .
+
+ The script.
+ The object owning this member, or null if static.
+ The value to be set.
+ userdata '{0}' cannot be written to.
+
+
+
+ Prepares the descriptor for hard-wiring.
+ The descriptor fills the passed table with all the needed data for hardwire generators to generate the appropriate code.
+
+ The table to be filled
+
+
+
+ Class providing easier marshalling of CLR events. Handling is limited to a narrow range of handler signatures, which,
+ however, covers in practice most of all available events.
+
+
+
+
+ The maximum number of arguments supported in an event handler delegate
+
+
+
+
+ Tries to create a new StandardUserDataEventDescriptor, returning null in case the method is not
+ visible to script code.
+
+ The EventInfo.
+ The
+ A new StandardUserDataEventDescriptor or null.
+
+
+
+ Checks if the event is compatible with a standard descriptor
+
+ The EventInfo.
+ if set to true an exception with the proper error message is thrown if not compatible.
+
+
+ Thrown if throwException is true and one of this applies:
+ The event is declared in a value type
+ or
+ The event does not have both add and remove methods
+ or
+ The event handler type doesn't implement a public Invoke method
+ or
+ The event handler has a return type which is not System.Void
+ or
+ The event handler has more than MAX_ARGS_IN_DELEGATE parameters
+ or
+ The event handler has a value type parameter or a by ref parameter
+ or
+ The event handler signature is not a valid method according to
+
+
+
+
+ Initializes a new instance of the class.
+
+ The ei.
+ The access mode.
+
+
+
+ Gets the EventInfo object of the event described by this descriptor
+
+
+
+
+ Gets a value indicating whether the event described by this descriptor is static.
+
+
+
+
+ Gets a dynvalue which is a facade supporting add/remove methods which is callable from scripts
+
+ The script.
+ The object for which the facade should be written.
+
+
+
+
+ Gets the name of the member
+
+
+
+
+ Gets the types of access supported by this member
+
+
+
+
+ Sets the value.
+
+ The script.
+ The object.
+ The v.
+
+
+
+ Class providing easier marshalling of overloaded CLR functions
+
+
+
+
+ Comparer class for IOverloadableMemberDescriptor
+
+
+
+
+ Gets or sets a value indicating whether this instance ignores extension methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ The declaring type.
+ The descriptor of the first overloaded method.
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ The declaring type.
+ The descriptors of the overloaded methods.
+
+
+
+ Sets the extension methods snapshot.
+
+ The version.
+ The ext methods.
+
+
+
+ Gets the name of the first described overload
+
+
+
+
+ Gets the name of the first described overload
+
+
+
+
+ Adds an overload.
+
+ The overload.
+
+
+
+ Gets the number of overloaded methods contained in this collection
+
+
+ The overload count.
+
+
+
+
+ Performs the overloaded call.
+
+ The script.
+ The object.
+ The context.
+ The arguments.
+
+ function call doesn't match any overload
+
+
+
+ Calculates the score for the overload.
+
+ The context.
+ The arguments.
+ The method.
+ if set to true, is an extension method.
+
+
+
+
+ Gets a callback function as a delegate
+
+ The script for which the callback must be generated.
+ The object (null for static).
+
+
+
+
+ Gets the callback function.
+
+ The script for which the callback must be generated.
+ The object (null for static).
+
+
+
+
+ Gets a value indicating whether there is at least one static method in the resolution list
+
+
+
+
+
+ Gets the types of access supported by this member
+
+
+
+
+ Gets the value of this member as a to be exposed to scripts.
+
+ The script.
+ The object owning this member, or null if static.
+
+ The value of this member as a .
+
+
+
+
+ Sets the value of this member from a .
+
+ The script.
+ The object owning this member, or null if static.
+ The value to be set.
+
+
+
+
+ Prepares the descriptor for hard-wiring.
+ The descriptor fills the passed table with all the needed data for hardwire generators to generate the appropriate code.
+
+ The table to be filled
+
+
+
+ Class providing easier marshalling of CLR fields
+
+
+
+
+ Gets the FieldInfo got by reflection
+
+
+
+
+ Gets the
+
+
+
+
+ Gets a value indicating whether the described property is static.
+
+
+
+
+ Gets the name of the property
+
+
+
+
+ Gets a value indicating whether this instance is a constant
+
+
+
+
+ Gets a value indicating whether this instance is readonly
+
+
+
+
+ Tries to create a new StandardUserDataFieldDescriptor, returning null in case the field is not
+ visible to script code.
+
+ The FieldInfo.
+ The
+ A new StandardUserDataFieldDescriptor or null.
+
+
+
+ Initializes a new instance of the class.
+
+ The FieldInfo.
+ The
+
+
+
+ Gets the value of the property
+
+ The script.
+ The object.
+
+
+
+
+ Sets the value of the property
+
+ The script.
+ The object.
+ The value to set.
+
+
+
+ Gets the types of access supported by this member
+
+
+
+
+ Prepares the descriptor for hard-wiring.
+ The descriptor fills the passed table with all the needed data for hardwire generators to generate the appropriate code.
+
+ The table to be filled
+
+
+
+ Member descriptor for the default constructor of value types.
+
+
+
+
+ Gets a value indicating whether the described method is static.
+
+
+
+
+ Gets the name of the described method
+
+
+
+
+ This property is equal to the value type to be constructed.
+
+
+
+
+ Gets the type of the arguments of the underlying CLR function
+
+
+
+
+ Gets the type which this extension method extends, null if this is not an extension method.
+
+
+
+
+ Gets a value indicating the type of the ParamArray parameter of a var-args function. If the function is not var-args,
+ null is returned.
+
+
+
+
+ Gets a value indicating the type of the elements of the ParamArray parameter of a var-args function. If the function is not var-args,
+ null is returned.
+
+
+
+
+ Initializes a new instance of the
+ class
+ representing the default empty ctor for a value type.
+
+ Type of the value.
+ valueType is not a value type
+
+
+
+ Invokes the member from script.
+ Implementors should raise exceptions if the value cannot be executed or if access to an
+ instance member through a static userdata is attempted.
+
+ The script.
+ The object.
+ The context.
+ The arguments.
+
+
+
+
+ Gets a sort discriminant to give consistent overload resolution matching in case of perfectly equal scores
+
+
+
+
+ Gets the types of access supported by this member
+
+
+
+
+ Gets the value of this member as a
+ to be exposed to scripts.
+ Implementors should raise exceptions if the value cannot be read or if access to an
+ instance member through a static userdata is attempted.
+
+ The script.
+ The object owning this member, or null if static.
+
+ The value of this member as a .
+
+
+
+
+ Sets the value of this member from a
+ .
+ Implementors should raise exceptions if the value cannot be read or if access to an
+ instance member through a static userdata is attempted.
+
+ The script.
+ The object owning this member, or null if static.
+ The value to be set.
+
+
+
+ Prepares the descriptor for hard-wiring.
+ The descriptor fills the passed table with all the needed data for hardwire generators to generate the appropriate code.
+
+ The table to be filled
+
+
+
+ Standard user data descriptor used to instantiate generics.
+
+
+
+
+ Gets the interop access mode this descriptor uses for members access
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type this descriptor refers to.
+ The interop access mode this descriptor uses for members access
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Registry of all extension methods. Use UserData statics to access these.
+
+
+
+
+ Registers an extension Type (that is a type containing extension methods)
+
+ The type.
+ The InteropAccessMode.
+
+
+
+ Gets all the extension methods which can match a given name
+
+ The name.
+
+
+
+
+ Gets a number which gets incremented everytime the extension methods registry changes.
+ Use this to invalidate caches based on extension methods
+
+
+
+
+
+ Gets all the extension methods which can match a given name and extending a given Type
+
+ The name.
+ The extended type.
+
+
+
+
+ Registry of all type descriptors. Use UserData statics to access these.
+
+
+
+
+ Registers all types marked with a MoonSharpUserDataAttribute that ar contained in an assembly.
+
+ The assembly.
+ if set to true extension types are registered to the appropriate registry.
+
+
+
+ Determines whether the specified type is registered. Note that this should be used only to check if a descriptor
+ has been registered EXACTLY. For many types a descriptor can still be created, for example through the descriptor
+ of a base type or implemented interfaces.
+
+ The type
+
+
+
+
+ Unregisters a type.
+ WARNING: unregistering types at runtime is a dangerous practice and may cause unwanted errors.
+ Use this only for testing purposes or to re-register the same type in a slightly different way.
+ Additionally, it's a good practice to discard all previous loaded scripts after calling this method.
+
+ The The type to be unregistered
+
+
+
+ Gets or sets the default access mode to be used in the whole application
+
+
+ The default access mode.
+
+ InteropAccessMode is InteropAccessMode.Default
+
+
+
+ Registers a proxy type.
+
+ The proxy factory.
+ The access mode.
+ Name of the friendly.
+
+
+
+
+ Registers a type
+
+ The type.
+ The access mode (used only if a default type descriptor is created).
+ Friendly name of the descriptor.
+ The descriptor, or null to use a default one.
+
+
+
+
+ Resolves the default type of the access mode for the given type
+
+ The access mode.
+ The type.
+
+
+
+
+ Gets the best possible type descriptor for a specified CLR type.
+
+ The CLR type for which the descriptor is desired.
+ if set to true interfaces are used in the search.
+
+
+
+
+ Determines whether the specified type is blacklisted.
+ Blacklisted types CANNOT be registered using default descriptors but they can still be registered
+ with custom descriptors. Forcing registration of blacklisted types in this way can introduce
+ side effects.
+
+ The t.
+
+
+
+
+ Gets the list of registered types.
+
+
+ The registered types.
+
+
+
+
+ Gets the list of registered types, including unregistered types.
+
+
+ The registered types.
+
+
+
+
+ Gets or sets the registration policy.
+
+
+
+
+ Collection of the standard policies to handle UserData type registrations.
+ Provided mostly for compile-time backward compatibility with old code.
+ See also : .
+
+
+
+
+ The default registration policy used by MoonSharp unless explicitely replaced.
+ Deregistrations are allowed, but registration of a new descriptor are not allowed
+ if a descriptor is already registered for that type.
+
+ Types must be explicitly registered.
+
+
+
+
+ The default registration policy used by MoonSharp unless explicitely replaced.
+ Deregistrations are allowed, but registration of a new descriptor are not allowed
+ if a descriptor is already registered for that type.
+
+ Types must be explicitly registered.
+
+
+
+
+ Types are automatically registered if not found in the registry. This is easier to use but potentially unsafe.
+
+
+
+
+ As a convenience, every type deriving from IUserDataType is "self-described". That is, no descriptor is needed/generated
+ and the object itself is used to describe the type for interop. See also ,
+ and .
+
+
+
+
+ Performs an "index" "get" operation.
+
+ The script originating the request
+ The index.
+ If set to true, it's indexed with a name, if false it's indexed through brackets.
+
+
+
+
+ Performs an "index" "set" operation.
+
+ The script originating the request
+ The index.
+ The value to be set
+ If set to true, it's indexed with a name, if false it's indexed through brackets.
+
+
+
+
+
+ Gets a "meta" operation on this userdata. If a descriptor does not support this functionality,
+ it should return "null" (not a nil).
+
+ These standard metamethods can be supported (the return value should be a function accepting the
+ classic parameters of the corresponding metamethod):
+ __add, __sub, __mul, __div, __div, __pow, __unm, __eq, __lt, __le, __lt, __len, __concat,
+ __pairs, __ipairs, __iterator, __call
+
+ These standard metamethods are supported through other calls for efficiency:
+ __index, __newindex, __tostring
+
+
+ The script originating the request
+ The name of the metamember.
+
+
+
+
+ Internal type used by for registration
+
+
+
+
+ Wrapper which allows for easier management of userdata without registering a new userdata type - useful
+ if a type which is not exposed to scripts but can be managed as a "black box" by scripts is desired.
+
+ The type to wrap
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The o.
+
+
+
+ Gets or sets the value this instance wraps.
+
+
+
+
+ Interface used by MoonSharp to access objects of a given type from scripts.
+
+
+
+
+ Gets the name of the descriptor (usually, the name of the type described).
+
+
+
+
+ Gets the type this descriptor refers to
+
+
+
+
+ Performs an "index" "get" operation.
+
+ The script originating the request
+ The object (null if a static request is done)
+ The index.
+ If set to true, it's indexed with a name, if false it's indexed through brackets.
+
+
+
+
+ Performs an "index" "set" operation.
+
+ The script originating the request
+ The object (null if a static request is done)
+ The index.
+ The value to be set
+ If set to true, it's indexed with a name, if false it's indexed through brackets.
+
+
+
+
+ Converts this userdata to string
+
+ The object.
+
+
+
+
+
+ Gets a "meta" operation on this userdata. If a descriptor does not support this functionality,
+ it should return "null" (not a nil).
+
+ These standard metamethods can be supported (the return value should be a function accepting the
+ classic parameters of the corresponding metamethod):
+ __add, __sub, __mul, __div, __div, __pow, __unm, __eq, __lt, __le, __lt, __len, __concat,
+ __pairs, __ipairs, __iterator, __call
+
+ These standard metamethods are supported through other calls for efficiency:
+ __index, __newindex, __tostring
+
+
+ The script originating the request
+ The object (null if a static request is done)
+ The name of the metamember.
+
+
+
+
+ Determines whether the specified object is compatible with the specified type.
+ Unless a very specific behaviour is needed, the correct implementation is a
+ simple " return type.IsInstanceOfType(obj); "
+
+ The type.
+ The object.
+
+
+
+
+ Classes using the classic interface should inherit from this class.
+ This class defines only static methods and is really meant to be used only
+ from C# and not other .NET languages.
+
+ For easier operation they should also define:
+ using ptrdiff_t = System.Int32;
+ using lua_Integer = System.Int32;
+ using LUA_INTFRM_T = System.Int64;
+ using UNSIGNED_LUA_INTFRM_T = System.UInt64;
+
+
+
+
+ Calls a function.
+ To call a function you must use the following protocol: first, the function to be called is pushed onto the stack; then,
+ the arguments to the function are pushed in direct order; that is, the first argument is pushed first. Finally you call
+ lua_call; nargs is the number of arguments that you pushed onto the stack. All arguments and the function value are
+ popped from the stack when the function is called. The function results are pushed onto the stack when the function
+ returns. The number of results is adjusted to nresults, unless nresults is LUA_MULTRET. In this case, all results from
+ the function are pushed. Lua takes care that the returned values fit into the stack space. The function results are
+ pushed onto the stack in direct order (the first result is pushed first), so that after the call the last result is on
+ the top of the stack.
+
+ The LuaState
+ The number of arguments.
+ The number of expected results.
+
+
+
+
+ Determines whether the specified value is of numeric type.
+
+ The object to check.
+
+ true if o is a numeric type; otherwise, false.
+
+
+
+
+ Determines whether the specified value is positive.
+
+ The value.
+ if set to true treats 0 as positive.
+
+ true if the specified value is positive; otherwise, false.
+
+
+
+
+ Converts the specified values boxed type to its correpsonding unsigned
+ type.
+
+ The value.
+ A boxed numeric object whos type is unsigned.
+
+
+
+ Converts the specified values boxed type to its correpsonding integer
+ type.
+
+ The value.
+ if set to true [round].
+
+ A boxed numeric object whos type is an integer type.
+
+
+
+
+ Replaces the string representations of meta chars with their corresponding
+ character values.
+
+ The input.
+ A string with all string meta chars are replaced
+
+
+
+
+
+
+
+
+ Namespace containing classes used to provide a minimal support for porting code based on the classic
+ "LuaState" model (e.g. code based on KopiLua, UniLua or Lua itself).
+
+
+
+
+ Wrappers for enumerables as return types
+
+
+
+
+ Forces a class member visibility to scripts. Can be used to hide public members or to expose non-public ones.
+
+
+
+
+ Gets a value indicating whether this is set to "visible".
+
+
+
+
+ Initializes a new instance of the class.
+
+ if set to true the member will be exposed to scripts, if false the member will be hidden.
+
+
+
+ A user data descriptor which aggregates multiple descriptors and tries dispatching members
+ on them, in order.
+
+ Used, for example, for objects implementing multiple interfaces but for which no descriptor is
+ specifically registered.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The descriptors.
+ The type.
+
+
+
+ Gets the descriptors aggregated by this object, allowing changes to the descriptor list
+
+
+
+
+ Gets the name of the descriptor (usually, the name of the type described).
+
+
+
+
+ Gets the type this descriptor refers to
+
+
+
+
+ Performs an "index" "get" operation.
+
+ The script originating the request
+ The object (null if a static request is done)
+ The index.
+ If set to true, it's indexed with a name, if false it's indexed through brackets.
+
+
+
+
+ Performs an "index" "set" operation.
+
+ The script originating the request
+ The object (null if a static request is done)
+ The index.
+ The value to be set
+ If set to true, it's indexed with a name, if false it's indexed through brackets.
+
+
+
+
+ Converts this userdata to string
+
+ The object.
+
+
+
+
+ Gets a "meta" operation on this userdata. If a descriptor does not support this functionality,
+ it should return "null" (not a nil).
+ These standard metamethods can be supported (the return value should be a function accepting the
+ classic parameters of the corresponding metamethod):
+ __add, __sub, __mul, __div, __div, __pow, __unm, __eq, __lt, __le, __lt, __len, __concat,
+ __pairs, __ipairs, __iterator, __call
+ These standard metamethods are supported through other calls for efficiency:
+ __index, __newindex, __tostring
+
+ The script originating the request
+ The object (null if a static request is done)
+ The name of the metamember.
+
+
+
+
+ Determines whether the specified object is compatible with the specified type.
+ Unless a very specific behaviour is needed, the correct implementation is a
+ simple " return type.IsInstanceOfType(obj); "
+
+ The type.
+ The object.
+
+
+
+
+ Standard descriptor for userdata types.
+
+
+
+
+ Gets the interop access mode this descriptor uses for members access
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type this descriptor refers to.
+ The interop access mode this descriptor uses for members access
+ A human readable friendly name of the descriptor.
+
+
+
+ Fills the member list.
+
+
+
+
+ Class providing easier marshalling of CLR functions
+
+
+
+
+ Gets the method information (can be a MethodInfo or ConstructorInfo)
+
+
+
+
+ Gets the access mode used for interop
+
+
+
+
+ Gets a value indicating whether the described method is a constructor
+
+
+
+
+ Initializes a new instance of the class.
+
+ The MethodBase (MethodInfo or ConstructorInfo) got through reflection.
+ The interop access mode.
+ Invalid accessMode
+
+
+
+ Tries to create a new MethodMemberDescriptor, returning
+ null in case the method is not
+ visible to script code.
+
+ The MethodBase.
+ The
+ if set to true forces visibility.
+
+ A new MethodMemberDescriptor or null.
+
+
+
+
+ Checks if the method is compatible with a standard descriptor
+
+ The MethodBase.
+ if set to true an exception with the proper error message is thrown if not compatible.
+
+
+ Thrown if throwException is true and one of this applies:
+ The method contains unresolved generic parameters, or has an unresolved generic return type
+ or
+ The method contains pointer parameters, or has a pointer return type
+
+
+
+
+ The internal callback which actually executes the method
+
+ The script.
+ The object.
+ The context.
+ The arguments.
+
+
+
+
+ Called by standard descriptors when background optimization or preoptimization needs to be performed.
+
+ Out/Ref params cannot be precompiled.
+
+
+
+ Prepares the descriptor for hard-wiring.
+ The descriptor fills the passed table with all the needed data for hardwire generators to generate the appropriate code.
+
+ The table to be filled
+
+
+
+ Class providing easier marshalling of CLR properties
+
+
+
+
+ Gets the PropertyInfo got by reflection
+
+
+
+
+ Gets the
+
+
+
+
+ Gets a value indicating whether the described property is static.
+
+
+
+
+ Gets the name of the property
+
+
+
+
+ Gets a value indicating whether this instance can be read from
+
+
+ true if this instance can be read from; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance can be written to.
+
+
+ true if this instance can be written to; otherwise, false.
+
+
+
+
+ Tries to create a new StandardUserDataPropertyDescriptor, returning null in case the property is not
+ visible to script code.
+
+ The PropertyInfo.
+ The
+ A new StandardUserDataPropertyDescriptor or null.
+
+
+
+ Initializes a new instance of the class.
+ NOTE: This constructor gives get/set visibility based exclusively on the CLR visibility of the
+ getter and setter methods.
+
+ The pi.
+ The access mode.
+
+
+
+ Initializes a new instance of the class.
+
+ The PropertyInfo.
+ The
+ The getter method. Use null to make the property writeonly.
+ The setter method. Use null to make the property readonly.
+
+
+
+ Gets the value of the property
+
+ The script.
+ The object.
+
+
+
+
+ Sets the value of the property
+
+ The script.
+ The object.
+ The value to set.
+
+
+
+ Gets the types of access supported by this member
+
+
+
+
+ Called by standard descriptors when background optimization or preoptimization needs to be performed.
+
+
+
+
+ Prepares the descriptor for hard-wiring.
+ The descriptor fills the passed table with all the needed data for hardwire generators to generate the appropriate code.
+
+ The table to be filled
+
+
+
+ Namespace containing classes used to customize and support advanced interoperations between
+ scripts and CLR code.
+
+
+
+
+ "Optimized" BinaryReader which shares strings and use a dumb compression for integers
+
+
+
+
+ "Optimized" BinaryWriter which shares strings and use a dumb compression for integers
+
+
+
+
+ An adapter over Stream which bypasses the Dispose and Close methods.
+ Used to work around the pesky wrappers .NET has over Stream (BinaryReader, StreamWriter, etc.) which think they
+ own the Stream and close them when they shouldn't. Damn.
+
+
+
+
+ A Delegate type which can wrap a script function
+
+ The arguments.
+ The return value of the script function
+
+
+
+ A Delegate type which can wrap a script function with a generic typed return value
+
+
+ The arguments.
+ The return value of the script function
+
+
+
+ Flags to alter the way the DynValue.CheckType and other related functions operate on data types for
+ validation.
+
+
+
+
+ No type validation specific behaviour
+
+
+
+
+ Nil and Void values are allowed (and returned by the call)
+
+
+
+
+ Simple autoconversions are attempted:
+ 1) Numbers are convertible to strings
+ 2) Strings are convertible to numbers if they contain a number
+ 3) Everything is convertible to boolean (with void and nil converting to 'false', everything else converting to 'true')
+ Note: if both AutoConvert and AllowNil are specified, nils will NOT be converted to false booleans.
+
+
+
+
+ The default : Autoconverting values, no nils.
+
+
+
+
+ Exception thrown when a dynamic expression is invalid
+
+
+
+
+ Initializes a new instance of the class.
+
+ The format.
+ The arguments.
+
+
+
+ Initializes a new instance of the class.
+
+ The message.
+
+
+
+ Represents a dynamic expression in the script
+
+
+
+
+ The code which generated this expression
+
+
+
+
+ Evaluates the expression
+
+ The context.
+
+
+
+
+ Finds a symbol in the expression
+
+ The context.
+
+
+
+
+ Gets the script owning this resource.
+
+
+ The script owning this resource.
+
+
+
+
+ Determines whether this instance is a constant expression
+
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Extension methods used in the whole project.
+
+
+
+
+ Gets a value from the dictionary or returns the default value
+
+ The type of the key.
+ The type of the value.
+ The dictionary.
+ The key.
+
+
+
+
+ Gets a value from the dictionary or creates it
+
+ The type of the key.
+ The type of the value.
+ The dictionary.
+ The key.
+ A function which will create the value if it doesn't exist.
+
+
+
+
+ A class representing a script coroutine
+
+
+
+
+ Possible types of coroutine
+
+
+
+
+ A valid coroutine
+
+
+
+
+ A CLR callback assigned to a coroutine.
+
+
+
+
+ A CLR callback assigned to a coroutine and already executed.
+
+
+
+
+ Gets the type of coroutine
+
+
+
+
+ Gets this coroutine as a typed enumerable which can be looped over for resuming.
+ Returns its result as DynValue(s)
+
+
+ Only non-CLR coroutines can be resumed with this overload of the Resume method. Use the overload accepting a ScriptExecutionContext instead
+
+
+
+ Gets this coroutine as a typed enumerable which can be looped over for resuming.
+ Returns its result as System.Object. Only the first element of tuples is returned.
+ Only non-CLR coroutines can be resumed with this method. Use an overload of the Resume method accepting a ScriptExecutionContext instead.
+
+
+ Only non-CLR coroutines can be resumed with this overload of the Resume method. Use the overload accepting a ScriptExecutionContext instead
+
+
+
+ Gets this coroutine as a typed enumerable which can be looped over for resuming.
+ Returns its result as the specified type. Only the first element of tuples is returned.
+ Only non-CLR coroutines can be resumed with this method. Use an overload of the Resume method accepting a ScriptExecutionContext instead.
+
+
+ Only non-CLR coroutines can be resumed with this overload of the Resume method. Use the overload accepting a ScriptExecutionContext instead
+
+
+
+ The purpose of this method is to convert a MoonSharp/Lua coroutine to a Unity3D coroutine.
+ This loops over the coroutine, discarding returned values, and returning null for each invocation.
+ This means however that the coroutine will be invoked each frame.
+ Only non-CLR coroutines can be resumed with this method. Use an overload of the Resume method accepting a ScriptExecutionContext instead.
+
+
+ Only non-CLR coroutines can be resumed with this overload of the Resume method. Use the overload accepting a ScriptExecutionContext instead
+
+
+
+ Resumes the coroutine.
+ Only non-CLR coroutines can be resumed with this overload of the Resume method. Use the overload accepting a ScriptExecutionContext instead.
+
+ The arguments.
+
+ Only non-CLR coroutines can be resumed with this overload of the Resume method. Use the overload accepting a ScriptExecutionContext instead
+
+
+
+ Resumes the coroutine.
+
+ The ScriptExecutionContext.
+ The arguments.
+
+
+
+
+ Resumes the coroutine.
+ Only non-CLR coroutines can be resumed with this overload of the Resume method. Use the overload accepting a ScriptExecutionContext instead.
+
+
+ Only non-CLR coroutines can be resumed with this overload of the Resume method. Use the overload accepting a ScriptExecutionContext instead
+
+
+
+ Resumes the coroutine.
+
+ The ScriptExecutionContext.
+
+
+
+
+ Resumes the coroutine.
+ Only non-CLR coroutines can be resumed with this overload of the Resume method. Use the overload accepting a ScriptExecutionContext instead.
+
+ The arguments.
+
+ Only non-CLR coroutines can be resumed with this overload of the Resume method. Use the overload accepting a ScriptExecutionContext instead.
+
+
+
+ Resumes the coroutine
+
+ The ScriptExecutionContext.
+ The arguments.
+
+
+
+
+ Gets the coroutine state.
+
+
+
+
+ Gets the coroutine stack trace for debug purposes
+
+ The skip.
+ The entry source reference.
+
+
+
+
+ Gets the script owning this resource.
+
+
+ The script owning this resource.
+
+
+
+
+
+ Gets or sets the automatic yield counter.
+
+
+ The automatic yield counter.
+
+
+
+
+ Common interface for all resources which are uniquely bound to a script.
+
+
+
+
+ Gets the script owning this resource.
+
+
+ The script owning this resource.
+
+
+
+
+ A base class for many MoonSharp objects.
+ Helds a ReferenceID property which gets a different value for every object instance, for debugging
+ purposes. Note that the ID is not assigned in a thread safe manner for speed reason, so the IDs
+ are guaranteed to be unique only if everything is running on one thread at a time.
+
+
+
+
+ Gets the reference identifier.
+
+
+ The reference identifier.
+
+
+
+
+ Formats a string with a type name and a ref-id
+
+ The type name.
+
+
+
+
+ Class used to support "tail" continuations - a way for C# / Lua interaction which supports
+ coroutine yielding (at the expense of a LOT of added complexity in calling code).
+
+
+
+
+ Gets or sets the function to call
+
+
+
+
+ Gets or sets the arguments to the function
+
+
+
+
+ Gets or sets the callback to be used as a continuation.
+
+
+
+
+ Gets or sets the callback to be used in case of errors.
+
+
+
+
+ Gets or sets the error handler to be called before stack unwinding
+
+
+
+
+ Class exposing C# objects as Lua userdata.
+ For efficiency, a global registry of types is maintained, instead of a per-script one.
+
+
+
+
+ Gets or sets the "uservalue". See debug.getuservalue and debug.setuservalue.
+ http://www.lua.org/manual/5.2/manual.html#pdf-debug.setuservalue
+
+
+
+
+ Gets the object associated to this userdata (null for statics)
+
+
+
+
+ Gets the type descriptor of this userdata
+
+
+
+
+ Registers a type for userdata interop
+
+ The type to be registered
+ The access mode (optional).
+ Friendly name for the type (optional)
+
+
+
+ Registers a type for userdata interop
+
+ The type to be registered
+ The access mode (optional).
+ Friendly name for the type (optional)
+
+
+
+ Registers a proxy type.
+
+ The proxy factory.
+ The access mode.
+ A friendly name for the descriptor.
+
+
+
+
+ Registers a proxy type using a delegate.
+
+ The type of the proxy.
+ The type of the target.
+ A delegate creating a proxy object from a target object.
+ The access mode.
+ A friendly name for the descriptor.
+
+
+
+
+ Registers a type with a custom userdata descriptor
+
+ The type to be registered
+ The custom descriptor.
+
+
+
+ Registers a type with a custom userdata descriptor
+
+ The type to be registered
+ The custom descriptor.
+
+
+
+ Registers a type with a custom userdata descriptor
+
+ The custom descriptor.
+
+
+
+ Registers all types marked with a MoonSharpUserDataAttribute that ar contained in an assembly.
+
+ The assembly.
+ if set to true extension types are registered to the appropriate registry.
+
+
+
+ Determines whether the specified type is registered. Note that this should be used only to check if a descriptor
+ has been registered EXACTLY. For many types a descriptor can still be created, for example through the descriptor
+ of a base type or implemented interfaces.
+
+ The type.
+
+
+
+
+ Determines whether the specified type is registered. Note that this should be used only to check if a descriptor
+ has been registered EXACTLY. For many types a descriptor can still be created, for example through the descriptor
+ of a base type or implemented interfaces.
+
+ The type.
+
+
+
+
+ Unregisters a type.
+ WARNING: unregistering types at runtime is a dangerous practice and may cause unwanted errors.
+ Use this only for testing purposes or to re-register the same type in a slightly different way.
+ Additionally, it's a good practice to discard all previous loaded scripts after calling this method.
+
+ The type to be unregistered
+
+
+
+ Unregisters a type.
+ WARNING: unregistering types at runtime is a dangerous practice and may cause unwanted errors.
+ Use this only for testing purposes or to re-register the same type in a slightly different way.
+ Additionally, it's a good practice to discard all previous loaded scripts after calling this method.
+
+ The The type to be unregistered
+
+
+
+ Creates a userdata DynValue from the specified object, using a specific descriptor
+
+ The object
+ The descriptor.
+
+
+
+
+ Creates a userdata DynValue from the specified object
+
+ The object
+
+
+
+
+ Creates a static userdata DynValue from the specified IUserDataDescriptor
+
+ The IUserDataDescriptor
+
+
+
+
+ Creates a static userdata DynValue from the specified Type
+
+ The type
+
+
+
+
+ Creates a static userdata DynValue from the specified Type
+
+ The Type
+
+
+
+
+ Gets or sets the registration policy to be used in the whole application
+
+
+
+
+ Gets or sets the default access mode to be used in the whole application
+
+
+ The default access mode.
+
+ InteropAccessMode is InteropAccessMode.Default
+
+
+
+ Registers an extension Type (that is a type containing extension methods)
+
+ The type.
+ The InteropAccessMode.
+
+
+
+ Gets all the extension methods which can match a given name and extending a given Type
+
+ The name.
+ The extended type.
+
+
+
+
+ Gets a number which gets incremented everytime the extension methods registry changes.
+ Use this to invalidate caches based on extension methods
+
+
+
+
+
+ Gets the best possible type descriptor for a specified CLR type.
+
+ The CLR type for which the descriptor is desired.
+ if set to true interfaces are used in the search.
+
+
+
+
+ Gets the best possible type descriptor for a specified CLR type.
+
+ The CLR type for which the descriptor is desired.
+ if set to true interfaces are used in the search.
+
+
+
+
+ Gets the best possible type descriptor for a specified CLR object.
+
+ The object.
+
+
+
+
+ Gets a table with the description of registered types.
+
+ if set to true, it will also include the last found descriptor of all unregistered types.
+
+
+
+
+ Gets all the registered types.
+
+ if set to true, it will also include the last found descriptor of all unregistered types.
+
+
+
+
+ Constants of well known "symbols" in the MoonSharp grammar
+
+
+
+
+ The variadic argument symbol ("...")
+
+
+
+
+ The environment symbol ("_ENV")
+
+
+
+
+ Class wrapping a request to yield a coroutine
+
+
+
+
+ The return values of the coroutine
+
+
+
+
+ Gets or sets a value indicating whether this is a forced yield.
+
+
+
+
+ Wrapper for a debugger initiated action
+
+
+
+
+ Type of the action
+
+
+
+
+ Step-in at the bytecode level
+
+
+
+
+ Step-over at the bytecode level
+
+
+
+
+ Step-out at the bytecode level
+
+
+
+
+ Step-in at the source level
+
+
+
+
+ Step-over at the source level
+
+
+
+
+ Step-out at the source level
+
+
+
+
+ Continue execution "freely"
+
+
+
+
+ Toggles breakpoint
+
+
+
+
+ Sets a breakpoint
+
+
+
+
+ Clears a breakpoint
+
+
+
+
+ Refresh the data
+
+
+
+
+ Hard refresh of data
+
+
+
+
+ No action
+
+
+
+
+ The type of action
+
+
+
+
+ Gets the time stamp UTC of this action
+
+
+
+
+ Gets or sets the source identifier this action refers to.
+
+
+
+
+ Gets or sets the source line this action refers to.
+
+
+
+
+ Gets or sets the source column this action refers to.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the age of this debugger action
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Interface for debuggers to implement, in order to provide debugging facilities to Scripts.
+
+
+
+
+ Called by the script engine when a source code is added or changed.
+
+ The source code object.
+
+
+
+ Called by the script engine when the bytecode changes.
+
+ The bytecode source
+
+
+
+ Called by the script engine at execution time to check if a break has
+ been requested. Should return pretty fast as it's called A LOT.
+
+
+
+
+ Called by the script engine when a runtime error occurs.
+ The debugger can return true to signal the engine that it wants to break
+ into the source of the error. If it does so, it should also return true
+ to subsequent calls to IsPauseRequested().
+
+ The runtime exception.
+ True if this error should break execution.
+
+
+
+ Called by the script engine to get what action to do next.
+
+ The instruction pointer in bytecode.
+ The source reference.
+ T
+
+
+
+ Called by the script engine when the execution ends.
+
+
+
+
+ Called by the script engine to update watches of a given type. Note
+ that this method is not called only for watches in the strictest term,
+ but also for the stack, etc.
+
+ Type of the watch.
+ The items.
+
+
+
+ Called by the script engine to get which expressions are active
+ watches in the debugger.
+
+ A list of watches
+
+
+
+ Called by the script engine to refresh the breakpoint list.
+
+
+
+
+ Class representing a reference to source code interval
+
+
+
+
+ Gets a value indicating whether this location is inside CLR .
+
+
+
+
+ Gets the index of the source.
+
+
+
+
+ Gets from which column the source code ref starts
+
+
+
+
+ Gets to which column the source code ref ends
+
+
+
+
+ Gets from which line the source code ref starts
+
+
+
+
+ Gets to which line the source code ref ends
+
+
+
+
+ Gets a value indicating whether this instance is a stop "step" in source mode
+
+
+
+
+ Gets a value indicating whether this instance is a breakpoint
+
+
+
+
+ Gets a value indicating whether this instance cannot be set as a breakpoint
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets whether the source ref includes the specified location
+
+ Index of the source.
+ The line.
+ The column.
+
+
+
+
+ Sets the CannotBreakpoint flag.
+
+
+
+
+
+ Formats the location according to script preferences
+
+ The script.
+ if set to true the classic Lua format is forced.
+
+
+
+
+ A watch item for the debugger to consume.
+ Most properties make or not sense depending on the WatchType.
+
+
+
+
+ Gets or sets the address of the item
+
+
+
+
+ Gets or sets the base pointer (base value of v-stack at entering the function).
+ Valid only for call-stack items
+
+
+
+
+ Gets or sets the return address.
+ Valid only for call-stack items
+
+
+
+
+ Gets or sets the name of the item
+
+
+
+
+ Gets or sets the value of the item
+
+
+
+
+ Gets or sets the symbol reference of the item
+
+
+
+
+ Gets or sets a value indicating whether this instance is generating an error.
+
+
+
+
+ Gets or sets the source location this item refers to.
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Enumeration of the possible watch types
+
+
+
+
+ A real variable watch
+
+
+
+
+ The status of the v-stack
+
+
+
+
+ The call stack
+
+
+
+
+ The list of coroutines
+
+
+
+
+ The maximum value of this enum
+
+
+
+
+ Class representing the source code of a given script
+
+
+
+
+ Gets the name of the source code
+
+
+
+
+ Gets the source code as a string
+
+
+
+
+ Gets the source code lines.
+
+
+
+
+ Gets the script owning this resource.
+
+
+
+
+ Gets the source identifier inside a script
+
+
+
+
+ Gets the code snippet represented by a source ref
+
+ The source code reference.
+
+
+
+
+ Namespace containing classes used to support debuggers
+
+
+
+
+ This class is not *really* IDisposable.. it's just use to have a RAII like pattern.
+ You are free to reuse this instance after calling Dispose.
+
+
+
+
+ This class is not *really* IDisposable.. it's just use to have a RAII like pattern.
+ You are free to reuse this instance after calling Dispose.
+
+
+
+
+ Enumeration of the possible performance counters
+
+
+
+
+ Measures the time spent parsing the source creating the AST
+
+
+
+
+ Measures the time spent converting ASTs in bytecode
+
+
+
+
+ Measures the time spent in executing scripts
+
+
+
+
+ Measures the on the fly creation/compilation of functions in userdata descriptors
+
+
+
+
+ Sentinel value to get the enum size
+
+
+
+
+ Enumeration of unit of measures of the performance counters
+
+
+
+
+ The performance counter is specified in bytes (of memory)
+
+
+
+
+ The performance counter is specified in milliseconds
+
+
+
+
+ A single object of this type exists for every script and gives access to performance statistics.
+
+
+
+
+ Gets or sets a value indicating whether this collection of performance stats is enabled.
+
+
+ true if enabled; otherwise, false.
+
+
+
+
+ Gets the result of the specified performance counter .
+
+ The PerformanceCounter.
+
+
+
+
+ Starts a stopwatch.
+
+
+
+
+
+ Starts a stopwatch.
+
+
+
+
+
+ Gets a string with a complete performance log.
+
+
+
+
+
+ The result of a performance counter
+
+
+
+
+ Gets the name of the performance counter which generated this result.
+
+
+
+
+ Gets the quantity monitored - see Type to understand what this field contains
+
+
+
+
+ Gets the number of instances which led to the specified counter being incremented - e.g. the times a specific
+ code is executed, or object instanced
+
+
+
+
+ Gets a value indicating whether this is global or relative to the resource
+ for which it's called.
+
+
+
+
+ Gets the unit of measure of the Counter field.
+
+
+
+
+ Returns a that represents this instance.
+
+
+
+
+ Converts a PerformanceCounterType to a string.
+
+ The type.
+
+
+
+ Namespace containing classes used to support self diagnostics (e.g. performance counters)
+
+
+
+
+ Exception for all runtime errors. In addition to constructors, it offers a lot of static methods
+ generating more "standard" Lua errors.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The ex.
+
+
+
+ Initializes a new instance of the class.
+
+ The ex.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The format.
+ The arguments.
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ an arithmetic operation was attempted on non-numbers
+
+ The left operand.
+ The right operand (or null).
+ The exception to be raised.
+ If both are numbers
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a concat operation was attempted on non-strings
+
+ The left operand.
+ The right operand.
+ The exception to be raised.
+ If both are numbers or strings
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a len operator was applied on an invalid operand
+
+ The operand.
+ The exception to be raised.
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a comparison operator was applied on an invalid combination of operand types
+
+ The left operand.
+ The right operand.
+ The exception to be raised.
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a function was called with a bad argument
+
+ The argument number (0-based).
+ Name of the function generating this error.
+ The error message.
+ The exception to be raised.
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a function was called with a bad userdata argument
+
+ The argument number (0-based).
+ Name of the function generating this error.
+ The expected System.Type.
+ The object which was used.
+ True if nils were allowed in this call.
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a function was called with a bad argument
+
+ The argument number (0-based).
+ Name of the function generating this error.
+ The expected data type.
+ The data type received.
+ True if nils were allowed in this call.
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a function was called with a bad argument
+
+ The argument number (0-based).
+ Name of the function generating this error.
+ The expected type description.
+ The description of the type received.
+ True if nils were allowed in this call.
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a function was called with no value when a value was required.
+
+ This function creates a message like "bad argument #xxx to 'yyy' (zzz expected, got no value)"
+ while creates a message like "bad argument #xxx to 'yyy' (value expected)"
+
+ The argument number (0-based).
+ Name of the function generating this error.
+ The expected data type.
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ an out of range index was specified
+
+ The argument number (0-based).
+ Name of the function generating this error.
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a function was called with a negative number when a positive one was expected.
+
+ The argument number (0-based).
+ Name of the function generating this error.
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a function was called with no value when a value was required.
+ This function creates a message like "bad argument #xxx to 'yyy' (value expected)"
+ while creates a message like "bad argument #xxx to 'yyy' (zzz expected, got no value)"
+
+ The argument number (0-based).
+ Name of the function generating this error.
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ an invalid attempt to index the specified object was made
+
+ The object.
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a loop was detected when performing __index over metatables.
+
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a loop was detected when performing __newindex over metatables.
+
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a loop was detected when performing __call over metatables.
+
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a table indexing operation used nil as the key.
+
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a table indexing operation used a NaN as the key.
+
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a conversion to number failed.
+
+
+ Selects the correct error message:
+ 0 - "value must be a number"
+ 1 - "'for' initial value must be a number"
+ 2 - "'for' step must be a number"
+ 3 - "'for' limit must be a number"
+
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a conversion of a CLR type to a Lua type has failed.
+
+ The object which could not be converted.
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a conversion of a Lua type to a CLR type has failed.
+
+ The Lua type.
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a constrained conversion of a Lua type to a CLR type has failed.
+
+ The Lua type.
+ The expected CLR type.
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ a userdata of a specific CLR type was expected and a non-userdata type was passed.
+
+ The Lua type.
+ The expected CLR type.
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ an attempt to index an invalid member of a userdata was done.
+
+ The name of the userdata type.
+ The field name.
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ an attempt resume a coroutine in an invalid state was done.
+
+ The state of the coroutine.
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ an attempt to yield across a CLR boundary was made.
+
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ an attempt to yield from the main coroutine was made.
+
+
+ The exception to be raised.
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ an attempt to call a non-function was made
+
+ The lua non-function data type.
+ The debug text to aid location (appears as "near 'xxx'").
+
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ an attempt to access a non-static member from a static userdata was made
+
+ The member descriptor.
+
+
+
+ Creates a ScriptRuntimeException with a predefined error message specifying that
+ an attempt to access a non-static member from a static userdata was made
+
+ The type descriptor.
+ The member descriptor.
+
+
+
+
+ Rethrows this instance if
+
+
+
+
+
+ Exception thrown when an inconsistent state is reached in the interpreter
+
+
+
+
+ Base type of all exceptions thrown in MoonSharp
+
+
+
+
+ Initializes a new instance of the class.
+
+ The ex.
+
+
+
+ Initializes a new instance of the class.
+
+ The ex.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The format.
+ The arguments.
+
+
+
+ Gets the instruction pointer of the execution (if it makes sense)
+
+
+
+
+ Gets the interpreter call stack.
+
+
+
+
+ Gets the decorated message (error message plus error location in script) if possible.
+
+
+
+
+ Gets or sets a value indicating whether the message should not be decorated
+
+
+
+
+ Rethrows this instance if
+
+
+
+
+
+ Exception for all parsing/lexing errors.
+
+
+
+
+ Gets or sets a value indicating whether this exception was caused by premature stream termination (that is, unexpected EOF).
+ This can be used in REPL interfaces to tell between unrecoverable errors and those which can be recovered by extra input.
+
+
+
+
+ Rethrows this instance if
+
+
+
+
+
+ This class is a container for arguments received by a CallbackFunction
+
+
+
+
+ Initializes a new instance of the class.
+
+ The arguments.
+ if set to true [is method call].
+
+
+
+ Gets the count of arguments
+
+
+
+
+ Gets or sets a value indicating whether this is a method call.
+
+
+
+
+ Gets the at the specified index, or Void if not found
+
+
+
+
+ Gets the at the specified index, or null.
+
+ The index.
+ if set to true all voids are translated to nils.
+
+
+
+
+ Converts the arguments to an array
+
+ The number of elements to skip (default= 0).
+
+
+
+
+ Gets the specified argument as as an argument of the specified type. If not possible,
+ an exception is raised.
+
+ The argument number.
+ Name of the function.
+ The type desired.
+ if set to true nil values are allowed.
+
+
+
+
+ Gets the specified argument as as an argument of the specified user data type. If not possible,
+ an exception is raised.
+
+ The desired userdata type
+ The argument number.
+ Name of the function.
+ if set to true nil values are allowed.
+
+
+
+
+ Gets the specified argument as an integer
+
+ The argument number.
+ Name of the function.
+
+
+
+
+ Gets the specified argument as a long integer
+
+ The argument number.
+ Name of the function.
+
+
+
+
+ Gets the specified argument as a string, calling the __tostring metamethod if needed, in a NON
+ yield-compatible way.
+
+ The execution context.
+ The argument number.
+ Name of the function.
+
+ 'tostring' must return a string to '{0}'
+
+
+
+ Returns a copy of CallbackArguments where the first ("self") argument is skipped if this was a method call,
+ otherwise returns itself.
+
+
+
+
+
+ A class representing a script function
+
+
+
+
+ Type of closure based on upvalues
+
+
+
+
+ The closure has no upvalues (thus, technically, it's a function and not a closure!)
+
+
+
+
+ The closure has _ENV as its only upvalue
+
+
+
+
+ The closure is a "real" closure, with multiple upvalues
+
+
+
+
+ Gets the entry point location in bytecode .
+
+
+
+
+ Gets the script owning this function
+
+
+
+
+ Shortcut for an empty closure
+
+
+
+
+ The current closure context
+
+
+
+
+ Initializes a new instance of the class.
+
+ The script.
+ The index.
+ The symbols.
+ The resolved locals.
+
+
+
+ Calls this function with the specified args
+
+
+ Thrown if function is not of DataType.Function
+
+
+
+ Calls this function with the specified args
+
+ The arguments to pass to the function.
+
+ Thrown if function is not of DataType.Function
+
+
+
+ Calls this function with the specified args
+
+ The arguments to pass to the function.
+
+ Thrown if function is not of DataType.Function
+
+
+
+ Gets a delegate wrapping calls to this scripted function
+
+
+
+
+
+ Gets a delegate wrapping calls to this scripted function
+
+ The type of return value of the delegate.
+
+
+
+
+ Gets the number of upvalues in this closure
+
+ The number of upvalues in this closure
+
+
+
+ Gets the name of the specified upvalue.
+
+ The index of the upvalue.
+ The upvalue name
+
+
+
+ Gets the value of an upvalue. To set the value, use GetUpvalue(idx).Assign(...);
+
+ The index of the upvalue.
+ The value of an upvalue
+
+
+
+ Gets the type of the upvalues contained in this closure
+
+
+
+
+
+ This class wraps a CLR function
+
+
+
+
+ Gets the name of the function
+
+
+
+
+ Gets the call back.
+
+
+ The call back.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The callback function to be called.
+ The callback name, used in stacktraces, debugger, etc..
+
+
+
+ Invokes the callback function
+
+ The execution context.
+ The arguments.
+ if set to true this is a method call.
+
+
+
+
+ Gets or sets the default access mode used when marshalling delegates
+
+
+ The default access mode. Default, HideMembers and BackgroundOptimized are NOT supported.
+
+ Default, HideMembers and BackgroundOptimized are NOT supported.
+
+
+
+ Creates a CallbackFunction from a delegate.
+
+ The script.
+ The delegate.
+ The access mode.
+
+
+
+
+ Creates a CallbackFunction from a MethodInfo relative to a function.
+
+ The script.
+ The MethodInfo object.
+ The object to which the function applies, or null for static methods.
+ The access mode.
+
+ The method is not static.
+
+
+
+ Gets or sets an object used as additional data to the callback function (available in the execution context).
+
+
+
+
+ Checks the callback signature of a method is compatible for callbacks
+
+
+
+
+ A class representing a value in a Lua/MoonSharp script.
+
+
+
+
+ Gets a unique reference identifier. This is guaranteed to be unique only for dynvalues created in a single thread as it's not thread-safe.
+
+
+
+
+ Gets the type of the value.
+
+
+
+
+ Gets the function (valid only if the is )
+
+
+
+
+ Gets the numeric value (valid only if the is )
+
+
+
+
+ Gets the values in the tuple (valid only if the is Tuple).
+ This field is currently also used to hold arguments in values whose is .
+
+
+
+
+ Gets the coroutine handle. (valid only if the is Thread).
+
+
+
+
+ Gets the table (valid only if the is )
+
+
+
+
+ Gets the boolean value (valid only if the is )
+
+
+
+
+ Gets the string value (valid only if the is )
+
+
+
+
+ Gets the CLR callback (valid only if the is )
+
+
+
+
+ Gets the tail call data.
+
+
+
+
+ Gets the yield request data.
+
+
+
+
+ Gets the tail call data.
+
+
+
+
+ Returns true if this instance is write protected.
+
+
+
+
+ Creates a new writable value initialized to Nil.
+
+
+
+
+ Creates a new writable value initialized to the specified boolean.
+
+
+
+
+ Creates a new writable value initialized to the specified number.
+
+
+
+
+ Creates a new writable value initialized to the specified string.
+
+
+
+
+ Creates a new writable value initialized to the specified StringBuilder.
+
+
+
+
+ Creates a new writable value initialized to the specified string using String.Format like syntax
+
+
+
+
+ Creates a new writable value initialized to the specified coroutine.
+ Internal use only, for external use, see Script.CoroutineCreate
+
+ The coroutine object.
+
+
+
+
+ Creates a new writable value initialized to the specified closure (function).
+
+
+
+
+ Creates a new writable value initialized to the specified CLR callback.
+
+
+
+
+ Creates a new writable value initialized to the specified CLR callback.
+ See also CallbackFunction.FromDelegate and CallbackFunction.FromMethodInfo factory methods.
+
+
+
+
+ Creates a new writable value initialized to the specified table.
+
+
+
+
+ Creates a new writable value initialized to an empty prime table (a
+ prime table is a table made only of numbers, strings, booleans and other
+ prime tables).
+
+
+
+
+ Creates a new writable value initialized to an empty table.
+
+
+
+
+ Creates a new writable value initialized to with array contents.
+
+
+
+
+ Creates a new request for a tail call. This is the preferred way to execute Lua/MoonSharp code from a callback,
+ although it's not always possible to use it. When a function (callback or script closure) returns a
+ TailCallRequest, the bytecode processor immediately executes the function contained in the request.
+ By executing script in this way, a callback function ensures it's not on the stack anymore and thus a number
+ of functionality (state savings, coroutines, etc) keeps working at full power.
+
+ The function to be called.
+ The arguments.
+
+
+
+
+ Creates a new request for a tail call. This is the preferred way to execute Lua/MoonSharp code from a callback,
+ although it's not always possible to use it. When a function (callback or script closure) returns a
+ TailCallRequest, the bytecode processor immediately executes the function contained in the request.
+ By executing script in this way, a callback function ensures it's not on the stack anymore and thus a number
+ of functionality (state savings, coroutines, etc) keeps working at full power.
+
+ The data for the tail call.
+
+
+
+
+ Creates a new request for a yield of the current coroutine.
+
+ The yield argumenst.
+
+
+
+
+ Creates a new request for a yield of the current coroutine.
+
+ The yield argumenst.
+
+
+
+
+ Creates a new tuple initialized to the specified values.
+
+
+
+
+ Creates a new tuple initialized to the specified values - which can be potentially other tuples
+
+
+
+
+ Creates a new userdata value
+
+
+
+
+ Returns this value as readonly - eventually cloning it in the process if it isn't readonly to start with.
+
+
+
+
+ Clones this instance.
+
+
+
+
+
+ Clones this instance, overriding the "readonly" status.
+
+ if set to true the new instance is set as readonly, or writeable otherwise.
+
+
+
+
+ Clones this instance, returning a writable copy.
+
+ Can't clone Symbol values
+
+
+
+ A preinitialized, readonly instance, equaling Void
+
+
+
+
+ A preinitialized, readonly instance, equaling Nil
+
+
+
+
+ A preinitialized, readonly instance, equaling True
+
+
+
+
+ A preinitialized, readonly instance, equaling False
+
+
+
+
+ Returns a string which is what it's expected to be output by the print function applied to this value.
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Casts this DynValue to string, using coercion if the type is number.
+
+ The string representation, or null if not number, not string.
+
+
+
+ Casts this DynValue to a double, using coercion if the type is string.
+
+ The string representation, or null if not number, not string or non-convertible-string.
+
+
+
+ Casts this DynValue to a bool
+
+ False if value is false or nil, true otherwise.
+
+
+
+ Returns this DynValue as an instance of , if possible,
+ null otherwise
+
+ False if value is false or nil, true otherwise.
+
+
+
+ Converts a tuple to a scalar value. If it's already a scalar value, this function returns "this".
+
+
+
+
+ Performs an assignment, overwriting the value with the specified one.
+
+ The value.
+ If the value is readonly.
+
+
+
+ Gets the length of a string or table value.
+
+
+ Value is not a table or string.
+
+
+
+ Determines whether this instance is nil or void
+
+
+
+
+ Determines whether this instance is not nil or void
+
+
+
+
+ Determines whether this instance is void
+
+
+
+
+ Determines whether this instance is not void
+
+
+
+
+ Determines whether is nil, void or NaN (and thus unsuitable for using as a table key).
+
+
+
+
+ Changes the numeric value of a number DynValue.
+
+
+
+
+ Creates a new DynValue from a CLR object
+
+ The script.
+ The object.
+
+
+
+
+ Converts this MoonSharp DynValue to a CLR object.
+
+
+
+
+ Converts this MoonSharp DynValue to a CLR object of the specified type.
+
+
+
+
+ Converts this MoonSharp DynValue to a CLR object of the specified type.
+
+
+
+
+ Checks the type of this value corresponds to the desired type. A propert ScriptRuntimeException is thrown
+ if the value is not of the specified type or - considering the TypeValidationFlags - is not convertible
+ to the specified type.
+
+ Name of the function requesting the value, for error message purposes.
+ The desired data type.
+ The argument number, for error message purposes.
+ The TypeValidationFlags.
+
+ Thrown
+ if the value is not of the specified type or - considering the TypeValidationFlags - is not convertible
+ to the specified type.
+
+
+
+ Checks if the type is a specific userdata type, and returns it or throws.
+
+
+ Name of the function.
+ The argument number.
+ The flags.
+
+
+
+
+ A class representing a key/value pair for Table use
+
+
+
+
+ Gets the key.
+
+
+
+
+ Gets or sets the value.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The key.
+ The value.
+
+
+
+ Gets the nil pair
+
+
+
+
+ Class giving access to details of the environment where the script is executing
+
+
+
+
+ Gets a value indicating whether this instance is running a dynamic execution.
+ Under a dynamic execution, most methods of ScriptExecutionContext are not reliable as the
+ processing engine of the script is not "really" running or is not available.
+
+
+
+
+ Gets the location of the code calling back
+
+
+
+
+ Gets or sets the additional data associated to this CLR function call.
+
+
+
+
+ Gets the metatable associated with the given value.
+
+ The value.
+
+
+
+
+ Gets the specified metamethod associated with the given value.
+
+ The value.
+ The metamethod name.
+
+
+
+
+ prepares a tail call request for the specified metamethod, or null if no metamethod is found.
+
+
+
+
+ Gets the metamethod to be used for a binary operation using op1 and op2.
+
+
+
+
+ Gets the script object associated with this request
+
+
+
+
+
+ Gets the coroutine which is performing the call
+
+
+
+
+ Calls a callback function implemented in "classic way".
+ Useful to port C code from Lua, or C# code from UniLua and KopiLua.
+ Lua : http://www.lua.org/
+ UniLua : http://github.com/xebecnan/UniLua
+ KopiLua : http://github.com/NLua/KopiLua
+
+ The arguments.
+ Name of the function - for error messages.
+ The callback.
+
+
+
+
+ Calls the specified function, supporting most cases. The called function must not yield.
+
+ The function; it must be a Function or ClrFunction or have a call metamethod defined.
+ The arguments.
+
+ If the function yields, returns a tail call request with continuations/handlers or, of course, if it encounters errors.
+
+
+
+ Tries to get the reference of a symbol in the current execution state
+
+
+
+
+ Tries to get the value of a symbol in the current execution state
+
+
+
+
+ Finds a symbol by name in the current execution state
+
+
+
+
+ Gets the current global env, or null if not found.
+
+
+
+
+ Performs a message decoration before unwinding after an error. To be used in the implementation of xpcall like functions.
+
+ The message handler.
+ The exception.
+
+
+
+ Gets the script owning this resource.
+
+
+ The script owning this resource.
+
+
+
+
+ State of coroutines
+
+
+
+
+ This is the main coroutine
+
+
+
+
+ Coroutine has not started yet
+
+
+
+
+ Coroutine is suspended
+
+
+
+
+ Coroutine has been forcefully suspended (i.e. auto-yielded)
+
+
+
+
+ Coroutine is running
+
+
+
+
+ Coroutine has terminated
+
+
+
+
+ LINQ helper methods
+
+
+
+
+ Converts the specified enumerable dynvalues of a given script type to objects of a given type
+
+ The desired type
+ The enumerable.
+ The type.
+
+
+
+ Filters an enumeration for items of the given script type
+
+ The enumerable.
+ The script type.
+
+
+
+ Converts the elements to CLR objects
+
+ The enumerable.
+
+
+
+ Converts the elements to CLR objects of the desired type
+
+ The desired type
+ The enumerable.
+
+
+
+ Marks a type of automatic registration as userdata (which happens only if UserData.RegisterAssembly is called).
+
+
+
+
+ The interop access mode
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Descriptor which acts as a non-containing adapter from IUserDataType to IUserDataDescriptor
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+ Name of the friendly.
+
+
+
+ Gets the name of the descriptor (usually, the name of the type described).
+
+
+
+
+ Gets the type this descriptor refers to
+
+
+
+
+ Performs an "index" "get" operation.
+
+ The script originating the request
+ The object (null if a static request is done)
+ The index.
+ If set to true, it's indexed with a name, if false it's indexed through brackets.
+
+
+
+
+ Performs an "index" "set" operation.
+
+ The script originating the request
+ The object (null if a static request is done)
+ The index.
+ The value to be set
+ If set to true, it's indexed with a name, if false it's indexed through brackets.
+
+
+
+
+ Converts this userdata to string
+
+ The object.
+
+
+
+
+ Gets a "meta" operation on this userdata. If a descriptor does not support this functionality,
+ it should return "null" (not a nil).
+ These standard metamethods can be supported (the return value should be a function accepting the
+ classic parameters of the corresponding metamethod):
+ __add, __sub, __mul, __div, __div, __pow, __unm, __eq, __lt, __le, __lt, __len, __concat,
+ __pairs, __ipairs, __iterator, __call
+ These standard metamethods are supported through other calls for efficiency:
+ __index, __newindex, __tostring
+
+ The script originating the request
+ The object (null if a static request is done)
+ The name of the metamember.
+
+
+
+
+ Determines whether the specified object is compatible with the specified type.
+ Unless a very specific behaviour is needed, the correct implementation is a
+ simple " return type.IsInstanceOfType(obj); "
+
+ The type.
+ The object.
+
+
+
+
+ Enumerations of the possible strategies to marshal CLR objects to MoonSharp userdata and functions
+ when using automatic descriptors.
+ Note that these are "hints" and MoonSharp is free to ignore the access mode specified (if different from
+ HideMembers) and downgrade the access mode to "Reflection".
+ This particularly happens when running on AOT platforms like iOS.
+ See also : and .
+
+
+
+
+ Optimization is not performed and reflection is used everytime to access members.
+ This is the slowest approach but saves a lot of memory if members are seldomly used.
+
+
+
+
+ Optimization is done on the fly the first time a member is accessed.
+ This saves memory for all members that are never accessed, at the cost of an increased script execution time.
+
+
+
+
+ Optimization is done at registration time.
+
+
+
+
+ Optimization is done in a background thread which starts at registration time.
+ If a member is accessed before optimization is completed, reflection is used.
+
+
+
+
+ Use the hardwired descriptor(s)
+
+
+
+
+ No optimization is done, and members are not accessible at all.
+
+
+
+
+ No reflection is allowed, nor code generation. This is used as a safeguard when registering types which should not
+ use a standard reflection based descriptor - for example for types implementing
+
+
+
+
+ Use the default access mode
+
+
+
+
+ Enumeration of the types of SymbolRef
+
+
+
+
+ The symbol ref of a local variable
+
+
+
+
+ The symbol ref of an upvalue variable
+
+
+
+
+ The symbol ref of a global variable
+
+
+
+
+ The symbol ref of the global environment
+
+
+
+
+ This class stores a possible l-value (that is a potential target of an assignment)
+
+
+
+
+ Gets the type of this symbol reference
+
+
+
+
+ Gets the index of this symbol in its scope context
+
+
+
+
+ Gets the name of this symbol
+
+
+
+
+ Gets the environment this symbol refers to (for global symbols only)
+
+
+
+
+ Gets the default _ENV.
+
+
+
+
+ Creates a new symbol reference pointing to a global var
+
+ The name.
+ The _ENV symbol.
+
+
+
+
+ Creates a new symbol reference pointing to a local var
+
+ The name.
+ The index of the var in local scope.
+
+
+
+
+ Creates a new symbol reference pointing to an upvalue var
+
+ The name.
+ The index of the var in closure scope.
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Writes this instance to a binary stream
+
+
+
+
+ Reads a symbolref from a binary stream
+
+
+
+
+ Enumeration of possible data types in MoonSharp
+
+
+
+
+ A nil value, as in Lua
+
+
+
+
+ A place holder for no value
+
+
+
+
+ A Lua boolean
+
+
+
+
+ A Lua number
+
+
+
+
+ A Lua string
+
+
+
+
+ A Lua function
+
+
+
+
+ A Lua table
+
+
+
+
+ A set of multiple values
+
+
+
+
+ A userdata reference - that is a wrapped CLR object
+
+
+
+
+ A coroutine handle
+
+
+
+
+ A callback function
+
+
+
+
+ A request to execute a tail call
+
+
+
+
+ A request to coroutine.yield
+
+
+
+
+ Extension methods to DataType
+
+
+
+
+ Determines whether this data type can have type metatables.
+
+ The type.
+
+
+
+
+ Converts the DataType to the string returned by the "type(...)" Lua function
+
+ The type.
+
+ The DataType is not a Lua type
+
+
+
+ Converts the DataType to the string returned by the "type(...)" Lua function, with additional values
+ to support debuggers
+
+ The type.
+
+ The DataType is not a Lua type
+
+
+
+ Converts the DataType to the string returned by the "type(...)" Lua function
+
+ The type.
+
+ The DataType is not a Lua type
+
+
+
+ A script loader loading scripts from an assembly resources
+
+
+
+
+ Initializes a new instance of the class.
+
+ The assembly containing the scripts as embedded resources or null to use the calling assembly.
+
+
+
+ Checks if a script file exists.
+
+ The script filename.
+
+
+
+
+ Opens a file for reading the script code.
+ It can return either a string, a byte[] or a Stream.
+ If a byte[] is returned, the content is assumed to be a serialized (dumped) bytecode. If it's a string, it's
+ assumed to be either a script or the output of a string.dump call. If a Stream, autodetection takes place.
+
+ The file.
+ The global context.
+
+ A string, a byte[] or a Stream.
+
+
+
+
+ A script loader loading scripts directly from the file system (does not go through platform object)
+
+
+
+
+ Checks if a script file exists.
+
+ The script filename.
+
+
+
+
+ Opens a file for reading the script code.
+ It can return either a string, a byte[] or a Stream.
+ If a byte[] is returned, the content is assumed to be a serialized (dumped) bytecode. If it's a string, it's
+ assumed to be either a script or the output of a string.dump call. If a Stream, autodetection takes place.
+
+ The file.
+ The global context.
+
+ A string, a byte[] or a Stream.
+
+
+
+
+ A script loader used for platforms we cannot initialize in any better way..
+
+
+
+
+ A base implementation of IScriptLoader, offering resolution of module names.
+
+
+
+
+ Checks if a script file exists.
+
+ The script filename.
+
+
+
+
+ Opens a file for reading the script code.
+ It can return either a string, a byte[] or a Stream.
+ If a byte[] is returned, the content is assumed to be a serialized (dumped) bytecode. If it's a string, it's
+ assumed to be either a script or the output of a string.dump call. If a Stream, autodetection takes place.
+
+ The file.
+ The global context.
+
+ A string, a byte[] or a Stream.
+
+
+
+
+ Resolves the name of a module on a set of paths.
+
+ The modname.
+ The paths.
+
+
+
+
+ Resolves the name of a module to a filename (which will later be passed to OpenScriptFile).
+ The resolution happens first on paths included in the LUA_PATH global variable (if and only if
+ the IgnoreLuaPathGlobal is false), and - if the variable does not exist - by consulting the
+ ScriptOptions.ModulesPaths array. Override to provide a different behaviour.
+
+ The modname.
+ The global context.
+
+
+
+
+ Gets or sets the modules paths used by the "require" function. If null, the default paths are used (using
+ environment variables etc.).
+
+
+
+
+ Unpacks a string path in a form like "?;?.lua" to an array
+
+
+
+
+ Gets the default environment paths.
+
+
+
+
+ Resolves a filename [applying paths, etc.]
+
+ The filename.
+ The global context.
+
+
+
+
+ Gets or sets a value indicating whether the LUA_PATH global is checked or not to get the path where modules are contained.
+ If true, the LUA_PATH global is NOT checked.
+
+
+
+
+ Class dictating how requests to read scripts from files are handled.
+
+ It's recommended that no class implement IScriptLoader directly, and rather extend ScriptLoaderBase.
+
+
+
+
+ Opens a file for reading the script code.
+ It can return either a string, a byte[] or a Stream.
+ If a byte[] is returned, the content is assumed to be a serialized (dumped) bytecode. If it's a string, it's
+ assumed to be either a script or the output of a string.dump call. If a Stream, autodetection takes place.
+
+ The file.
+ The global context.
+
+ A string, a byte[] or a Stream.
+
+
+
+
+ Resolves a filename [applying paths, etc.]
+
+ The filename.
+ The global context.
+
+
+
+
+ Resolves the name of a module to a filename (which will later be passed to OpenScriptFile)
+
+ The modname.
+ The global context.
+
+
+
+
+ A script loader which can load scripts from assets in Unity3D.
+ Scripts should be saved as .txt files in a subdirectory of Assets/Resources.
+
+ When MoonSharp is activated on Unity3D and the default script loader is used,
+ scripts should be saved as .txt files in Assets/Resources/MoonSharp/Scripts.
+
+
+
+
+ The default path where scripts are meant to be stored (if not changed)
+
+
+
+
+ Initializes a new instance of the class.
+
+ The path, relative to Assets/Resources. For example
+ if your scripts are stored under Assets/Resources/Scripts, you should
+ pass the value "Scripts". If null, "MoonSharp/Scripts" is used.
+
+
+
+ Initializes a new instance of the class.
+
+ A dictionary mapping filenames to the proper Lua script code.
+
+
+
+ Opens a file for reading the script code.
+ It can return either a string, a byte[] or a Stream.
+ If a byte[] is returned, the content is assumed to be a serialized (dumped) bytecode. If it's a string, it's
+ assumed to be either a script or the output of a string.dump call. If a Stream, autodetection takes place.
+
+ The file.
+ The global context.
+
+ A string, a byte[] or a Stream.
+
+ UnityAssetsScriptLoader.LoadFile : Cannot load + file
+
+
+
+ Checks if a given file exists
+
+ The file.
+
+
+
+
+ Gets the list of loaded scripts filenames (useful for debugging purposes).
+
+
+
+
+
+ Namespace containing classes used to customized how scripts are loaded from external files.
+
+
+
+
+ An implementation of which supports a very basic history of recent input lines.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The script.
+ Size of the history.
+
+
+
+ Evaluate a REPL command.
+ This method returns the result of the computation, or null if more input is needed for having valid code.
+ In case of errors, exceptions are propagated to the caller.
+
+ The input.
+
+ This method returns the result of the computation, or null if more input is needed for a computation.
+
+
+
+
+ Gets the previous item in history, or null
+
+
+
+
+ Gets the next item in history, or null
+
+
+
+
+ A script loader loading scripts directly from the file system (does not go through platform object)
+ AND starts with module paths taken from environment variables (again, not going through the platform object).
+
+ The paths are preconstructed using :
+ * The MOONSHARP_PATH environment variable if it exists
+ * The LUA_PATH_5_2 environment variable if MOONSHARP_PATH does not exists
+ * The LUA_PATH environment variable if LUA_PATH_5_2 and MOONSHARP_PATH do not exists
+ * The "?;?.lua" path if all the above fail
+
+ Also, everytime a module is require(d), the "LUA_PATH" global variable is checked. If it exists, those paths
+ will be used to load the module instead of the global ones.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the name of a module to a filename (which will later be passed to OpenScriptFile).
+ The resolution happens first on paths included in the LUA_PATH global variable, and -
+ if the variable does not exist - by consulting the
+ ScriptOptions.ModulesPaths array. Override to provide a different behaviour.
+
+ The modname.
+ The global context.
+
+
+
+
+ Contains classes useful to implement REPL interpreters.
+ See :
+
+
+
+
+ This class provides a simple REPL intepreter ready to be reused in a simple way.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The script.
+
+
+
+ Gets or sets a value indicating whether this instances handle inputs starting with a "?" as a
+ dynamic expression to evaluate instead of script code (likely invalid)
+
+
+
+
+ Gets or sets a value indicating whether this instances handle inputs starting with a "=" as a
+ non-dynamic expression to evaluate (just like the Lua interpreter does by default).
+
+
+
+
+ Gets a value indicating whether this instance has a pending command
+
+
+
+
+ Gets the current pending command.
+
+
+
+
+ Gets the classic prompt (">" or ">>") given the current state of the interpreter
+
+
+
+
+ Evaluate a REPL command.
+ This method returns the result of the computation, or null if more input is needed for having valid code.
+ In case of errors, exceptions are propagated to the caller.
+
+ The input.
+ This method returns the result of the computation, or null if more input is needed for a computation.
+
+
+
+ In a module type, mark fields with this attribute to have them exposed as a module constant.
+
+ See for more information about modules.
+
+
+
+
+ Gets or sets the name of the constant - if different from the name of the field itself
+
+
+
+
+ Namespace containing all the most commonly used classes for MoonSharp operation.
+ When in doubt, refer to and classes as starting points.
+
+
+
+
+ Namespace containing classes used to customize how the interfacing with the operative system happens
+ for the 'os' and 'io' modules, and for future modules/classes which may require OS access.
+ See and .
+
+
+
+
+ Interface to abstract all accesses made to the underlying platform (OS, framework) by the scripting engine.
+ Can be used both to support "non-standard" platforms (i.e. non-posix, non-windows) and/or to sandbox the behaviour
+ of the scripting engine.
+
+ It's recommended that no class implement IPlatformAccessor directly, and rather extend .
+
+
+
+
+ Filters the CoreModules enumeration to exclude non-supported operations
+
+ The requested modules.
+
+ The requested modules, with unsupported modules filtered out.
+
+
+
+
+ Gets an environment variable. Must be implemented, but an implementation is allowed
+ to always return null if a more meaningful implementation cannot be achieved or is
+ not desired.
+
+ The envvarname.
+
+ The environment variable value, or null if not found
+
+
+
+
+ Determines whether the application is running in AOT (ahead-of-time) mode
+
+
+
+
+ Gets the name of the platform (used for debug purposes).
+
+ The name of the platform (used for debug purposes)
+
+
+
+ Default handler for 'print' calls. Can be customized in ScriptOptions
+
+ The content.
+
+
+
+ Default handler for interactive line input calls. Can be customized in ScriptOptions.
+ If a meaningful implementation cannot be provided, this method should return null.
+
+
+
+
+
+ A function used to open files in the 'io' module.
+ Can have an invalid implementation if 'io' module is filtered out.
+ It should return a correctly initialized Stream for the given file and access
+
+ The script.
+ The filename.
+ The encoding.
+ The mode (as per Lua usage - e.g. 'w+', 'rb', etc.).
+
+
+
+
+ Gets a standard stream (stdin, stdout, stderr).
+
+ The type.
+
+
+
+
+ Gets a temporary filename. Used in 'io' and 'os' modules.
+ Can have an invalid implementation if 'io' and 'os' modules are filtered out.
+
+
+
+
+
+ Exits the process, returning the specified exit code.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The exit code.
+
+
+
+ Checks if a file exists. Used by the 'os' module.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The file.
+ True if the file exists, false otherwise.
+
+
+
+ Deletes the specified file. Used by the 'os' module.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The file.
+
+
+
+ Moves the specified file. Used by the 'os' module.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The source.
+ The DST.
+
+
+
+ Executes the specified command line, returning the child process exit code and blocking in the meantime.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The cmdline.
+
+
+
+
+ An abstract class which offers basic services on top of IPlatformAccessor to provide easier implementation of platforms.
+
+
+
+
+ Gets the platform name prefix
+
+
+
+
+
+ Gets the name of the platform (used for debug purposes).
+
+
+ The name of the platform (used for debug purposes)
+
+
+
+
+ Default handler for 'print' calls. Can be customized in ScriptOptions
+
+ The content.
+
+
+
+ DEPRECATED.
+ This is kept for backward compatibility, see the overload taking a prompt as an input parameter.
+
+ Default handler for interactive line input calls. Can be customized in ScriptOptions.
+ If an inheriting class whants to give a meaningful implementation, this method MUST be overridden.
+
+ null
+
+
+
+ Default handler for interactive line input calls. Can be customized in ScriptOptions.
+ If an inheriting class whants to give a meaningful implementation, this method MUST be overridden.
+
+ null
+
+
+
+ A function used to open files in the 'io' module.
+ Can have an invalid implementation if 'io' module is filtered out.
+ It should return a correctly initialized Stream for the given file and access
+
+
+ The filename.
+ The encoding.
+ The mode (as per Lua usage - e.g. 'w+', 'rb', etc.).
+
+
+
+
+ Gets a standard stream (stdin, stdout, stderr).
+
+ The type.
+
+
+
+
+ Gets a temporary filename. Used in 'io' and 'os' modules.
+ Can have an invalid implementation if 'io' and 'os' modules are filtered out.
+
+
+
+
+
+ Exits the process, returning the specified exit code.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The exit code.
+
+
+
+ Checks if a file exists. Used by the 'os' module.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The file.
+
+ True if the file exists, false otherwise.
+
+
+
+
+ Deletes the specified file. Used by the 'os' module.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The file.
+
+
+
+ Moves the specified file. Used by the 'os' module.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The source.
+ The DST.
+
+
+
+ Executes the specified command line, returning the child process exit code and blocking in the meantime.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The cmdline.
+
+
+
+
+ Filters the CoreModules enumeration to exclude non-supported operations
+
+ The requested modules.
+
+ The requested modules, with unsupported modules filtered out.
+
+
+
+
+ Gets an environment variable. Must be implemented, but an implementation is allowed
+ to always return null if a more meaningful implementation cannot be achieved or is
+ not desired.
+
+ The envvarname.
+
+ The environment variable value, or null if not found
+
+
+
+
+ Determines whether the application is running in AOT (ahead-of-time) mode
+
+
+
+
+ A static class offering properties for autodetection of system/platform details
+
+
+
+
+ Gets a value indicating whether this instance is running on mono.
+
+
+
+
+ Gets a value indicating whether this instance is running on a CLR4 compatible implementation
+
+
+
+
+ Gets a value indicating whether this instance is running on Unity-3D
+
+
+
+
+ Gets a value indicating whether this instance has been built as a Portable Class Library
+
+
+
+
+ Gets a value indicating whether this instance is running a system using Ahead-Of-Time compilation
+ and not supporting JIT.
+
+
+
+
+ A class implementing all the bits needed to have a minimal support of a platform.
+ This does not support the 'io'/'file' modules and has partial support of the 'os' module.
+
+
+
+
+ Gets an environment variable. Must be implemented, but an implementation is allowed
+ to always return null if a more meaningful implementation cannot be achieved or is
+ not desired.
+
+ The envvarname.
+
+ The environment variable value, or null if not found
+
+
+
+
+ Filters the CoreModules enumeration to exclude non-supported operations
+
+ The requested modules.
+
+ The requested modules, with unsupported modules filtered out.
+
+
+
+
+ A function used to open files in the 'io' module.
+ LimitedPlatformAccessorBase does NOT offer a meaningful implementation of this method and
+ thus does not support 'io' and 'os' modules.
+
+
+ The filename.
+ The encoding.
+ The mode (as per Lua usage - e.g. 'w+', 'rb', etc.).
+
+ The current platform accessor does not support 'io' and 'os' operations. Provide your own implementation of platform to work around this limitation, if needed.
+
+
+
+ Gets a standard stream (stdin, stdout, stderr).
+ LimitedPlatformAccessorBase does NOT offer a meaningful implementation of this method and
+ thus does not support 'io' and 'os' modules.
+
+ The type.
+
+ The current platform accessor does not support 'io' and 'os' operations. Provide your own implementation of platform to work around this limitation, if needed.
+
+
+
+ Gets a temporary filename. Used in 'io' and 'os' modules.
+ LimitedPlatformAccessorBase does NOT offer a meaningful implementation of this method and
+ thus does not support 'io' and 'os' modules.
+
+
+ The current platform accessor does not support 'io' and 'os' operations. Provide your own implementation of platform to work around this limitation, if needed.
+
+
+
+ Exits the process, returning the specified exit code.
+ LimitedPlatformAccessorBase does NOT offer a meaningful implementation of this method and
+ thus does not support 'io' and 'os' modules.
+
+ The exit code.
+ The current platform accessor does not support 'io' and 'os' operations. Provide your own implementation of platform to work around this limitation, if needed.
+
+
+
+ Checks if a file exists. Used by the 'os' module.
+ LimitedPlatformAccessorBase does NOT offer a meaningful implementation of this method and
+ thus does not support 'io' and 'os' modules.
+
+ The file.
+
+ True if the file exists, false otherwise.
+
+ The current platform accessor does not support 'io' and 'os' operations. Provide your own implementation of platform to work around this limitation, if needed.
+
+
+
+ Deletes the specified file. Used by the 'os' module.
+ LimitedPlatformAccessorBase does NOT offer a meaningful implementation of this method and
+ thus does not support 'io' and 'os' modules.
+
+ The file.
+ The current platform accessor does not support 'io' and 'os' operations. Provide your own implementation of platform to work around this limitation, if needed.
+
+
+
+ Moves the specified file. Used by the 'os' module.
+ LimitedPlatformAccessorBase does NOT offer a meaningful implementation of this method and
+ thus does not support 'io' and 'os' modules.
+
+ The source.
+ The DST.
+ The current platform accessor does not support 'io' and 'os' operations. Provide your own implementation of platform to work around this limitation, if needed.
+
+
+
+ Executes the specified command line, returning the child process exit code and blocking in the meantime.
+ LimitedPlatformAccessorBase does NOT offer a meaningful implementation of this method and
+ thus does not support 'io' and 'os' modules.
+
+ The cmdline.
+
+ The current platform accessor does not support 'io' and 'os' operations. Provide your own implementation of platform to work around this limitation, if needed.
+
+
+
+ Gets the platform name prefix
+
+
+
+
+
+
+ Default handler for 'print' calls. Can be customized in ScriptOptions
+
+ The content.
+
+
+
+
+ Enumeration of standard file handles
+
+
+
+
+ Standard Input
+
+
+
+
+ Standard Output
+
+
+
+
+ Standard Error Output
+
+
+
+
+ Class providing the IPlatformAccessor interface for standard full-feaured implementations.
+
+
+
+
+ Converts a Lua string access mode to a FileAccess enum
+
+ The mode.
+
+
+
+
+ Converts a Lua string access mode to a ParseFileMode enum
+
+ The mode.
+
+
+
+
+ A function used to open files in the 'io' module.
+ Can have an invalid implementation if 'io' module is filtered out.
+ It should return a correctly initialized Stream for the given file and access
+
+
+ The filename.
+ The encoding.
+ The mode (as per Lua usage - e.g. 'w+', 'rb', etc.).
+
+
+
+
+ Gets an environment variable. Must be implemented, but an implementation is allowed
+ to always return null if a more meaningful implementation cannot be achieved or is
+ not desired.
+
+ The envvarname.
+
+ The environment variable value, or null if not found
+
+
+
+
+ Gets a standard stream (stdin, stdout, stderr).
+
+ The type.
+
+ type
+
+
+
+ Default handler for 'print' calls. Can be customized in ScriptOptions
+
+ The content.
+
+
+
+ Gets a temporary filename. Used in 'io' and 'os' modules.
+ Can have an invalid implementation if 'io' and 'os' modules are filtered out.
+
+
+
+
+
+ Exits the process, returning the specified exit code.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The exit code.
+
+
+
+ Checks if a file exists. Used by the 'os' module.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The file.
+
+ True if the file exists, false otherwise.
+
+
+
+
+ Deletes the specified file. Used by the 'os' module.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The file.
+
+
+
+ Moves the specified file. Used by the 'os' module.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The source.
+ The DST.
+
+
+
+ Executes the specified command line, returning the child process exit code and blocking in the meantime.
+ Can have an invalid implementation if the 'os' module is filtered out.
+
+ The cmdline.
+
+
+
+
+ Filters the CoreModules enumeration to exclude non-supported operations
+
+ The requested modules.
+
+ The requested modules, with unsupported modules filtered out.
+
+
+
+
+ Gets the platform name prefix
+
+
+
+
+
+
+ This class implements a MoonSharp scripting session. Multiple Script objects can coexist in the same program but cannot share
+ data among themselves unless some mechanism is put in place.
+
+
+
+
+ The version of the MoonSharp engine
+
+
+
+
+ The Lua version being supported
+
+
+
+
+ Initializes the class.
+
+
+
+
+ Initializes a new instance of the clas.s
+
+
+
+
+ Initializes a new instance of the class.
+
+ The core modules to be pre-registered in the default global table.
+
+
+
+ Gets or sets the script loader which will be used as the value of the
+ ScriptLoader property for all newly created scripts.
+
+
+
+
+ Gets access to the script options.
+
+
+
+
+ Gets the global options, that is options which cannot be customized per-script.
+
+
+
+
+ Gets access to performance statistics.
+
+
+
+
+ Gets the default global table for this script. Unless a different table is intentionally passed (or setfenv has been used)
+ execution uses this table.
+
+
+
+
+ Loads a string containing a Lua/MoonSharp function.
+
+ The code.
+ The global table to bind to this chunk.
+ Name of the function used to report errors, etc.
+
+ A DynValue containing a function which will execute the loaded code.
+
+
+
+
+ Loads a string containing a Lua/MoonSharp script.
+
+ The code.
+ The global table to bind to this chunk.
+ Name of the code - used to report errors, etc.
+
+ A DynValue containing a function which will execute the loaded code.
+
+
+
+
+ Loads a Lua/MoonSharp script from a System.IO.Stream. NOTE: This will *NOT* close the stream!
+
+ The stream containing code.
+ The global table to bind to this chunk.
+ Name of the code - used to report errors, etc.
+
+ A DynValue containing a function which will execute the loaded code.
+
+
+
+
+ Dumps on the specified stream.
+
+ The function.
+ The stream.
+
+ function arg is not a function!
+ or
+ stream is readonly!
+ or
+ function arg has upvalues other than _ENV
+
+
+
+
+ Loads a string containing a Lua/MoonSharp script.
+
+ The code.
+ The global table to bind to this chunk.
+ The filename to be used in error messages.
+
+ A DynValue containing a function which will execute the loaded code.
+
+
+
+
+ Loads and executes a string containing a Lua/MoonSharp script.
+
+ The code.
+ The global context.
+
+ A DynValue containing the result of the processing of the loaded chunk.
+
+
+
+
+ Loads and executes a stream containing a Lua/MoonSharp script.
+
+ The stream.
+ The global context.
+
+ A DynValue containing the result of the processing of the loaded chunk.
+
+
+
+
+ Loads and executes a file containing a Lua/MoonSharp script.
+
+ The filename.
+ The global context.
+
+ A DynValue containing the result of the processing of the loaded chunk.
+
+
+
+
+ Runs the specified file with all possible defaults for quick experimenting.
+
+ The filename.
+ A DynValue containing the result of the processing of the executed script.
+
+
+
+ Runs the specified code with all possible defaults for quick experimenting.
+
+ The Lua/MoonSharp code.
+ A DynValue containing the result of the processing of the executed script.
+
+
+
+ Creates a closure from a bytecode address.
+
+ The address.
+ The env table to create a 0-upvalue
+
+
+
+
+ Calls the specified function.
+
+ The Lua/MoonSharp function to be called
+
+ The return value(s) of the function call.
+
+ Thrown if function is not of DataType.Function
+
+
+
+ Calls the specified function.
+
+ The Lua/MoonSharp function to be called
+ The arguments to pass to the function.
+
+ The return value(s) of the function call.
+
+ Thrown if function is not of DataType.Function
+
+
+
+ Calls the specified function.
+
+ The Lua/MoonSharp function to be called
+ The arguments to pass to the function.
+
+ The return value(s) of the function call.
+
+ Thrown if function is not of DataType.Function
+
+
+
+ Calls the specified function.
+
+ The Lua/MoonSharp function to be called
+
+ Thrown if function is not of DataType.Function
+
+
+
+ Calls the specified function.
+
+ The Lua/MoonSharp function to be called
+ The arguments to pass to the function.
+
+ Thrown if function is not of DataType.Function
+
+
+
+ Creates a coroutine pointing at the specified function.
+
+ The function.
+
+ The coroutine handle.
+
+ Thrown if function is not of DataType.Function or DataType.ClrFunction
+
+
+
+ Creates a coroutine pointing at the specified function.
+
+ The function.
+
+ The coroutine handle.
+
+ Thrown if function is not of DataType.Function or DataType.ClrFunction
+
+
+
+ Gets or sets a value indicating whether the debugger is enabled.
+ Note that unless a debugger attached, this property returns a
+ value which might not reflect the real status of the debugger.
+ Use this property if you want to disable the debugger for some
+ executions.
+
+
+
+
+ Attaches a debugger. This usually should be called by the debugger itself and not by user code.
+
+ The debugger object.
+
+
+
+ Gets the source code.
+
+ The source code identifier.
+
+
+
+
+ Gets the source code count.
+
+
+ The source code count.
+
+
+
+
+ Loads a module as per the "require" Lua function. http://www.lua.org/pil/8.1.html
+
+ The module name
+ The global context.
+
+ Raised if module is not found
+
+
+
+ Gets a type metatable.
+
+ The type.
+
+
+
+
+ Sets a type metatable.
+
+ The type. Must be Nil, Boolean, Number, String or Function
+ The metatable.
+ Specified type not supported : + type.ToString()
+
+
+
+ Warms up the parser/lexer structures so that MoonSharp operations start faster.
+
+
+
+
+ Creates a new dynamic expression.
+
+ The code of the expression.
+
+
+
+
+ Creates a new dynamic expression which is actually quite static, returning always the same constant value.
+
+ The code of the not-so-dynamic expression.
+ The constant to return.
+
+
+
+
+ Gets an execution context exposing only partial functionality, which should be used for
+ those cases where the execution engine is not really running - for example for dynamic expression
+ or calls from CLR to CLR callbacks
+
+
+
+
+ MoonSharp (like Lua itself) provides a registry, a predefined table that can be used by any CLR code to
+ store whatever Lua values it needs to store.
+ Any CLR code can store data into this table, but it should take care to choose keys
+ that are different from those used by other libraries, to avoid collisions.
+ Typically, you should use as key a string GUID, a string containing your library name, or a
+ userdata with the address of a CLR object in your code.
+
+
+
+
+ A class representing a Lua table.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The owner script.
+
+
+
+ Initializes a new instance of the class.
+
+ The owner.
+ The values for the "array-like" part of the table.
+
+
+
+ Gets the script owning this resource.
+
+
+
+
+ Removes all items from the Table.
+
+
+
+
+ Gets the integral key from a double.
+
+
+
+
+ Gets or sets the
+ with the specified key(s).
+ This will marshall CLR and MoonSharp objects in the best possible way.
+ Multiple keys can be used to access subtables.
+
+
+ The .
+
+ The keys to access the table and subtables
+
+
+
+ Gets or sets the with the specified key(s).
+ This will marshall CLR and MoonSharp objects in the best possible way.
+
+
+ The .
+
+ The key.
+
+
+
+
+ Append the value to the table using the next available integer index.
+
+ The value.
+
+
+
+ Sets the value associated to the specified key.
+
+ The key.
+ The value.
+
+
+
+ Sets the value associated to the specified key.
+
+ The key.
+ The value.
+
+
+
+ Sets the value associated to the specified key.
+
+ The key.
+ The value.
+
+
+
+ Sets the value associated with the specified key.
+
+ The key.
+ The value.
+
+
+
+ Sets the value associated with the specified keys.
+ Multiple keys can be used to access subtables.
+
+ The keys.
+ The value.
+
+
+
+ Gets the value associated with the specified key.
+
+ The key.
+
+
+
+ Gets the value associated with the specified key.
+
+ The key.
+
+
+
+ Gets the value associated with the specified key.
+
+ The key.
+
+
+
+ Gets the value associated with the specified key.
+ (expressed as a ).
+
+ The key.
+
+
+
+ Gets the value associated with the specified keys (expressed as an
+ array of ).
+ This will marshall CLR and MoonSharp objects in the best possible way.
+ Multiple keys can be used to access subtables.
+
+ The keys to access the table and subtables
+
+
+
+ Gets the value associated with the specified key,
+ without bringing to Nil the non-existant values.
+
+ The key.
+
+
+
+ Gets the value associated with the specified key,
+ without bringing to Nil the non-existant values.
+
+ The key.
+
+
+
+ Gets the value associated with the specified key,
+ without bringing to Nil the non-existant values.
+
+ The key.
+
+
+
+ Gets the value associated with the specified key,
+ without bringing to Nil the non-existant values.
+
+ The key.
+
+
+
+ Gets the value associated with the specified keys (expressed as an
+ array of ).
+ This will marshall CLR and MoonSharp objects in the best possible way.
+ Multiple keys can be used to access subtables.
+
+ The keys to access the table and subtables
+
+
+
+ Remove the value associated with the specified key from the table.
+
+ The key.
+ true if values was successfully removed; otherwise, false.
+
+
+
+ Remove the value associated with the specified key from the table.
+
+ The key.
+ true if values was successfully removed; otherwise, false.
+
+
+
+ Remove the value associated with the specified key from the table.
+
+ The key.
+ true if values was successfully removed; otherwise, false.
+
+
+
+ Remove the value associated with the specified key from the table.
+
+ The key.
+ true if values was successfully removed; otherwise, false.
+
+
+
+ Remove the value associated with the specified keys from the table.
+ Multiple keys can be used to access subtables.
+
+ The key.
+ true if values was successfully removed; otherwise, false.
+
+
+
+ Collects the dead keys. This frees up memory but invalidates pending iterators.
+ It's called automatically internally when the semantics of Lua tables allow, but can be forced
+ externally if it's known that no iterators are pending.
+
+
+
+
+ Returns the next pair from a value
+
+
+
+
+ Gets the length of the "array part".
+
+
+
+
+ Gets the meta-table associated with this instance.
+
+
+
+
+ Enumerates the key/value pairs.
+
+
+
+
+
+ Enumerates the keys.
+
+
+
+
+
+ Enumerates the values
+
+
+
+
+
+ Enumeration (combinable as flags) of all the standard library modules
+
+
+
+
+ Value used to specify no modules to be loaded (equals 0).
+
+
+
+
+ The basic methods. Includes "assert", "collectgarbage", "error", "print", "select", "type", "tonumber" and "tostring".
+
+
+
+
+ The global constants: "_G", "_VERSION" and "_MOONSHARP".
+
+
+
+
+ The table iterators: "next", "ipairs" and "pairs".
+
+
+
+
+ The metatable methods : "setmetatable", "getmetatable", "rawset", "rawget", "rawequal" and "rawlen".
+
+
+
+
+ The string package
+
+
+
+
+ The load methods: "load", "loadsafe", "loadfile", "loadfilesafe", "dofile" and "require"
+
+
+
+
+ The table package
+
+
+
+
+ The error handling methods: "pcall" and "xpcall"
+
+
+
+
+ The math package
+
+
+
+
+ The coroutine package
+
+
+
+
+ The bit32 package
+
+
+
+
+ The time methods of the "os" package: "clock", "difftime", "date" and "time"
+
+
+
+
+ The methods of "os" package excluding those listed for OS_Time. These are not supported under Unity.
+
+
+
+
+ The methods of "io" and "file" packages. These are not supported under Unity.
+
+
+
+
+ The "debug" package (it has limited support)
+
+
+
+
+ The "dynamic" package (introduced by MoonSharp).
+
+
+
+
+ A sort of "hard" sandbox preset, including string, math, table, bit32 packages, constants and table iterators.
+
+
+
+
+ A softer sandbox preset, adding metatables support, error handling, coroutine, time functions and dynamic evaluations.
+
+
+
+
+ The default preset. Includes everything except "debug" as now.
+ Beware that using this preset allows scripts unlimited access to the system.
+
+
+
+
+ The complete package.
+ Beware that using this preset allows scripts unlimited access to the system.
+
+
+
+
+ Class managing modules (mostly as extension methods)
+
+
+
+
+ Register the core modules to a table
+
+ The table.
+ The modules.
+
+
+
+
+ Registers the standard constants (_G, _VERSION, _MOONSHARP) to a table
+
+ The table.
+
+
+
+
+ Registers a module type to the specified table
+
+ The table.
+ The type
+
+ If the module contains some incompatibility
+
+
+
+ Registers a module type to the specified table
+
+ The module type
+ The table.
+
+ If the module contains some incompatibility
+
+
+
+ In a module type, mark methods or fields with this attribute to have them exposed as module functions.
+ Methods must have the signature "public static DynValue ...(ScriptExecutionContextCallbackArguments)".
+ Fields must be static or const strings, with an anonymous Lua function inside.
+
+ See for more information about modules.
+
+
+
+
+ Gets or sets the name of the function in the module (defaults to member name)
+
+
+
+
+ Marks a CLR type to be a MoonSharp module.
+ Modules are the fastest way to bring interop between scripts and CLR code, albeit at the cost of a very increased
+ complexity in writing them. Modules is what's used for the standard library, for maximum efficiency.
+
+ Modules are basically classes containing only static methods, with the callback function signature.
+
+ See and for (extension) methods used to register modules to a
+ table.
+
+ See for information regarding the standard callback signature along with easier ways
+ to marshal methods.
+
+ See for easier object marshalling.
+
+
+
+
+ Gets or sets the namespace, that is the name of the table which will contain the defined functions.
+ Can be null to be in the global table.
+
+
+
+
+ Class containing script global options, that is options which cannot be customized per-script.
+
+
+
+
+
+ Gets or sets the custom converters.
+
+
+
+
+ Gets or sets the platform abstraction to use.
+
+
+ The current platform abstraction.
+
+
+
+
+ Gets or sets a value indicating whether interpreter exceptions should be
+ re-thrown as nested exceptions.
+
+
+
+
+ This class contains options to customize behaviour of Script objects.
+
+
+
+
+ Gets or sets the current script-loader.
+
+
+
+
+ Gets or sets the debug print handler
+
+
+
+
+ Gets or sets the debug input handler (takes a prompt as an input, for interactive interpreters, like debug.debug).
+
+
+
+
+ Gets or sets a value indicating whether error messages will use Lua error locations instead of MoonSharp
+ improved ones. Use this for compatibility with legacy Lua code which parses error messages.
+
+
+
+
+ Gets or sets the stream used as stdin. If null, a default stream is used.
+
+
+
+
+ Gets or sets the stream used as stdout. If null, a default stream is used.
+
+
+
+
+ Gets or sets the stream used as stderr. If null, a default stream is used.
+
+
+
+
+ Gets or sets the stack depth threshold at which MoonSharp starts doing
+ tail call optimizations.
+ TCOs can provide the little benefit of avoiding stack overflows in corner case
+ scenarios, at the expense of losing debug information and error stack traces
+ in all other, more common scenarios. MoonSharp choice is to start performing
+ TCOs only after a certain threshold of stack usage is reached - by default
+ half the current stack depth (128K entries), thus 64K entries, on either
+ the internal stacks.
+ Set this to int.MaxValue to disable TCOs entirely, or to 0 to always have
+ TCOs enabled.
+
+
+
+
+ Gets or sets a value indicating whether the thread check is enabled.
+ A "lazy" thread check is performed everytime execution is entered to ensure that no two threads
+ calls MoonSharp execution concurrently. However 1) the check is performed best effort (thus, it might
+ not detect all issues) and 2) it might trigger in very odd legal situations (like, switching threads
+ inside a CLR-callback without actually having concurrency.
+
+ Disable this option if the thread check is giving problems in your scenario, but please check that
+ you are not calling MoonSharp execution concurrently as it is not supported.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a sub tree of binary expressions
+
+
+
+
+ Primaries the exp.
+
+ The lcontext.
+
+
+
+
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.xml.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.xml.meta
new file mode 100644
index 00000000..ad53c197
--- /dev/null
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.Interpreter.xml.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ef5f85f1573e94a44abf2879ef9da704
+timeCreated: 1469184170
+licenseType: Pro
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.RemoteDebugger.dll b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.RemoteDebugger.dll
old mode 100644
new mode 100755
similarity index 99%
rename from Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.RemoteDebugger.dll
rename to Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.RemoteDebugger.dll
index 63a94ce2..5b746699
Binary files a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.RemoteDebugger.dll and b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.RemoteDebugger.dll differ
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.RemoteDebugger.dll.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.RemoteDebugger.dll.meta
similarity index 82%
rename from Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.RemoteDebugger.dll.meta
rename to Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.RemoteDebugger.dll.meta
index 29f06be2..4bec0d1f 100644
--- a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.RemoteDebugger.dll.meta
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.RemoteDebugger.dll.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
-guid: c3effdd4e9d074bcbb90e8773303ad3b
-timeCreated: 1455193529
-licenseType: Free
+guid: ec413ef6854004494af47aded82b99e0
+timeCreated: 1469184164
+licenseType: Pro
PluginImporter:
serializedVersion: 1
iconMap: {}
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.RemoteDebugger.pdb b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.RemoteDebugger.pdb
old mode 100644
new mode 100755
similarity index 85%
rename from Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.RemoteDebugger.pdb
rename to Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.RemoteDebugger.pdb
index 92de8ac1..45b21296
Binary files a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.RemoteDebugger.pdb and b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.RemoteDebugger.pdb differ
diff --git a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.RemoteDebugger.pdb.meta b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.RemoteDebugger.pdb.meta
similarity index 53%
rename from Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.RemoteDebugger.pdb.meta
rename to Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.RemoteDebugger.pdb.meta
index 8ae26545..6381620f 100644
--- a/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/MoonSharp/MoonSharp.RemoteDebugger.pdb.meta
+++ b/Assets/Fungus/Thirdparty/FungusLua/Thirdparty/Moonsharp/remotedebugger/net35/MoonSharp.RemoteDebugger.pdb.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
-guid: f5996939cde6945dbaa205884e73d770
-timeCreated: 1455193522
-licenseType: Free
+guid: 0ce6ce7f33be0498f950d585e916f2be
+timeCreated: 1469184162
+licenseType: Pro
DefaultImporter:
userData:
assetBundleName: