class REP_MAP
****

________This_class_embodies_the_repertoire_map_describe_in_ISO/IEC_14652_and
___provides_facilities_for_encoding_and_decoding_either_individual_or
___'strings'_of_named_code-points.

________The_repertoire_map_(used_to_be_known_as_a_charmap)_itself_included
___here_is_automatically_read_in_if_not_already_created_when_any_of_the_other
___operations_are_performed.


Flattened version is here



Public


Features
Leaf_Name_ref : STR
****
________This_routine_creates_and_returns_the_repertoire_map_file_name_"rep_map",_using
___the_local_default_culture_and_encoding_-_since_it_is_for_a_file_name!!
binstr : BINSTR
char(bits : BINSTR) : CHAR
code(val : TOKEN) : CHAR_CODE
codes(str : STR) : CODE_STR
create(cult : CULTURE) : SAME
create(lib : LIBCHARS) : SAME
create : SAME
**** This routine creates a new empty bi-map for use with the default
___encoding_and_repertoire.
insert(name : TOKEN,val : CHAR_CODE)
insert(name : TOKEN,list : FLIST{TOKEN})
is_valid_encoding(bits : BINSTR) : BOOL
**** This predicate is the vital link between encodings and characters.
___It_returns_true_if_and_only_if_the_bit-pattern_in_bits_is_a_valid_inmap
___key_--_ie_the_bit-pattern_is_the_encoding_of_a_character_or_ligature_in
___this_repertoire.
is_valid_encoding(bits : FBINSTR) : BOOL
**** This predicate is the vital link between encodings and characters.
___It_returns_true_if_and_only_if_the_bit-pattern_in_bits_is_a_valid_map_key
___--_ie_the_bit-pattern_is_the_encoding_of_a_character_or_ligature_in_this
___repertoire.
str(codes : ARRAY{TOKEN}) : STR
token(val : CHAR_CODE) : TOKEN
token_list(name : CHAR_CODE) : FLIST{TOKEN}
tokens(codes : ARRAY{CHAR_CODE}) : ARRAY{TOKEN}
valid(val : CHAR_CODE) : BOOL
**** This predicate returns true if and only if the given code is in
___the_range_of_the_inmap,_otherwise_false.
valid(name : TOKEN) : BOOL
**** This predicate returns true if and only if the given name is in
___the_range_of_the_outmap,_otherwise_false.

Iters
sequence! : TOKEN
synonym!(once ch : CHAR) : CHAR_CODE
synonym!(once ch : RUNE) : CHAR_CODE
token!(once val : CHAR_CODE ) : TOKEN


Private

build_map(cursor : BIN_CURSOR,token_size : CARD) : SAME
do_str(codes : ARRAY{TOKEN}) : CODE_STR
get_size(val : CARD,size : CARD) : CARD
****
________This_routine_sets_size_to_be_the_greater_of_the_initial_value_and
___the_number_of_octets_needed_to_represent_val.
get_synonyms(cursor : BIN_CURSOR,token_size : CARD) : SAME
get_token_size : CARD
****
________This_private_routine_returns_the_number_of_octets_needed_to_provide
___a_binary_representation_of_the_tokens_in_the_maps.__Although_it_could
___be_expected_that_this_should_be_determinable_without_searching_the_maps,
___in_practice_there_are_a_number_of_token_values_which_were_used_in
___creating_the_maps_which_do_not_appear_explicitly_in_them.
attr inmap : FMAP{CHAR_CODE,FLIST{TOKEN}} ;
attr inmap : FMAP{CHAR_CODE,FLIST{TOKEN}} ;
attr lib : LIBCHARS ;
**** for code/char creation use.
attr lib : LIBCHARS ;
**** for code/char creation use.
attr outmap : FMAP{TOKEN,CHAR_CODE} ;
attr outmap : FMAP{TOKEN,CHAR_CODE} ;
put_synonyms(tok_size : CARD) : BINSTR
attr synonyms : FMAP{TOKEN,FLIST{TOKEN}} ;
****
________These_are_the_two_maps_for_converting_character_name_tokens_to
___encodings_and_the_inverse_map_which_converts_a_code_to_the_equivalent
___token.____Code_is_always_in_the_culture_specified_encoding.
attr synonyms : FMAP{TOKEN,FLIST{TOKEN}} ;
****
________These_are_the_two_maps_for_converting_character_name_tokens_to
___encodings_and_the_inverse_map_which_converts_a_code_to_the_equivalent
___token.____Code_is_always_in_the_culture_specified_encoding.

The Sather Home Page