--::::::::::
--liptcnad.ads -- -Advanced
--::::::::::
with list_LPBase.Advanced;
generic
package List_Pt_Cntl.Advanced is
----------------------------------------------------
-- DO NOT USE advzqklst
package advzqklst is new zqklst.advanced;
----------------------------------------------------
subtype EQ_Type is advzqklst.EQ_Type;
-- access function (L, R: Object_Type) return boolean;
function Identical (List_1, List_2: List_Type;
Eq : 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 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
----------------------------------------------------
procedure Remove (List : in List_Type;
Position: in positive;
Object : 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
----------------------------------------------------
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 Object_Type);
----------------------------------------------------
-- Pre Cond : 1 <= Index <= #(List)
-- Post Cond: List(Index)' = Object
-- Exception: constraint_error
----------------------------------------------------
end List_Pt_Cntl.Advanced;