--:::::::::: --lilpbadv.ads -- list_lpbase-Advanced --:::::::::: generic package List_LPBase.Advanced is type EQ_Type is access function (L, R: Object_Type) return boolean; function Identical (List_1, List_2: LPList_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: LPList_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 LPList_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 LPList_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 : LPList_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 LPList_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_LPBase.Advanced;