note
	description: "Infinite sequences, indexed by integers"
	library: "Free implementation of ELKS library"
	status: "See notice at end of class."
	legal: "See notice at end of class."
	names: countable_sequence, infinite_sequence
	access: cursor, membership
	contents: generic
	date: "$Date: 2012-05-24 04:13:10 +0000 (Thu, 24 May 2012) $"
	revision: "$Revision: 91981 $"

deferred class 
	COUNTABLE_SEQUENCE [G]

inherit
	COUNTABLE [G]
		rename
			item as i_th
		end

	ACTIVE [G]
		export
			{NONE} fill, prune_all, put, prune, wipe_out, replace, remove
		redefine
			Replaceable
		end

	LINEAR [G]
		redefine
			linear_representation
		end

feature -- Access

	index: INTEGER_32
			-- Index of current position

	item: G
			-- Item at current position
		do
			Result := i_th (index)
		end
	
feature -- Status report

	After: BOOLEAN = False
			-- Is current position past last item? (Answer: no.)

	Extendible: BOOLEAN = False
			-- May items be added? (Answer: no.)

	Prunable: BOOLEAN = False
			-- May items be removed? (Answer: no.)

	Readable: BOOLEAN = True
			-- Is there a current item that may be read?
			-- (Answer: yes.)

	Writable: BOOLEAN = False
			-- Is there a current item that may be written?
			-- (Answer: no.)

	Replaceable: BOOLEAN = False
			-- Can current item be replaced?
	
feature -- Cursor movement

	forth
			-- Move to next position.
		do
			index := index + 1
		end

	start
			-- Move to first position.
		do
			index := 1
		end
	
feature {NONE} -- Inapplicable

	extend (v: G)
			-- Add v at end.
		do
		end

	finish
			-- Move to last position.
		do
		ensure then
			failure: False
		end

	linear_representation: LINEAR [G]
			-- Representation as a linear structure
		do
			create {LINKED_LIST [G]} Result.make
		end

	prune (v: G)
			-- Remove first occurrence of v, if any.
		do
		end

	put (v: G)
			-- Add v to the right of current position.
		do
		end

	remove
			-- Remove item to the right of current position.
		do
		end

	replace (v: G)
			-- Replace by v item at current position.
		do
		end

	wipe_out
			-- Remove all items.
		do
		end
	
note
	copyright: "Copyright (c) 1984-2012, Eiffel Software and others"
	license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
	source: "[
		Eiffel Software
		5949 Hollister Ave., Goleta, CA 93117 USA
		Telephone 805-685-1006, Fax 805-685-6869
		Website http://www.eiffel.com
		Customer support http://support.eiffel.com
	]"

end -- class COUNTABLE_SEQUENCE

Generated by ISE EiffelStudio