--:::::::::: --lilplpad.ads -- -Advanced --:::::::::: with List_LPBase.Advanced; generic package List_Lpt_Lpt.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_Lpt.Advanced;