    indexing
    	legal: "See notice at end of class."
    	status: "See notice at end of class."

    class interface
    	HTML_TEXT

    create
    	make

    feature -- Access

    	generating_type: STRING_8
    			-- Name of current object's generating type
    			-- (type of which it is a direct instance)
    			-- (from ANY)

    	generator: STRING_8
    			-- Name of current object's generating class
    			-- (base class of the type of which it is a direct instance)
    			-- (from ANY)

    	stdout: STDOUT
    			-- Shared standard output (stdout).
    			-- (from SHARED_STDOUT)

    feature -- Comparison

    	frozen deep_equal (some: ANY; other: like arg #1): BOOLEAN
    			-- Are `some' and `other' either both void
    			-- or attached to isomorphic object structures?
    			-- (from ANY)
    		ensure -- from ANY
    			shallow_implies_deep: standard_equal (some, other) implies Result
    			both_or_none_void: (some = Void) implies (Result = (other = Void))
    			same_type: (Result and (some /= Void)) implies some.same_type (other)
    			symmetric: Result implies deep_equal (other, some)

    	frozen equal (some: ANY; other: like arg #1): BOOLEAN
    			-- Are `some' and `other' either both void or attached
    			-- to objects considered equal?
    			-- (from ANY)
    		ensure -- from ANY
    			definition: Result = (some = Void and other = Void) or else ((some /= Void and other /= Void) and then some.is_equal (other))

    	is_equal (other: like Current): BOOLEAN
    			-- Is `other' attached to an object considered
    			-- equal to current object?
    			-- (from ANY)
    		require -- from ANY
    			other_not_void: other /= Void
    		ensure -- from ANY
    			symmetric: Result implies other.is_equal (Current)
    			consistent: standard_is_equal (other) implies Result

    	frozen standard_equal (some: ANY; other: like arg #1): BOOLEAN
    			-- Are `some' and `other' either both void or attached to
    			-- field-by-field identical objects of the same type?
    			-- Always uses default object comparison criterion.
    			-- (from ANY)
    		ensure -- from ANY
    			definition: Result = (some = Void and other = Void) or else ((some /= Void and other /= Void) and then some.standard_is_equal (other))

    	frozen standard_is_equal (other: like Current): BOOLEAN
    			-- Is `other' attached to an object of the same type
    			-- as current object, and field-by-field identical to it?
    			-- (from ANY)
    		require -- from ANY
    			other_not_void: other /= Void
    		ensure -- from ANY
    			same_type: Result implies same_type (other)
    			symmetric: Result implies other.standard_is_equal (Current)

    feature -- Status report

    	conforms_to (other: ANY): BOOLEAN
    			-- Does type of current object conform to type
    			-- of `other' (as per Eiffel: The Language, chapter 13)?
    			-- (from ANY)
    		require -- from ANY
    			other_not_void: other /= Void

    	same_type (other: ANY): BOOLEAN
    			-- Is type of current object identical to type of `other'?
    			-- (from ANY)
    		require -- from ANY
    			other_not_void: other /= Void
    		ensure -- from ANY
    			definition: Result = (conforms_to (other) and other.conforms_to (Current))

    feature -- Duplication

    	copy (other: like Current)
    			-- Update current object using fields of object attached
    			-- to `other', so as to yield equal objects.
    			-- (from ANY)
    		require -- from ANY
    			other_not_void: other /= Void
    			type_identity: same_type (other)
    		ensure -- from ANY
    			is_equal: is_equal (other)

    	frozen deep_copy (other: like Current)
    			-- Effect equivalent to that of:
    			--		copy (`other' . deep_twin)
    			-- (from ANY)
    		require -- from ANY
    			other_not_void: other /= Void
    		ensure -- from ANY
    			deep_equal: deep_equal (Current, other)

    	frozen deep_twin: like Current
    			-- New object structure recursively duplicated from Current.
    			-- (from ANY)
    		ensure -- from ANY
    			deep_equal: deep_equal (Current, Result)

    	frozen standard_copy (other: like Current)
    			-- Copy every field of `other' onto corresponding field
    			-- of current object.
    			-- (from ANY)
    		require -- from ANY
    			other_not_void: other /= Void
    			type_identity: same_type (other)
    		ensure -- from ANY
    			is_standard_equal: standard_is_equal (other)

    	frozen standard_twin: like Current
    			-- New object field-by-field identical to `other'.
    			-- Always uses default copying semantics.
    			-- (from ANY)
    		ensure -- from ANY
    			standard_twin_not_void: Result /= Void
    			equal: standard_equal (Result, Current)

    	frozen twin: like Current
    			-- New object equal to `Current'
    			-- twin calls copy; to change copying/twining semantics, redefine copy.
    			-- (from ANY)
    		ensure -- from ANY
    			twin_not_void: Result /= Void
    			is_equal: Result.is_equal (Current)

    feature -- Miscellaneous

    	put_bold (text: STRING_8)
    			-- Put `text' in bold face.
    			-- (from HTML_GENERATOR)
    		require -- from HTML_GENERATOR
    			text_not_void: text /= Void

    	put_glossary_definition
    			-- Put glossary definition tag.
    			-- (from HTML_GENERATOR)

    	put_glossary_end
    			-- End glossary list.
    			-- (from HTML_GENERATOR)

    	put_glossary_start
    			-- Start glossary list.
    			-- (from HTML_GENERATOR)

    	put_glossary_term (text: STRING_8)
    			-- Put `text' as glossary term.
    			-- (from HTML_GENERATOR)
    		require -- from HTML_GENERATOR
    			text_not_void: text /= Void

    	put_header1 (title: STRING_8)
    			-- Put `title' as level 1 header.
    			-- (from HTML_GENERATOR)
    		require -- from HTML_GENERATOR
    			title_not_void: title /= Void

    	put_header2 (title: STRING_8)
    			-- Put `title' as level 2 header.
    			-- (from HTML_GENERATOR)
    		require -- from HTML_GENERATOR
    			title_not_void: title /= Void

    	put_header3 (title: STRING_8)
    			-- Put `title' as level 3 header.
    			-- (from HTML_GENERATOR)
    		require -- from HTML_GENERATOR
    			title_not_void: title /= Void

    	put_header4 (title: STRING_8)
    			-- Put `title' as level 4 header.
    			-- (from HTML_GENERATOR)
    		require -- from HTML_GENERATOR
    			title_not_void: title /= Void

    	put_header5 (title: STRING_8)
    			-- Put `title' as level 5 header.
    			-- (from HTML_GENERATOR)
    		require -- from HTML_GENERATOR
    			title_not_void: title /= Void

    	put_header6 (title: STRING_8)
    			-- Put `title' as level 6 header.
    			-- (from HTML_GENERATOR)
    		require -- from HTML_GENERATOR
    			title_not_void: title /= Void

    	put_horizontal_rule
    			-- Put a horizontal rule.
    			-- (from HTML_GENERATOR)

    	put_italic (text: STRING_8)
    			-- Put `text' in italic.
    			-- (from HTML_GENERATOR)
    		require -- from HTML_GENERATOR
    			text_not_void: text /= Void

    	put_line_break
    			-- Put line break.
    			-- (from HTML_GENERATOR)

    	put_link (url, anchor: STRING_8)
    			-- Attach text `anchor' to `url'
    			-- (from HTML_GENERATOR)
    		require -- from HTML_GENERATOR
    			anchor_not_void: anchor /= Void
    			url_not_void: url /= Void

    	put_list_item_end
    			-- Put list item end tag.
    			-- (from HTML_GENERATOR)

    	put_list_item_start
    			-- Put list item start tag.
    			-- (from HTML_GENERATOR)

    	put_ordered_list_end
    			-- End ordered list.
    			-- (from HTML_GENERATOR)

    	put_ordered_list_start
    			-- Start ordered list.
    			-- (from HTML_GENERATOR)

    	put_paragraph_end
    			-- End paragraph
    			-- (from HTML_GENERATOR)

    	put_paragraph_start
    			-- Start paragraph.
    			-- (from HTML_GENERATOR)

    	put_preformatted (text: STRING_8)
    			-- Put preformatted text `text'.
    			-- (from HTML_GENERATOR)
    		require -- from HTML_GENERATOR
    			text_not_void: text /= Void

    	put_unordered_list_end
    			-- End unordered list.
    			-- (from HTML_GENERATOR)

    	put_unordered_list_start
    			-- Start unordered list.
    			-- (from HTML_GENERATOR)

    feature -- Basic operations

    	frozen default: like Current
    			-- Default value of object's type
    			-- (from ANY)

    	frozen default_pointer: POINTER
    			-- Default value of type `POINTER'
    			-- (Avoid the need to write `p'.default for
    			-- some `p' of type `POINTER'.)
    			-- (from ANY)

    	default_rescue
    			-- Process exception for routines with no Rescue clause.
    			-- (Default: do nothing.)
    			-- (from ANY)

    	frozen do_nothing
    			-- Execute a null action.
    			-- (from ANY)

    feature

    	make

    feature -- Add some new features

    	put_address (s: STRING_8)

    	put_blink (s: STRING_8)

    	put_center (s: STRING_8)
    			-- Put 's' centered on the window

    	put_font (s: STRING_8; n: INTEGER_32)
    			-- Put 's' with font size set to 'n'

    	put_indent (s: STRING_8)

    	wipe_out
    			-- Restore a empty HTML text

    feature -- Constants

    	bold_end: STRING_8 is "</B>"
    			-- Bold face end tag.
    			-- (from HTML_CONSTANTS)

    	bold_start: STRING_8 is "<B>"
    			-- Bold face start tag.
    			-- (from HTML_CONSTANTS)

    	glossary_definition: STRING_8 is "<DD>"
    			-- Glossary list definition.
    			-- (from HTML_CONSTANTS)

    	glossary_end: STRING_8 is "</DL>"
    			-- Glossary list end tag.
    			-- (from HTML_CONSTANTS)

    	glossary_start: STRING_8 is "<DL>"
    			-- Glossary list start tag.
    			-- (from HTML_CONSTANTS)

    	glossary_term: STRING_8 is "<DT>"
    			-- Glossary list term.
    			-- (from HTML_CONSTANTS)

    	h1_end: STRING_8 is "</H1>"
    			-- Header level 1 end tag.
    			-- (from HTML_CONSTANTS)

    	h1_start: STRING_8 is "<H1>"
    			-- Header level 1 start tag.
    			-- (from HTML_CONSTANTS)

    	h2_end: STRING_8 is "</H2>"
    			-- Header level 2 end tag.
    			-- (from HTML_CONSTANTS)

    	h2_start: STRING_8 is "<H2>"
    			-- Header level 2 start tag.
    			-- (from HTML_CONSTANTS)

    	h3_end: STRING_8 is "</H3>"
    			-- Header level 3 end tag.
    			-- (from HTML_CONSTANTS)

    	h3_start: STRING_8 is "<H3>"
    			-- Header level 3 start tag.
    			-- (from HTML_CONSTANTS)

    	h4_end: STRING_8 is "</H4>"
    			-- Header level 4 end tag.
    			-- (from HTML_CONSTANTS)

    	h4_start: STRING_8 is "<H4>"
    			-- Header level 4 start tag.
    			-- (from HTML_CONSTANTS)

    	h5_end: STRING_8 is "</H5>"
    			-- Header level 5 end tag.
    			-- (from HTML_CONSTANTS)

    	h5_start: STRING_8 is "<H5>"
    			-- Header level 5 start tag.
    			-- (from HTML_CONSTANTS)

    	h6_end: STRING_8 is "</H6>"
    			-- Header level 6 end tag.
    			-- (from HTML_CONSTANTS)

    	h6_start: STRING_8 is "<H6>"
    			-- Header level 6 start tag.
    			-- (from HTML_CONSTANTS)

    	horizontal_rule: STRING_8 is "<HR>"
    			-- Horizontal rule tag.
    			-- (from HTML_CONSTANTS)

    	italic_end: STRING_8 is "</I>"
    			-- Italic end tag.
    			-- (from HTML_CONSTANTS)

    	italic_start: STRING_8 is "<I>"
    			-- Italic start tag.
    			-- (from HTML_CONSTANTS)

    	line_break: STRING_8 is "<BR>"
    			-- Line break tag.
    			-- (from HTML_CONSTANTS)

    	list_item_end: STRING_8 is "</LI>"
    			-- List item end tag.
    			-- (from HTML_CONSTANTS)

    	list_item_start: STRING_8 is "<LI>"
    			-- List item start tag.
    			-- (from HTML_CONSTANTS)

    	ordered_list_end: STRING_8 is "</OL>"
    			-- Ordered list end tag.
    			-- (from HTML_CONSTANTS)

    	ordered_list_start: STRING_8 is "<OL>"
    			-- Ordered list start tag.
    			-- (from HTML_CONSTANTS)

    	paragraph_end: STRING_8 is "</P>"
    			-- Paragraph end tag.
    			-- (from HTML_CONSTANTS)

    	paragraph_start: STRING_8 is "<P>"
    			-- Paragraph start tag.
    			-- (from HTML_CONSTANTS)

    	preformatted_end: STRING_8 is "</PRE>"
    			-- Preformatted text end tag.
    			-- (from HTML_CONSTANTS)

    	preformatted_start: STRING_8 is "<PRE>"
    			-- Preformatted text start tag.
    			-- (from HTML_CONSTANTS)

    	unordered_list_end: STRING_8 is "</UL>"
    			-- Unordered list end tag.
    			-- (from HTML_CONSTANTS)

    	unordered_list_start: STRING_8 is "<UL>"
    			-- Unordered list start tag.
    			-- (from HTML_CONSTANTS)

    feature -- Out representation

    	out: STRING_8
    			-- Provide a STRING representation for the HTML text

    feature -- Output

    	io: STD_FILES
    			-- Handle to standard file setup
    			-- (from ANY)

    	print (some: ANY)
    			-- Write terse external representation of `some'
    			-- on standard output.
    			-- (from ANY)

    	frozen tagged_out: STRING_8
    			-- New string containing terse printable representation
    			-- of current object
    			-- Was declared in ANY as synonym of out.
    			-- (from ANY)

    feature -- Platform

    	operating_environment: OPERATING_ENVIRONMENT
    			-- Objects available from the operating system
    			-- (from ANY)

    feature -- Redefinition

    	put_basic (s: STRING_8)
    			-- Append 's' to the temporary string
    		require -- from HTML_GENERATOR
    			string_not_void: s /= Void

    invariant
    		-- from ANY
    	reflexive_equality: standard_is_equal (Current)
    	reflexive_conformance: conforms_to (Current)

    indexing
    	copyright: "Copyright (c) 1984-2006, Eiffel Software and others"
    	license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
    	source: "[
    		Eiffel Software
    		356 Storke Road, 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 HTML_TEXT