Skip to content
An Ada binding for Lua.
Branch: master
Clone or download
Latest commit 1c4c9a9 Aug 25, 2015


An Ada binding for lua


This Ada program shows how to execute a Lua script from Ada

--  The example show how to create a new lua state and launch a lua script

with Lua; use Lua;
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

   Status : Lua_Return_Code;

   Open_Libs (S);
   --  Load the lua "standard" libraries

   Ada.Text_IO.Put_Line ("Load script");
   Load_File (S, "../example1.lua");
   --  Load a script. Note that loading a script does not execute it. This
   --  includes toplevel code.

   Ada.Text_IO.Put_Line ("Execute script");
   Status := Lua.PCall (S);

   if Status /= LUA_OK then
      --  An error occurs during the execution
      Put_Line (Status'Img);
      Put_Line (To_Ada (S, -1));
      return 1;
   end if;

   return 0;
   when E : Lua_Error =>
      Put_Line (Exception_Message (E));
      return 1;
end Main;
You can’t perform that action at this time.