list_abstract.sa


Generated by gen_html_sa_files from ICSI. Contact gomes@icsi.berkeley.edu for details
 
------------------------->  GNU Sather - sourcefile  <-------------------------
-- Copyright (C) 2000 by K Hopper, University of Waikato, New Zealand        --
-- This file is part of the GNU Sather library. It is free software; you may --
-- redistribute  and/or modify it under the terms of the GNU Library General --
-- Public  License (LGPL)  as published  by the  Free  Software  Foundation; --
-- either version 2 of the license, or (at your option) any later version.   --
-- This  library  is distributed  in the  hope that it will  be  useful, but --
-- WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE. See Doc/LGPL for more details.       --
-- The license text is also available from:  Free Software Foundation, Inc., --
-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA                     --
-------------->  Please email comments to <bug-sather@gnu.org>  <--------------


abstract class $LISTS{ETP} < $ARR{ETP}

abstract class $LISTS{ETP} < $ARR{ETP} is -- This abstract class provides an extensible list abstraction. This has -- keys which because of its parentage are cardinal numbers. -- Version 1.0 Nov 2000. Copyright K Hopper, U of Waikato -- Development History -- ------------------- -- Date Who By Detail -- ---- ------ ------ -- 28 Nov 00 kh Original when simplifying inheritance. create : SAME ; -- This version of creation produces a default list which is empty. create( size : CARD ) : SAME ; -- This feature creates a new list with at least the given size, all of -- the elements of which are empty. count( val : ETP ) : CARD ; -- This feature returns the number of elements in the list which have -- the given value. end ; --$LISTS{ETP}

abstract class $FLISTS{ETP} < $LISTS{ETP}

abstract class $FLISTS{ETP} < $LISTS{ETP} is -- This abstract class provides an extensible list abstraction of a -- mutable list. This has keys which because of its parentage are cardinal -- numbers. -- Version 1.0 Nov 2000. Copyright K Hopper, U of Waikato -- Development History -- ------------------- -- Date Who By Detail -- ---- ------ ------ -- 28 Nov 00 kh Original when simplifying inheritance. create( contents : ARRAY{ETP} ) : SAME ; -- This feature creates a new list with at least the size of the -- argument array, into which the contents of the array has been copied -- sequentially. array : $ARR{ETP} ; -- This feature returns the a new array into which the contents of self -- has been placed sequentially. clear ; -- This feature clears the contents of the list to be the empty list. is_full : BOOL ; -- This predicate returns true if and only if the buffer for this list -- has no more empty space. push( val : ETP ) : SAME ; -- This feature returns a (possibly new) list with the contents of self -- to which has been appended the given element. end ; --$FLISTS{ETP}

abstract class $LIST{ETP} < $LISTS{ETP}

abstract class $LIST{ETP} < $LISTS{ETP} is -- This abstract class provides an extensible array abstraction. Similar -- to a list abstraction, this has keys which are cardinal numbers. After -- an insertion some keys may have changed. -- Version 1.3 Nov 2000. Copyright K Hopper, U of Waikato -- Development History -- ------------------- -- Date Who By Detail -- ---- ------ ------ -- 5 Sep 96 bv Original -- 3 Apr 97 kh Changed for CARD instead of INT -- 6 Nov 98 kh Revised for 1.2, added pre/post conditions -- 28 Nov 00 kh Revised inheritance type graph. equals( other : $RO_ARR{ETP} ) : BOOL ; -- This routine returns true if and only if all elements of self are -- equal to all elements of other when taken in the same order. insert_after( index : CARD, val : ETP ) ; -- This inserts val immediately after the given index position. The -- indices of all subwequent elements will have increased by one. insert_after( index : CARD, val : ETP ) : SAME ; -- This inserts val immediately after the given index position in a copy -- of self. The indices of all subsequent elements will have increased by -- one. The resulting list is returned. insert_before( index : CARD, val : ETP ) ; -- This inserts the value val in the position immediately before the -- given index. The indices of all subsequent elements will be increased -- by one. insert_before( index : CARD, val : ETP ) : SAME ; -- This inserts the value val in the position immediately before the -- given index in a copy of self. The indices of all subsequent elements -- will be increased by one. The resultant list is returned. insert_all_before( index : CARD, val : $CONTAINER{ETP} ) ; -- This inserts all of the items in val in order at the position before -- the given index. All subsequent elements will have their index increased -- by the number of elements in val. insert_all_before( index : CARD, val : $CONTAINER{ETP} ) : SAME ; -- This inserts all of the items in val in order at the position before -- the given index in a copy of self. All subsequent elements will have -- their index increased by the number of elements in val. The resultant -- list is returned. insert_all_after( index : CARD, val : $CONTAINER{ETP} ) ; -- This inserts all of the items in val in order at the position after -- the given index. All subsequent elements will have their index increased -- by the number of elements in val. insert_all_after( index : CARD, val : $CONTAINER{ETP} ) : SAME ; -- This inserts all of the items in val in order at the position after -- the given index in a copy of self. All subsequent elements will have -- their index increased by the number of elements in val. The resultant -- list is returned. append( elem : ETP ) ; -- This concatenates elem at the end of the existing list. append( elem : ETP ) : SAME ; -- This concatenates elem at the end of a copy of the existing list -- before returning the result.. append_all( list : $CONTAINER{ETP} ) ; -- This concatenates the given list after self. append_all( list : $CONTAINER{ETP} ) : SAME ; -- This concatenates the given list after copying self and before -- returning the resultant list. end ; -- $LIST{ETP}