note
	description: "Unicode routines"
	library: "Gobo Eiffel Kernel Library"
	copyright: "Copyright (c) 2001-2018, Eric Bezault and others"
	license: "MIT License"
	date: "$Date: 2019-02-07 22:54:15 +0000 (Thu, 07 Feb 2019) $"
	revision: "$Revision: 102807 $"

class interface
	UC_UNICODE_ROUTINES

create 
	default_create

feature -- Status report

	valid_non_surrogate_code (a_code: INTEGER_32): BOOLEAN
			-- Is a_code a valid non-surrogate unicode?
			-- Include all non-characters.
		ensure
			instance_free: class

	is_bmp_code (a_code: INTEGER_32): BOOLEAN
			-- Does a_code lie within the BMP?
		ensure
			instance_free: class

	valid_ascii_code (a_code: INTEGER_32): BOOLEAN
			-- Is a_code a valid ASCII code?
		ensure
			instance_free: class
			definition: Result = (a_code >= Minimum_ascii_character_code and a_code <= Maximum_ascii_character_code)

	is_ascii_string (a_string: STRING_8): BOOLEAN
			-- Does a_string contain only ASCII characters?
		require
			a_string_not_void: a_string /= Void
		ensure
			instance_free: class

	code_to_string (a_code: INTEGER_32): STRING_8
			-- Return a string with a_code as its single character.
			-- (If the character code is bigger than the maximum for
			-- CHARACTER, the dynamic type of the result will be UC_STRING
			-- or a descendant.)
		require
			a_code_valid: valid_code (a_code)
		ensure
			instance_free: class
			string_not_void: Result /= Void
			count_set: Result.count = 1
			code_set: Result.item_code (1) = a_code
	
end -- class UC_UNICODE_ROUTINES

Generated by ISE EiffelStudio