class CHAR_MAP < $BINARY
****

________This_class_embodies_the_notion_of_a_character_mapping_function.__It
___contains_two_lists_of_one-to-one_mappings,_providing_for_mapping_in_either
___direction.____It_is_always_defined_that_the_mapping_'to'_is_valid.___The
___mapping_'from'_validity_(or_not)_depends_on_the_semantics_of_the
___particular_object_environment.


Ancestors
$BINARY



Public


Features
binstr : BINSTR
build(index : BIN_CURSOR) : SAME
create(str : BINSTR) : SAME .. Included as create
create : SAME
****
________This_routine_creates_an_empty_map,_initialising_the_map_before
___returning.
insert(entry : CASE_MAPLET) : BOOL
****
is_mapped(ch_code : CHAR_CODE) : BOOL
**** This predicate returns true if and only if the character code is
___mappable_using_this_character_map.
read(index : BIN_CURSOR) : SAME .. Included as read
to_domain(ch_code : CHAR_CODE) : CHAR_CODE
to_range(ch_code : CHAR_CODE) : CHAR_CODE
write(fyle : BIN_FILE) .. Included as write


Private

can_insert(elem : CASE_MAPLET) : BOOL
**** This private predicate returns true if and only if it is permissible
___to_insert_the_given_entry_in_the_map,_otherwise_false.__If_the_map_size_is
___non-zero_then_a_preliminary_test_for_the_same_code_library_is_made
___before_testing_for_disjuncture_with_existing_map_contents.
attr map : FLIST{CASE_MAPLET} ;
attr map : FLIST{CASE_MAPLET} ;
mapping(ch_code : CHAR_CODE,forward : BOOL) : CASE_MAPLET
**** This routine returns true if and only if ch_code is in the range or
___domain_of_this_map_depending_whether_forward_or_reverse_mapping_is_required.

The Sather Home Page