--::::::::::
--lilpcnad.ads -- -Advanced
--::::::::::
with List_LPBase.Advanced;
generic
package List_Lpt_Cntl.Advanced is
-------------------------------------------------
-- DO NOT USE adv_zqklst
package adv_zqklst is new zqklst.Advanced;
-------------------------------------------------
subtype EQ_Type is adv_zqklst.EQ_Type;
-- access function (L, R: Object_Type) return boolean;
function Identical (List_1, List_2: List_Type;
Equal: EQ_Type) return boolean;
-------------------------------------------------
-- Pre Cond : None
-- Post Cond: returns (#(List_1) = #(List_2), FORALL i IN 1..#(List_1)
-- List_1(i) = List_2(i)
-- Exception: None
-------------------------------------------------
function Size (List: List_Type) return integer;
-------------------------------------------------
-- Pre Cond : None
-- Post Cond: returns the number of objects in the list
-- Exception: None
-------------------------------------------------
procedure Insert (Object : in out Object_Type;
Position: in positive;
List : in List_Type);
-------------------------------------------------
-- Pre Cond : 1 <= Position <= Size (List)
-- Post Cond : List'=(a ,...,a ,Object,a ,...,a )
-- 1 position-1 position n
-- Exceptions: constraint_error
-- NOTE: Swap used to exchange value of Object_Type
-------------------------------------------------
procedure Remove (List : in List_Type;
Position: in positive;
Object : in out Object_Type);
-------------------------------------------------
-- Pre Cond : 1 <= Position <= Size (List)
-- Post Cond : List'=(a ,...,a ,a ,...,a )
-- 1 position-1 position+1 n
-- Object' = List(position)
-- Exceptions: constraint_error
-- NOTE: Swap used to exchange value of Object_Type
-------------------------------------------------
function Peek (List : List_Type;
Index: positive) return Object_Type;
-------------------------------------------------
-- Pre Cond : List /= {}, 1 <= Index <= #(List)
-- Post Cond: Returns List(Index)
-- Exception: List_Underflow or constraint_error
-------------------------------------------------
procedure Poke (List : in out List_Type;
Index : in positive;
Object: in out Object_Type);
-------------------------------------------------
-- Pre Cond : 1 <= Index <= #(List)
-- Post Cond: List(Index)' = Object
-- Exception: constraint_error
-- NOTE: Swap used to exchange value of Object_Type
-------------------------------------------------
end List_Lpt_Cntl.Advanced;