Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



32 Commits

Repository files navigation


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;