PreviousUpNext

14.4.65  Text

The standard library Text api defines access to functionality of seven different string-related packages: char, string, substring, char_vector, rw_char_vector, char_vector_slice, rw_char_vector_slice.

The Text api is implemented by the text package.

The Text api source code is in src/lib/std/src/text.api.

The above information is manually maintained and may contain errors.

api {    package char : api {
                       eqtype Char ;
                       eqtype String ;
                       from_int : Int -> Char;
                       to_int : Char -> Int;
                       min_char : Char;
                       max_char : Char;
                       max_ord : Int;
                       prior : Char -> Char;
                       next : Char -> Char;
                       < : (Char , Char) -> Bool;
                       <= : (Char , Char) -> Bool;
                       > : (Char , Char) -> Bool;
                       >= : (Char , Char) -> Bool;
                       compare : (Char , Char) -> Order;
                       scan : string_conversion::Reader((Char, X) ) -> string_conversion::Reader((Char, X) );
                       from_string : ?.string::String -> Null_Or(Char );
                       to_string : Char -> ?.string::String;
                       from_cstring : ?.string::String -> Null_Or(Char );
                       to_cstring : Char -> ?.string::String;
                       contains : String -> Char -> Bool;
                       not_contains : String -> Char -> Bool;
                       is_lower : Char -> Bool;
                       is_upper : Char -> Bool;
                       is_digit : Char -> Bool;
                       is_alpha : Char -> Bool;
                       is_hex_digit : Char -> Bool;
                       is_alpha_num : Char -> Bool;
                       is_print : Char -> Bool;
                       is_space : Char -> Bool;
                       is_punct : Char -> Bool;
                       is_graph : Char -> Bool;
                       is_cntrl : Char -> Bool;
                       is_ascii : Char -> Bool;
                       to_upper : Char -> Char;
                       to_lower : Char -> Char;
                   };;
    package string : api {
                         eqtype Char ;
                         eqtype String ;
                         max_size : Int;
                         length : String -> Int;
                         get : (String , Int) -> Char;
                         _[] : (String , Int) -> Char;
                         extract : (String , Int , Null_Or(Int )) -> String;
                         substring : (String , Int , Int) -> String;
                         + : (String , String) -> String;
                         cat : List(String ) -> String;
                         join : String -> List(String ) -> String;
                         join' : String
                                 -> String -> String -> List(String ) -> String;
                         from_char : Char -> String;
                         implode : List(Char ) -> String;
                         explode : String -> List(Char );
                         chomp : String -> String;
                         map : (Char -> Char) -> String -> String;
                         translate : (Char -> String) -> String -> String;
                         tokens : (Char -> Bool) -> String -> List(String );
                         fields : (Char -> Bool) -> String -> List(String );
                         is_prefix : String -> String -> Bool;
                         is_substring : String -> String -> Bool;
                         is_suffix : String -> String -> Bool;
                         compare : (String , String) -> Order;
                         collate : ((Char , Char) -> Order)
                                   -> (String , String) -> Order;
                         < : (String , String) -> Bool;
                         <= : (String , String) -> Bool;
                         > : (String , String) -> Bool;
                         >= : (String , String) -> Bool;
                         to_lower : String -> String;
                         to_upper : String -> String;
                         has_lower : String -> Bool;
                         has_upper : String -> Bool;
                         from_string : ?.string::String -> Null_Or(String );
                         to_string : String -> ?.string::String;
                         from_cstring : ?.string::String -> Null_Or(String );
                         to_cstring : String -> ?.string::String;
                     };;
    package substring : api {
                            eqtype Char ;
                            eqtype String ;
                            Substring ;
                            get : (Substring , Int) -> Char;
                            size : Substring -> Int;
                            base : Substring -> (String , Int , Int);
                            extract : (String , Int , Null_Or(Int )) -> Substring;
                            make_substring : (String , Int , Int) -> Substring;
                            from_string : String -> Substring;
                            to_string : Substring -> String;
                            is_empty : Substring -> Bool;
                            getc : Substring -> Null_Or(((Char , Substring)) );
                            first : Substring -> Null_Or(Char );
                            drop_first : Int -> Substring -> Substring;
                            drop_last : Int -> Substring -> Substring;
                            make_slice : (Substring , Int , Null_Or(Int )) -> Substring;
                            cat : List(Substring ) -> String;
                            join : String -> List(Substring ) -> String;
                            join' : String
                                    -> String -> String -> List(Substring ) -> String;
                            explode : Substring -> List(Char );
                            is_prefix : String -> Substring -> Bool;
                            is_substring : String -> Substring -> Bool;
                            is_suffix : String -> Substring -> Bool;
                            compare : (Substring , Substring) -> Order;
                            collate : ((Char , Char) -> Order)
                                      -> (Substring , Substring) -> Order;
                            get_prefix : (Char -> Bool) -> Substring -> Substring;
                            get_suffix : (Char -> Bool) -> Substring -> Substring;
                            drop_prefix : (Char -> Bool) -> Substring -> Substring;
                            drop_suffix : (Char -> Bool) -> Substring -> Substring;
                            split_off_prefix : (Char -> Bool)
                                               -> Substring -> (Substring , Substring);
                            split_off_suffix : (Char -> Bool)
                                               -> Substring -> (Substring , Substring);
                            split_at : (Substring , Int) -> (Substring , Substring);
                            position : String -> Substring -> (Substring , Substring);
                            span : (Substring , Substring) -> Substring;
                            translate : (Char -> String) -> Substring -> String;
                            tokens : (Char -> Bool) -> Substring -> List(Substring );
                            fields : (Char -> Bool) -> Substring -> List(Substring );
                            apply : (Char -> Void) -> Substring -> Void;
                            fold_left : ((Char , X) -> X) -> X -> Substring -> X;
                            fold_right : ((Char , X) -> X) -> X -> Substring -> X;
                        };;
    package char_vector : api {
                              Vector ;
                              Element ;
                              max_len : Int;
                              from_list : List(Element ) -> Vector;
                              tabulate : (Int , (Int -> Element)) -> Vector;
                              length : Vector -> Int;
                              cat : List(Vector ) -> Vector;
                              get : (Vector , Int) -> Element;
                              set : (Vector , Int , Element) -> Vector;
                              keyed_apply : ((Int , Element) -> Void) -> Vector -> Void;
                              apply : (Element -> Void) -> Vector -> Void;
                              keyed_map : ((Int , Element) -> Element) -> Vector -> Vector;
                              map : (Element -> Element) -> Vector -> Vector;
                              keyed_fold_left : ((Int , Element , X) -> X) -> X -> Vector -> X;
                              keyed_fold_right : ((Int , Element , X) -> X) -> X -> Vector -> X;
                              fold_left : ((Element , X) -> X) -> X -> Vector -> X;
                              fold_right : ((Element , X) -> X) -> X -> Vector -> X;
                              findi : ((Int , Element) -> Bool)
                                      -> Vector -> Null_Or(((Int , Element)) );
                              find : (Element -> Bool) -> Vector -> Null_Or(Element );
                              exists : (Element -> Bool) -> Vector -> Bool;
                              all : (Element -> Bool) -> Vector -> Bool;
                              collate : ((Element , Element) -> Order)
                                        -> (Vector , Vector) -> Order;
                          };;
    package rw_char_vector : api {
                                 eqtype Rw_Vector ;
                                 Element ;
                                 Vector ;
                                 max_len : Int;
                                 make_rw_vector : (Int , Element) -> Rw_Vector;
                                 from_list : List(Element ) -> Rw_Vector;
                                 tabulate : (Int , (Int -> Element)) -> Rw_Vector;
                                 length : Rw_Vector -> Int;
                                 get : (Rw_Vector , Int) -> Element;
                                 _[] : (Rw_Vector , Int) -> Element;
                                 set : (Rw_Vector , Int , Element) -> Void;
                                 _[]:= : (Rw_Vector , Int , Element) -> Void;
                                 to_vector : Rw_Vector -> Vector;
                                 copy : {di:Int,  dst:Rw_Vector,  src:Rw_Vector} -> Void;
                                 copy_vec : {di:Int,  dst:Rw_Vector,  src:Vector} -> Void;
                                 keyed_apply : ((Int , Element) -> Void) -> Rw_Vector -> Void;
                                 apply : (Element -> Void) -> Rw_Vector -> Void;
                                 modifyi : ((Int , Element) -> Element) -> Rw_Vector -> Void;
                                 modify : (Element -> Element) -> Rw_Vector -> Void;
                                 keyed_fold_left : ((Int , Element , X) -> X) -> X -> Rw_Vector -> X;
                                 keyed_fold_right : ((Int , Element , X) -> X) -> X -> Rw_Vector -> X;
                                 fold_left : ((Element , X) -> X) -> X -> Rw_Vector -> X;
                                 fold_right : ((Element , X) -> X) -> X -> Rw_Vector -> X;
                                 findi : ((Int , Element) -> Bool)
                                         -> Rw_Vector -> Null_Or(((Int , Element)) );
                                 find : (Element -> Bool)
                                        -> Rw_Vector -> Null_Or(Element );
                                 exists : (Element -> Bool) -> Rw_Vector -> Bool;
                                 all : (Element -> Bool) -> Rw_Vector -> Bool;
                                 collate : ((Element , Element) -> Order)
                                           -> (Rw_Vector , Rw_Vector) -> Order;
                             };;
    package char_vector_slice : api {
                                    Element ;
                                    Vector ;
                                    Slice ;
                                    length : Slice -> Int;
                                    get : (Slice , Int) -> Element;
                                    make_full_slice : Vector -> Slice;
                                    make_slice : (Vector , Int , Null_Or(Int )) -> Slice;
                                    make_subslice : (Slice , Int , Null_Or(Int )) -> Slice;
                                    base : Slice -> (Vector , Int , Int);
                                    to_vector : Slice -> Vector;
                                    cat : List(Slice ) -> Vector;
                                    is_empty : Slice -> Bool;
                                    get_item : Slice -> Null_Or(((Element , Slice)) );
                                    keyed_apply : ((Int , Element) -> Void) -> Slice -> Void;
                                    apply : (Element -> Void) -> Slice -> Void;
                                    keyed_map : ((Int , Element) -> Element) -> Slice -> Vector;
                                    map : (Element -> Element) -> Slice -> Vector;
                                    keyed_fold_left : ((Int , Element , X) -> X) -> X -> Slice -> X;
                                    keyed_fold_right : ((Int , Element , X) -> X) -> X -> Slice -> X;
                                    fold_left : ((Element , X) -> X) -> X -> Slice -> X;
                                    fold_right : ((Element , X) -> X) -> X -> Slice -> X;
                                    findi : ((Int , Element) -> Bool)
                                            -> Slice -> Null_Or(((Int , Element)) );
                                    find : (Element -> Bool) -> Slice -> Null_Or(Element );
                                    exists : (Element -> Bool) -> Slice -> Bool;
                                    all : (Element -> Bool) -> Slice -> Bool;
                                    collate : ((Element , Element) -> Order)
                                              -> (Slice , Slice) -> Order;
                                };;
    package rw_char_vector_slice : api {
                                       Element ;
                                       Rw_Vector ;
                                       Slice ;
                                       Vector ;
                                       Vector_Slice ;
                                       length : Slice -> Int;
                                       get : (Slice , Int) -> Element;
                                       set : (Slice , Int , Element) -> Void;
                                       make_full_slice : Rw_Vector -> Slice;
                                       make_slice : (Rw_Vector , Int , Null_Or(Int )) -> Slice;
                                       make_subslice : (Slice , Int , Null_Or(Int )) -> Slice;
                                       base : Slice -> (Rw_Vector , Int , Int);
                                       to_vector : Slice -> Vector;
                                       copy : {di:Int,  dst:Rw_Vector,  src:Slice} -> Void;
                                       copy_vec : {di:Int,  dst:Rw_Vector,  src:Vector_Slice} -> Void;
                                       is_empty : Slice -> Bool;
                                       get_item : Slice -> Null_Or(((Element , Slice)) );
                                       keyed_apply : ((Int , Element) -> Void) -> Slice -> Void;
                                       apply : (Element -> Void) -> Slice -> Void;
                                       modifyi : ((Int , Element) -> Element) -> Slice -> Void;
                                       modify : (Element -> Element) -> Slice -> Void;
                                       keyed_fold_left : ((Int , Element , X) -> X) -> X -> Slice -> X;
                                       keyed_fold_right : ((Int , Element , X) -> X) -> X -> Slice -> X;
                                       fold_left : ((Element , X) -> X) -> X -> Slice -> X;
                                       fold_right : ((Element , X) -> X) -> X -> Slice -> X;
                                       findi : ((Int , Element) -> Bool)
                                               -> Slice -> Null_Or(((Int , Element)) );
                                       find : (Element -> Bool) -> Slice -> Null_Or(Element );
                                       exists : (Element -> Bool) -> Slice -> Bool;
                                       all : (Element -> Bool) -> Slice -> Bool;
                                       collate : ((Element , Element) -> Order)
                                                 -> (Slice , Slice) -> Order;
                                   };;
sharing char_vector_slice::Slice =
        rw_char_vector_slice::Vector_Slice
sharing rw_char_vector_slice::Rw_Vector = rw_char_vector::Rw_Vector
sharing rw_char_vector_slice::Vector = char_vector_slice::Vector =
        rw_char_vector::Vector = char_vector::Vector =
        substring::String = string::String = char::String
sharing rw_char_vector_slice::Element = char_vector_slice::Element =
        rw_char_vector::Element = char_vector::Element =
        substring::Char = string::Char = char::Char
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext