summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Scribunto/includes/engines/LuaCommon/LuaInterpreter.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/Scribunto/includes/engines/LuaCommon/LuaInterpreter.php')
-rw-r--r--www/wiki/extensions/Scribunto/includes/engines/LuaCommon/LuaInterpreter.php68
1 files changed, 68 insertions, 0 deletions
diff --git a/www/wiki/extensions/Scribunto/includes/engines/LuaCommon/LuaInterpreter.php b/www/wiki/extensions/Scribunto/includes/engines/LuaCommon/LuaInterpreter.php
new file mode 100644
index 00000000..e1840310
--- /dev/null
+++ b/www/wiki/extensions/Scribunto/includes/engines/LuaCommon/LuaInterpreter.php
@@ -0,0 +1,68 @@
+<?php
+
+// @codingStandardsIgnoreLine Squiz.Classes.ValidClassName.NotCamelCaps
+abstract class Scribunto_LuaInterpreter {
+ /**
+ * Load a string. Return an object which can later be passed to callFunction.
+ * If there is a pass error, a Scribunto_LuaError will be thrown.
+ *
+ * @param string $text The Lua source code
+ * @param string $chunkName The chunk name
+ * @return mixed
+ */
+ abstract public function loadString( $text, $chunkName );
+
+ /**
+ * Call a Lua function. Return an array of results, with indices starting
+ * at zero. If an error occurs, a Scribunto_LuaError will be thrown.
+ *
+ * @param mixed $func The function object
+ */
+ abstract public function callFunction( $func /*...*/ );
+
+ /**
+ * Wrap a PHP callable as a Lua function, which can be passed back into
+ * Lua. If an error occurs, a Scribunto_LuaError will be thrown.
+ *
+ * @param callable $callable The PHP callable
+ * @return object a Lua function
+ */
+ abstract public function wrapPhpFunction( $callable );
+
+ /**
+ * Test whether an object is a Lua function.
+ *
+ * @param object $object
+ * @return bool
+ */
+ abstract public function isLuaFunction( $object );
+
+ /**
+ * Register a library of functions.
+ *
+ * @param string $name The global variable name to be created or added to.
+ * @param array $functions An associative array mapping the function name to the
+ * callback. The callback may throw a Scribunto_LuaError, which will be
+ * caught and raised in the Lua code as a Lua error, catchable with
+ * pcall().
+ */
+ abstract public function registerLibrary( $name, array $functions );
+
+ /**
+ * Pause CPU usage and limits
+ * @return void
+ */
+ abstract public function pauseUsageTimer();
+
+ /**
+ * Unpause CPU usage and limits
+ * @return void
+ */
+ abstract public function unpauseUsageTimer();
+}
+
+// @codingStandardsIgnoreLine Squiz.Classes.ValidClassName.NotCamelCaps
+class Scribunto_LuaInterpreterNotFoundError extends MWException {}
+
+// @codingStandardsIgnoreLine Squiz.Classes.ValidClassName.NotCamelCaps
+class Scribunto_LuaInterpreterBadVersionError extends MWException {}