diff options
Diffstat (limited to 'www/wiki/extensions/ParserFunctions/includes/Scribunto_LuaParserFunctionsLibrary.php')
-rw-r--r-- | www/wiki/extensions/ParserFunctions/includes/Scribunto_LuaParserFunctionsLibrary.php | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/www/wiki/extensions/ParserFunctions/includes/Scribunto_LuaParserFunctionsLibrary.php b/www/wiki/extensions/ParserFunctions/includes/Scribunto_LuaParserFunctionsLibrary.php new file mode 100644 index 00000000..7dc7c598 --- /dev/null +++ b/www/wiki/extensions/ParserFunctions/includes/Scribunto_LuaParserFunctionsLibrary.php @@ -0,0 +1,23 @@ +<?php + +class Scribunto_LuaParserFunctionsLibrary extends Scribunto_LuaLibraryBase { + public function register() { + $lib = [ + 'expr' => [ $this, 'expr' ], + ]; + + return $this->getEngine()->registerInterface( + __DIR__ . '/mw.ext.ParserFunctions.lua', $lib, [] + ); + } + + public function expr( $expression = null ) { + $this->checkType( 'mw.ext.ParserFunctions.expr', 1, $expression, 'string' ); + try { + return [ ExtParserFunctions::getExprParser()->doExpression( $expression ) ]; + } catch ( ExprError $e ) { + throw new Scribunto_LuaError( $e->getMessage() ); + } + } + +} |