Frama-C:
Plug-ins:
Libraries:

Frama-C API - String

Extension of OCaml's Stdlib.String module.

  • since 33.0-Arsenic
include module type of Stdlib.String
type t = string
val make : int -> char -> string
val init : int -> (int -> char) -> string
val empty : string
val length : string -> int
val get : string -> int -> char
val of_char : char -> string
val of_bytes : bytes -> string
val to_bytes : string -> bytes
val blit : string -> int -> bytes -> int -> int -> unit
val concat : string -> string list -> string
val cat : string -> string -> string
val equal : t -> t -> bool
val compare : t -> t -> int
val is_empty : string -> bool
val starts_with : prefix:string -> string -> bool
val ends_with : suffix:string -> string -> bool
val includes : affix:string -> string -> bool
val contains_from : string -> int -> char -> bool
val rcontains_from : string -> int -> char -> bool
val contains : string -> char -> bool
val sub : string -> int -> int -> string
val take_first : int -> string -> string
val take_last : int -> string -> string
val drop_first : int -> string -> string
val drop_last : int -> string -> string
val cut_first : int -> string -> string * string
val cut_last : int -> string -> string * string
val take_first_while : (char -> bool) -> string -> string
val take_last_while : (char -> bool) -> string -> string
val drop_first_while : (char -> bool) -> string -> string
val drop_last_while : (char -> bool) -> string -> string
val cut_first_while : (char -> bool) -> string -> string * string
val cut_last_while : (char -> bool) -> string -> string * string
val split_first : sep:string -> string -> (string * string) option
val split_last : sep:string -> string -> (string * string) option
val split_all : sep:string -> ?drop:??? -> string -> string list
val rsplit_all : sep:string -> ?drop:??? -> string -> string list
val split_on_char : char -> string -> string list
val map : (char -> char) -> string -> string
val mapi : (int -> char -> char) -> string -> string
val fold_left : ('acc -> char -> 'acc) -> 'acc -> string -> 'acc
val fold_right : (char -> 'acc -> 'acc) -> string -> 'acc -> 'acc
val for_all : (char -> bool) -> string -> bool
val exists : (char -> bool) -> string -> bool
val trim : string -> string
val escaped : string -> string
val uppercase_ascii : string -> string
val lowercase_ascii : string -> string
val capitalize_ascii : string -> string
val uncapitalize_ascii : string -> string
val iter : (char -> unit) -> string -> unit
val iteri : (int -> char -> unit) -> string -> unit
val find_first_index : (char -> bool) -> ?start:??? -> string -> int option
val find_last_index : (char -> bool) -> ?start:??? -> string -> int option
val index_from : string -> int -> char -> int
val index_from_opt : string -> int -> char -> int option
val rindex_from : string -> int -> char -> int
val rindex_from_opt : string -> int -> char -> int option
val index : string -> char -> int
val index_opt : string -> char -> int option
val rindex : string -> char -> int
val rindex_opt : string -> char -> int option
val find_first : sub:string -> ?start:??? -> string -> int option
val find_last : sub:string -> ?start:??? -> string -> int option
val find_all : sub:string -> (int -> 'acc -> 'acc) -> ?start:??? -> string -> 'acc -> 'acc
val rfind_all : sub:string -> (int -> 'acc -> 'acc) -> ?start:??? -> string -> 'acc -> 'acc
val replace_first : sub:string -> by:string -> ?start:??? -> string -> string
val replace_last : sub:string -> by:string -> ?start:??? -> string -> string
val replace_all : sub:string -> by:string -> ?start:??? -> string -> string
val to_seq : t -> char Stdlib.Seq.t
val to_seqi : t -> (int * char) Stdlib.Seq.t
val of_seq : char Stdlib.Seq.t -> t
val get_utf_8_uchar : t -> int -> Stdlib.Uchar.utf_decode
val is_valid_utf_8 : t -> bool
val get_utf_16be_uchar : t -> int -> Stdlib.Uchar.utf_decode
val is_valid_utf_16be : t -> bool
val get_utf_16le_uchar : t -> int -> Stdlib.Uchar.utf_decode
val is_valid_utf_16le : t -> bool
val edit_distance : ?limit:??? -> t -> t -> int
val spellcheck : ?max_dist:??? -> ((string -> unit) -> unit) -> string -> string list
val get_uint8 : string -> int -> int
val get_int8 : string -> int -> int
val get_uint16_ne : string -> int -> int
val get_uint16_be : string -> int -> int
val get_uint16_le : string -> int -> int
val get_int16_ne : string -> int -> int
val get_int16_be : string -> int -> int
val get_int16_le : string -> int -> int
val get_int32_ne : string -> int -> int32
val hash : t -> int
val seeded_hash : int -> t -> int
val get_int32_be : string -> int -> int32
val get_int32_le : string -> int -> int32
val get_int64_ne : string -> int -> int64
val get_int64_be : string -> int -> int64
val get_int64_le : string -> int -> int64
val unsafe_get : string -> int -> char
val unsafe_blit : string -> int -> bytes -> int -> int -> unit
val compare_ignore_case : string -> string -> int

Case-insensitive string comparison. Only ISO-8859-1 accents are handled.

val remove_prefix : ?strict:bool -> string -> string -> string option

remove_prefix ~strict prefix s returns None if prefix is not a prefix of s and Some s' iff s=prefix^s'.

val remove_suffix : ?strict:bool -> string -> string -> string option

remove_suffix ~strict suffix s returns None if suffix is not a suffix of s and Some s' iff s=s'^suffix.

val utf8_length : string -> int

Same as String.length but counts utf8 characters instead of bytes.

val utf8_escaped : string -> string

Same as String.escaped but for utf8 encoded strings. Unicode non ASCII characters are preserved unescaped.

val trim_underscores : string -> string

remove underscores at the beginning and end of a string. If a string is composed solely of underscores, return the empty string

val html_escape : string -> string

Escape string for use in HTML tag.

val percent_encode : string -> string

percent_encode s returns the string s encoded so that it can be used as a path component in a HTML URL. All characters not on the list of unreserved characters in RFC3986 are percent-encoded. For instance the space character is converted to %20.

Cf. https://datatracker.ietf.org/doc/html/rfc3986#section-2.3 for the list of unreserved characters.

val means_yes : string -> bool

Return true if the string is "yes", "true" or "1" (ignore case).

  • since 33.0-Arsenic