Char.Ascii
ASCII character set support.
These functions give meaning to the integers [0x00
;0x7F
] of the ASCII character set.
Since the UTF-8 encoding of Unicode has the same encoding and character semantics (U+0000 to U+001F) for these bytes, the functions can be safely used on elements of UTF-8 encoded string
and bytes
values. However the functions only deal with ASCII related matters. For example the notion of Unicode whitespace is much larger than the ASCII whitespace determined by Char.Ascii.is_white
.
is_upper c
is true
if and only if c
is an ASCII uppercase letter 'A'
to 'Z'
, that is a byte in the range [0x41
;0x5A
].
is_lower c
is true
if and only if c
is an ASCII lowercase letter 'a'
to 'z'
, that is a byte in the range [0x61
;0x7A
].
is_white c
is true
if and only if c
is an ASCII white space character, that is one of tab '\t'
(0x09
), newline '\n'
(0x0A
), vertical tab (0x0B
), form feed (0x0C
), carriage return '\r'
(0x0D
) or space ' '
(0x20
),
is_blank c
is true
if and only if c
is an ASCII blank character, that is either space ' '
(0x20
) or tab '\t'
(0x09
).
is_graphic c
is true
if and only if c
is an ASCII graphic character, that is a byte in the range [0x21
;0x7E
].
is_print c
is is_graphic
c || c = ' '
.
is_control c
is true
if and only if c
is an ASCII control character, that is a byte in the range [0x00
;0x1F
] or 0x7F
.
is_digit c
is true
if and only if c
is an ASCII decimal digit '0'
to '9'
, that is a byte in the range [0x30
;0x39
].
digit_of_int n
is an ASCII decimal digit for the decimal value abs (n mod 10)
.
is_hex_digit c
is true
if and only if c
is an ASCII hexadecimal digit '0'
to '9'
, 'a'
to 'f'
or 'A'
to 'F'
, that is a byte in one of the ranges [0x30
;0x39
], [0x41
;0x46
], [0x61
;0x66
].
hex_digit_to_int c
is the numerical value of a digit that satisfies is_hex_digit
. Raises Invalid_argument
if is_hex_digit
c
is false
.
lower_hex_digit_of_int n
is a lowercase ASCII hexadecimal digit for the hexadecimal value abs (n mod 16)
.
upper_hex_digit_of_int n
is an uppercase ASCII hexadecimal digit for the hexadecimal value abs (n mod 16)
.
uppercase c
is c
with ASCII characters 'a'
to 'z'
respectively mapped to uppercase characters 'A'
to 'Z'
. Other characters are left untouched.