blob: 690a291ad850149e7647add1ad61a69864f61751 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
(**************************************************************************)
(* *)
(* OCaml *)
(* *)
(* Daniel C. Buenzli *)
(* *)
(* Copyright 2014 Institut National de Recherche en Informatique et *)
(* en Automatique. *)
(* *)
(* All rights reserved. This file is distributed under the terms of *)
(* the GNU Lesser General Public License version 2.1, with the *)
(* special exception on linking described in the file LICENSE. *)
(* *)
(**************************************************************************)
(** Unicode characters.
@since 4.03 *)
type t
(** The type for Unicode characters.
A value of this type represents an Unicode
{{:http://unicode.org/glossary/#unicode_scalar_value}scalar
value} which is an integer in the ranges [0x0000]...[0xD7FF] or
[0xE000]...[0x10FFFF]. *)
val min : t
(** [min] is U+0000. *)
val max : t
(** [max] is U+10FFFF. *)
val succ : t -> t
(** [succ u] is the scalar value after [u] in the set of Unicode scalar
values.
@raise Invalid_argument if [u] is {!max}. *)
val pred : t -> t
(** [pred u] is the scalar value before [u] in the set of Unicode scalar
values.
@raise Invalid_argument if [u] is {!min}. *)
val is_valid : int -> bool
(** [is_valid n] is [true] iff [n] is an Unicode scalar value
(i.e. in the ranges [0x0000]...[0xD7FF] or [0xE000]...[0x10FFFF]).*)
val of_int : int -> t
(** [of_int i] is [i] as an Unicode character.
@raise Invalid_argument if [i] does not satisfy {!is_valid}. *)
(**/**)
val unsafe_of_int : int -> t
(**/**)
val to_int : t -> int
(** [to_int u] is [u] as an integer. *)
val is_char : t -> bool
(** [is_char u] is [true] iff [u] is a latin1 OCaml character. *)
val of_char : char -> t
(** [of_char c] is [c] as an Unicode character. *)
val to_char : t -> char
(** [to_char u] is [u] as an OCaml latin1 character.
@raise Invalid_argument if [u] does not satisfy {!is_char}. *)
(**/**)
val unsafe_to_char : t -> char
(**/**)
val equal : t -> t -> bool
(** [equal u u'] is [u = u']. *)
val compare : t -> t -> int
(** [compare u u'] is [Pervasives.compare u u']. *)
val hash : t -> int
(** [hash u] associates a non-negative integer to [u]. *)
val dump : Format.formatter -> t -> unit
(** [dump ppf u] prints a representation of [u] on [ppf] using
only US-ASCII encoded characters according to the Unicode
{{:http://www.unicode.org/versions/latest/appA.pdf}notational
convention for code points}. *)
|