module Ascii:sig..end
US-ASCII character support
The following functions act only on US-ASCII code points, that
is on the bytes in range [0x00;0x7F]. The functions can
be safely used on UTF-8 encoded strings, they will of course
only deal with US-ASCII related matters.
References.
val is_valid : char -> boolis_valid c is true iff c is an US-ASCII character,
that is a byte in the range [0x00;0x7F].
val is_digit : char -> boolis_digit c is true iff c is an US-ASCII digit
'0' ... '9', that is a byte in the range [0x30;0x39].
val is_hex_digit : char -> boolis_hex_digit c is true iff c is an US-ASCII hexadecimal
digit '0' ... '9', 'a' ... 'f', 'A' ... 'F',
that is a byte in one of the ranges [0x30;0x39],
[0x41;0x46], [0x61;0x66].
val is_upper : char -> boolis_upper c is true iff c is an US-ASCII uppercase
letter 'A' ... 'Z', that is a byte in the range
[0x41;0x5A].
val is_lower : char -> boolis_lower c is true iff c is an US-ASCII lowercase
letter 'a' ... 'z', that is a byte in the range
[0x61;0x7A].
val is_letter : char -> boolis_letter c is is_lower c || is_upper c.
val is_alphanum : char -> boolis_alphanum c is is_letter c || is_digit c.
val is_white : char -> boolis_white c is true iff c is an US-ASCII white space
character, that is one of space ' ' (0x20), tab '\t'
(0x09), newline '\n' (0x0A), vertical tab (0x0B), form
feed (0x0C), carriage return '\r' (0x0D).
val is_blank : char -> boolis_blank c is true iff c is an US-ASCII blank character,
that is either space ' ' (0x20) or tab '\t' (0x09).
val is_graphic : char -> boolis_graphic c is true iff c is an US-ASCII graphic
character that is a byte in the range [0x21;0x7E].
val is_print : char -> boolis_print c is is_graphic c || c = ' '.
val is_control : char -> boolis_control c is true iff c is an US-ASCII control character,
that is a byte in the range [0x00;0x1F] or 0x7F.
val uppercase : char -> charuppercase c is c with US-ASCII characters 'a' to 'z' mapped
to 'A' to 'Z'.
val lowercase : char -> charlowercase c is c with US-ASCII characters 'A' to 'Z' mapped
to 'a' to 'z'.
val escape : char -> stringescape c escapes c with:
'\\' (0x5C) escaped to the sequence "\\\\" (0x5C,0x5C).0x00;0x1F] and
[0x7F;0xFF] escaped by an hexadecimal "\xHH"
escape with H a capital hexadecimal number. These bytes
are the US-ASCII control characters and non US-ASCII bytes.Use Astring.String.Ascii.unescape to unescape.
val escape_char : char -> stringescape_char c is like Astring.Char.Ascii.escape except is escapes s according
to OCaml's lexical conventions for characters with:
'\b' (0x08) escaped to the sequence "\\b" (0x5C,0x62).'\t' (0x09) escaped to the sequence "\\t" (0x5C,0x74).'\n' (0x0A) escaped to the sequence "\\n" (0x5C,0x6E).'\r' (0x0D) escaped to the sequence "\\r" (0x5C,0x72).'\\'' (0x27) escaped to the sequence "\\'" (0x5C,0x27).Astring.Char.Ascii.escapeUse Astring.String.Ascii.unescape_string to unescape.