class REPERTOIRE
****

__This_class_implements_the_tables_needed_for_use_when_carrying_out
___ordering_in_accordance_with_ISO/IEC_14651/2_standards.___It_permits
___individual_weights_to_be_determined_by_some_ordering_mechanism,_in
___addition_to_providing_for_equality_testing.


Flattened version is here



Public


Readable Attributes
attr charmap : REP_MAP ;
attr maps : FLIST{ORDERING} ;
****
________At_repertoire_creation_time_these_maps_are_created,_keyed_on_the
___code_independent_character_tokens,_yielding_an_array_of_weights_which_is
___to_be_handled_in_accordance_with_the_ordering_rules.
attr undefined : RANGE_ORDERING ;
**** This provides a default order for a complete character code
___repertoire,_provided_that_a_token_is_not_found_in_any_other_rule!

Features
Leaf_Name_ref : STR
**** This routine creates and returns the name of the default file name "order"
__in_the_Resources_sub-directory_as_a_reference_string.
create(cult : CULTURE) : SAME
default : SAME
****
________This_routine_returns_a_default_object_-_which_may_involve_retrieving
___data_from_the_Operating_System_current_culture_specifications.
earlier(low,high : CHAR) : BOOL
****
________This_predicate_returns_true_if_and_only_if_first_is_earlier_than
___second_in_the_collating_sequence_irrespective_of_their_encoding.
earlier(low,high : CHAR_CODE) : BOOL
****
________This_predicate_returns_true_if_and_only_if_first_is_earlier_than
___second_in_the_collating_sequence_irrespective_of_their_encoding.
earlier(low,high : CODE_STR) : BOOL
****
________This_predicate_returns_true_if_and_only_if_first_is_earlier_in_the
___collating_sequence_than_second,_irrespective_of_their_encoding.
earlier(low,high : RUNE) : BOOL
****
________This_predicate_returns_true_if_and_only_if_first_is_earlier_than
___second_in_the_collating_sequence_irrespective_of_their_encoding.
earlier(low,high : RUNES) : BOOL
****
________This_predicate_returns_true_if_and_only_if_first_is_earlier_in_the
___collating_sequence_than_second,_irrespective_of_their_encoding.
earlier(low,high : STR) : BOOL
****
________This_predicate_returns_true_if_and_only_if_first_is_earlier_in_the
___collating_sequence_than_second,_irrespective_of_their_encoding.
same(first,second : CHAR) : BOOL
****
________This_predicate_returns_true_if_and_only_if_first_is_earlier_than
___second_in_the_collating_sequence_irrespective_of_their_encoding.
___In_order_to_simplify_encoding_the_individual_characters_are_treated_as
___being_strings_of_single_characters.
same(first,second : CHAR_CODE) : BOOL
****
________This_predicate_returns_true_if_and_only_if_first_is_the_same_character
___irrespective_of_their_encoding.__In_order_to_simplify_encoding_the
___individual_characters_are_treated_as_being_strings_of_single_characters.
same(first,second : CODE_STR) : BOOL
****
________This_predicate_returns_true_if_and_only_if_first_and_second_are
___synonymous_characters_irrespective_of_their_encoding.
same(first,second : RUNE) : BOOL
****
________This_predicate_returns_true_if_and_only_if_first_is_earlier_than
___second_in_the_collating_sequence_irrespective_of_their_encoding.
___In_order_to_simplify_encoding_they_individual_characters_are_treated_as
___being_strings_of_single_characters.
same(first,second : RUNES) : BOOL
****
________This_predicate_returns_true_if_and_only_if_first_and_second_are
___synonymous_characters_irrespective_of_their_encoding.
same(first,second : STR) : BOOL
****
________This_predicate_returns_true_if_and_only_if_first_and_second_are
___synonymous_characters_irrespective_of_their_encoding.
weights(tok : TOKEN) : TUP{ARRAY{ORDER_WEIGHT},ARRAY{ORDER_RULE}}


Private

build_a_map(index : BIN_CURSOR) : ORDERING
build_range_map(index : BIN_CURSOR, loc_rules : ARRAY{ORDER_RULE}) : RANGE_ORDERING
build_rules(cursor : BIN_CURSOR) : ARRAY{ORDER_RULE}
attr charmap : REP_MAP ;
compare(first,second : CODE_STR,equality : BOOL) : BOOL
**** This predicate returns true if and only if first and second are
___either_equal_(if_equality_is_true)_or_first_is_less_than_second_if
___equality_is_false!
init : SAME
****
________This_routine_returns_the_current_object_or_default_if_self_is_void.
initialise : SAME
****
________This_routine_returns_the_default_repertoire_object_by_creating_it!
make_tokens(str : CODE_STR) : FLIST{TOKEN}
make_weights(toks : FLIST{TOKEN},out rules : ARRAY{ORDER_RULE}) : FLIST{ARRAY{ORDER_WEIGHT}}
attr maps : FLIST{ORDERING} ;
****
________At_repertoire_creation_time_these_maps_are_created,_keyed_on_the
___code_independent_character_tokens,_yielding_an_array_of_weights_which_is
___to_be_handled_in_accordance_with_the_ordering_rules.
one_pass(first : FLIST{ARRAY{ORDER_WEIGHT}},second : FLIST{ARRAY{ORDER_WEIGHT}},index : CARD,rule : ORDER_RULE,for_equality : BOOL) : BOOL
**** This private predicate carries out a single pass through the two
___arrays_with_the_given_index_and_direction_-_either_for_equality_or_first
___being_earlier_than_second.__True_is_returned_if_and_only_if_the_required
___relation_is_satisfied_by_the_two_lists.
shared priv_default : SAME ;
shared priv_default : SAME ;
attr undefined : RANGE_ORDERING ;
**** This provides a default order for a complete character code
___repertoire,_provided_that_a_token_is_not_found_in_any_other_rule!

The Sather Home Page