Skip to content

Raudius/Luar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4ae72b1 · Jul 15, 2023

History

44 Commits
Nov 30, 2022
Mar 8, 2023
Nov 22, 2022
Nov 30, 2022
Nov 22, 2022
Nov 30, 2022
Oct 30, 2022
Nov 20, 2022
Oct 30, 2022
Nov 30, 2022
Jul 15, 2023
Mar 5, 2023

Repository files navigation

Luar

Luar is a Lua interpreter written in PHP.

Luar implements a reduced version of Lua and also packages some essential Lua libraries. As such Luar offers forward-compatibility with Lua with some minor caveats:

  • The math/string libraries use PHP number/string handling; much of the edge-case behaviour has not been replicated (e.g. division by zero, integer overflow)
  • Not all core functions and libraries are available, but a method is provided to inject your own
  • Some language constructs are not implemented (e.g. variable attributes, go-to statements)

Installation

composer require raudius/luar

Usage

For more details read the documentation.

$luar = new Luar();
$luar->assign('world', 'Moon');
$luar->assign('hello_world', function ($name='world') {
    return "Hello, $name!";
});

$program = '
    local greeting = hello_world(world)
    print(greeting)
    
    return greeting
';

$greeting = $luar->eval($program);