Module Batteries_uni.UCharParser


module UCharParser: BatUCharParser

type position = BatCharParser.position = {
   offset : int; (*Offset on the line (starting at 0)*)
   line : int; (*Line number (starting at 0)*)
}
The position inside one file or one stream.
val advance : BatCamomile.UChar.t -> position -> position
Advance by one char.

advance c p returns a new position advanced by one char. If c is '\r' or '\n', the result is {offset = 0; line = p.line + 1}. Other wise, the result is {offset = p.offset + 1; line = p.line}.

val source_of_rope : BatRope.t ->
(BatCamomile.UChar.t, position) BatParserCo.Source.t
Create a source from a Unicode Rope.
val source_of_enum : BatCamomile.UChar.t BatEnum.t ->
(BatCamomile.UChar.t, position) BatParserCo.Source.t
Create a source from an enumeration of unicode characters.
val parse : (BatCamomile.UChar.t, 'a, position) BatParserCo.t ->
BatRope.t -> ('a, position BatParserCo.report) BatStd.result
Apply a parser to a Unicode Rope.

Utilities

val char : BatCamomile.UChar.t ->
(BatCamomile.UChar.t, BatCamomile.UChar.t, position)
BatParserCo.t
Recognize exactly one char
val none_of : BatCamomile.UChar.t list ->
(BatCamomile.UChar.t, BatCamomile.UChar.t, position)
BatParserCo.t
Accept any value not in a list As ParserCo.none_of, just with improved error message.
val not_char : BatCamomile.UChar.t ->
(BatCamomile.UChar.t, BatCamomile.UChar.t, position)
BatParserCo.t
Accept any value not a given char As none_of.
val string : string ->
(BatCamomile.UChar.t, string, position) BatParserCo.t
Recognize exactly one string
val rope : BatRope.t ->
(BatCamomile.UChar.t, BatRope.t, position) BatParserCo.t
Recognize exactly one string
val ustring : BatUTF8.t ->
(BatCamomile.UChar.t, BatUTF8.t, position) BatParserCo.t
Recognize exactly one string
val case_char : BatCamomile.UChar.t ->
(BatCamomile.UChar.t, BatUTF8.t, position) BatParserCo.t
As char, but case-insensitive
val case_string : string ->
(BatCamomile.UChar.t, string, position) BatParserCo.t
As string, but case-insensitive
val case_ustring : BatUTF8.t ->
(BatCamomile.UChar.t, BatUTF8.t, position) BatParserCo.t
As ustring, but case-insensitive
val case_rope : BatRope.t ->
(BatCamomile.UChar.t, BatRope.t, position) BatParserCo.t
As rope, but case-insensitive
val newline : (BatCamomile.UChar.t, BatCamomile.UChar.t, position)
BatParserCo.t
Recognizes a newline
val whitespace : (BatCamomile.UChar.t, BatCamomile.UChar.t, position)
BatParserCo.t
Recognizes white-space
val uppercase : (BatCamomile.UChar.t, BatCamomile.UChar.t, position)
BatParserCo.t
Recognizes one upper-case ASCII character, including accentuated characters.
val lowercase : (BatCamomile.UChar.t, BatCamomile.UChar.t, position)
BatParserCo.t
Recognizes one lower-case character, including accentuated characters.
val letter : (BatCamomile.UChar.t, BatCamomile.UChar.t, position)
BatParserCo.t
Recognizes one lower- or upper-case character.
val digit : (BatCamomile.UChar.t, BatCamomile.UChar.t, position)
BatParserCo.t
Recognizes one decimal digit
val hex : (BatCamomile.UChar.t, BatCamomile.UChar.t, position)
BatParserCo.t
Recognizes one hexadecimal digit (case-insensitive)