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