-- The example show how to create a new lua state and launch a lua script
with Lua; use Lua;
with Lua.Utils; use Lua.Utils;
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Exceptions; use Ada.Exceptions;
function Main return Integer is
S : constant Lua_State := New_State;
-- Here we create a new state using New_State function
begin
Open_Libs (S);
-- Load the lua "standard" libraries
Put_Line ("Load script");
Load_File (S, "../example2.lua");
-- Load a script. Note that loading a script does not execute it. This
-- includes toplevel code.
Put_Line ("Execute script");
PCall (S);
-- A first execution is needed (kind of elaboration)
-- Call a function declared in the script that return a string
Put_Line (Call_Function (S, "example2_fun"));
return 0;
exception
when E : Lua_Error =>
Put_Line ("exception: " & Exception_Message (E));
return 1;
end Main;