summaryrefslogtreecommitdiffstats
path: root/stdlib/stringLabels.mli
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/stringLabels.mli')
-rw-r--r--stdlib/stringLabels.mli138
1 files changed, 138 insertions, 0 deletions
diff --git a/stdlib/stringLabels.mli b/stdlib/stringLabels.mli
new file mode 100644
index 000000000..15555e836
--- /dev/null
+++ b/stdlib/stringLabels.mli
@@ -0,0 +1,138 @@
+(***********************************************************************)
+(* *)
+(* Objective Caml *)
+(* *)
+(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
+(* *)
+(* Copyright 1996 Institut National de Recherche en Informatique et *)
+(* en Automatique. All rights reserved. This file is distributed *)
+(* under the terms of the GNU Library General Public License. *)
+(* *)
+(***********************************************************************)
+
+(* $Id$ *)
+
+(* Module [String]: string operations *)
+
+external length : string -> int = "%string_length"
+ (* Return the length (number of characters) of the given string. *)
+
+external get : string -> int -> char = "%string_safe_get"
+ (* [String.get s n] returns character number [n] in string [s].
+ The first character is character number 0.
+ The last character is character number [String.length s - 1].
+ Raise [Invalid_argument] if [n] is outside the range
+ 0 to [(String.length s - 1)].
+ You can also write [s.[n]] instead of [String.get s n]. *)
+external set : string -> int -> char -> unit = "%string_safe_set"
+ (* [String.set s n c] modifies string [s] in place,
+ replacing the character number [n] by [c].
+ Raise [Invalid_argument] if [n] is outside the range
+ 0 to [(String.length s - 1)].
+ You can also write [s.[n] <- c] instead of [String.set s n c]. *)
+
+external create : int -> string = "create_string"
+ (* [String.create n] returns a fresh string of length [n].
+ The string initially contains arbitrary characters.
+ Raise [Invalid_argument] if [n <= 0] or [n > Sys.max_string_length].
+ *)
+val make : int -> char -> string
+ (* [String.make n c] returns a fresh string of length [n],
+ filled with the character [c].
+ Raise [Invalid_argument] if [n <= 0] or [n > Sys.max_string_length].
+ *)
+val copy : string -> string
+ (* Return a copy of the given string. *)
+val sub : string -> pos:int -> len:int -> string
+ (* [String.sub s start len] returns a fresh string of length [len],
+ containing the characters number [start] to [start + len - 1]
+ of string [s].
+ Raise [Invalid_argument] if [start] and [len] do not
+ designate a valid substring of [s]; that is, if [start < 0],
+ or [len < 0], or [start + len > String.length s]. *)
+val fill : string -> pos:int -> len:int -> char -> unit
+ (* [String.fill s start len c] modifies string [s] in place,
+ replacing the characters number [start] to [start + len - 1]
+ by [c].
+ Raise [Invalid_argument] if [start] and [len] do not
+ designate a valid substring of [s]. *)
+val blit : src:string -> src_pos:int ->
+ dst:string -> dst_pos:int -> len:int -> unit
+ (* [String.blit src srcoff dst dstoff len] copies [len] characters
+ from string [src], starting at character number [srcoff], to
+ string [dst], starting at character number [dstoff]. It works
+ correctly even if [src] and [dst] are the same string,
+ and the source and destination chunks overlap.
+ Raise [Invalid_argument] if [srcoff] and [len] do not
+ designate a valid substring of [src], or if [dstoff] and [len]
+ do not designate a valid substring of [dst]. *)
+
+val concat : sep:string -> string list -> string
+ (* [String.concat sep sl] catenates the list of strings [sl],
+ inserting the separator string [sep] between each. *)
+
+val iter : f:(char -> unit) -> string -> unit
+ (* [String.iter f s] applies function [f] in turn to all
+ the characters of [s]. It is equivalent to
+ [f s.(0); f s.(1); ...; f s.(String.length s - 1); ()]. *)
+
+val escaped: string -> string
+ (* Return a copy of the argument, with special characters represented
+ by escape sequences, following the lexical conventions of
+ Objective Caml. *)
+
+val index: string -> char -> int
+ (* [String.index s c] returns the position of the leftmost
+ occurrence of character [c] in string [s].
+ Raise [Not_found] if [c] does not occur in [s]. *)
+val rindex: string -> char -> int
+ (* [String.rindex s c] returns the position of the rightmost
+ occurrence of character [c] in string [s].
+ Raise [Not_found] if [c] does not occur in [s]. *)
+val index_from: string -> int -> char -> int
+val rindex_from: string -> int -> char -> int
+ (* Same as [String.index] and [String.rindex], but start
+ searching at the character position given as second argument.
+ [String.index s c] is equivalent to [String.index_from s 0 c],
+ and [String.rindex s c] to
+ [String.rindex_from s (String.length s - 1) c]. *)
+
+val contains : string -> char -> bool
+ (* [String.contains s c] tests if character [c]
+ appears in the string [s]. *)
+val contains_from : string -> int -> char -> bool
+ (* [String.contains_from s start c] tests if character [c]
+ appears in the substring of [s] starting from [start] to the end
+ of [s].
+ Raise [Invalid_argument] if [start] is not a valid index of [s]. *)
+val rcontains_from : string -> int -> char -> bool
+ (* [String.rcontains_from s stop c] tests if character [c]
+ appears in the substring of [s] starting from the beginning
+ of [s] to index [stop].
+ Raise [Invalid_argument] if [stop] is not a valid index of [s]. *)
+
+val uppercase: string -> string
+ (* Return a copy of the argument, with all lowercase letters
+ translated to uppercase, including accented letters of the ISO
+ Latin-1 (8859-1) character set. *)
+val lowercase: string -> string
+ (* Return a copy of the argument, with all uppercase letters
+ translated to lowercase, including accented letters of the ISO
+ Latin-1 (8859-1) character set. *)
+val capitalize: string -> string
+ (* Return a copy of the argument, with the first letter
+ set to uppercase. *)
+val uncapitalize: string -> string
+ (* Return a copy of the argument, with the first letter
+ set to lowercase. *)
+
+(*--*)
+
+external unsafe_get : string -> int -> char = "%string_unsafe_get"
+external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
+external unsafe_blit :
+ src:string -> src_pos:int ->
+ dst:string -> dst_pos:int -> len:int -> unit
+ = "blit_string" "noalloc"
+external unsafe_fill : string -> pos:int -> len:int -> char -> unit
+ = "fill_string" "noalloc"