From: Colin P. A. <co...@co...> - 2008-11-15 22:07:04
|
indexing description: "Support routines used by ST_STRING and ST_STRING_BUILDER" library: "Gobo Eiffel String Library" copyright: "Copyright (c) 2008, Colin Adams and others" license: "MIT License" date: "$Date: $" revision: "$Revision: $" class ST_STRING_ROUTINES inherit ST_IMPORTED_UNICODE_CHARACTER_CLASS_ROUTINES feature -- Access string_sums (a_strings: ARRAY [READABLE_STRING_GENERAL]): INTEGER is -- Total number of characters in `a_strings' require a_strings_not_void: a_strings /= Void all_strings_not_void: not a_strings.has (Void) local i, l_count: INTEGER do from i := 1 until i > a_strings.count loop l_count := l_count + a_strings.item (i).count i := i + 1 end Result := l_count ensure string_sums_non_negative: Result >= 0 end feature -- Status report is_all_whitespace (chars: STRING): BOOLEAN is -- Does `chars' consist only of XML white-space characters? local counter: INTEGER do from counter := 1 Result := True variant chars.count + 1 - counter until Result = False or else counter > chars.count loop if not is_xml_space (chars.item_code (counter)) then Result := False end counter := counter + 1 end end is_alphanumeric (a_character_code: INTEGER): BOOLEAN is -- Does `a_character_code' represent an alphanumeric character? require positive_character_code: a_character_code > 0 do Result := unicode_character_class.unicode.valid_code (a_character_code) and then (unicode_character_class.is_letter (a_character_code) or else unicode_character_class.is_number (a_character_code)) end is_xml_space (a_code: INTEGER): BOOLEAN is -- Does `a_code' represent an XML space? do Result := a_code = 32 or a_code = 9 or a_code = 10 or a_code = 13 end end -- Colin Adams Preston Lancashire |