--::::::::::
--lptacnad.ads -- -Advanced
--::::::::::
with List_Pos_LPBase.Advanced;
generic
package List_Pos_Tag_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 Equivalent (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_Of (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'Class;
Position: in positive;
List : in out List_Type);
----------------------------------------------
-- Pre Cond : 1 <= Position <= Size_Of (List)
-- Post Cond : List'=(a ,...,a ,Object,a ,...,a )
-- 1 position-1 position n
-- Exceptions: constraint_error
----------------------------------------------
procedure Remove (List : in out List_Type;
Position: in positive;
Object : in out Object_Ptr);
----------------------------------------------
-- Pre Cond : 1 <= Position <= Size_Of (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_Ptr;
----------------------------------------------
-- 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'Class);
----------------------------------------------
-- Pre Cond : 1 <= Index <= #(List)
-- Post Cond: List(Index)' = Object
-- Exception: constraint_error
----------------------------------------------
procedure Share (Source, Target: in out List_Type);
function Is_Shared (Source: List_Type) return boolean;
end List_Pos_Tag_Cntl.Advanced;