with Objects; use Objects;
with Scripting.Statements; use Scripting.Statements;
package Scripting.Scripts is
type Script is new Limited_Object with private;
type A_Script is access all Script'Class;
function Create_Script return A_Script;
pragma Postcondition( Create_Script'Result /= null );
procedure Evaluate( this : access Script;
context : not null A_Eval_Context );
procedure Set_Statements( this : not null access Script'Class;
statements : in out Statement_Lists.List );
procedure Delete( this : in out A_Script );
pragma Postcondition( this = null );
private
type Script is new Limited_Object with
record
statements : Statement_Lists.List;
end record;
procedure Delete( this : in out Script );
end Scripting.Scripts;