sig
type 'a or_error = ('a, string) Result.result
type line_num = int
type col_num = int
type parse_branch
val string_of_branch : CCParse.parse_branch -> string
exception ParseError of CCParse.parse_branch * (unit -> string)
type position
type state
val state_of_string : string -> CCParse.state
type 'a t = CCParse.state -> ok:('a -> unit) -> err:(exn -> unit) -> unit
val return : 'a -> 'a CCParse.t
val pure : 'a -> 'a CCParse.t
val ( >|= ) : 'a CCParse.t -> ('a -> 'b) -> 'b CCParse.t
val map : ('a -> 'b) -> 'a CCParse.t -> 'b CCParse.t
val map2 : ('a -> 'b -> 'c) -> 'a CCParse.t -> 'b CCParse.t -> 'c CCParse.t
val map3 :
('a -> 'b -> 'c -> 'd) ->
'a CCParse.t -> 'b CCParse.t -> 'c CCParse.t -> 'd CCParse.t
val ( >>= ) : 'a CCParse.t -> ('a -> 'b CCParse.t) -> 'b CCParse.t
val ( <*> ) : ('a -> 'b) CCParse.t -> 'a CCParse.t -> 'b CCParse.t
val ( <* ) : 'a CCParse.t -> 'b CCParse.t -> 'a CCParse.t
val ( *> ) : 'b CCParse.t -> 'a CCParse.t -> 'a CCParse.t
val fail : string -> 'a CCParse.t
val failf : ('a, unit, string, 'b CCParse.t) Pervasives.format4 -> 'a
val parsing : string -> 'a CCParse.t -> 'a CCParse.t
val eoi : unit CCParse.t
val nop : unit CCParse.t
val char : char -> char CCParse.t
val char_if : (char -> bool) -> char CCParse.t
val chars_if : (char -> bool) -> string CCParse.t
val chars1_if : (char -> bool) -> string CCParse.t
val endline : char CCParse.t
val space : char CCParse.t
val white : char CCParse.t
val skip_chars : (char -> bool) -> unit CCParse.t
val skip_space : unit CCParse.t
val skip_white : unit CCParse.t
val is_alpha : char -> bool
val is_num : char -> bool
val is_alpha_num : char -> bool
val is_space : char -> bool
val is_white : char -> bool
val ( <|> ) : 'a CCParse.t -> 'a CCParse.t -> 'a CCParse.t
val ( <?> ) : 'a CCParse.t -> string -> 'a CCParse.t
val try_ : 'a CCParse.t -> 'a CCParse.t
val suspend : (unit -> 'a CCParse.t) -> 'a CCParse.t
val string : string -> string CCParse.t
val many : 'a CCParse.t -> 'a list CCParse.t
val many1 : 'a CCParse.t -> 'a list CCParse.t
val skip : 'a CCParse.t -> unit CCParse.t
val sep : by:'b CCParse.t -> 'a CCParse.t -> 'a list CCParse.t
val sep1 : by:'b CCParse.t -> 'a CCParse.t -> 'a list CCParse.t
val fix : ('a CCParse.t -> 'a CCParse.t) -> 'a CCParse.t
val memo : 'a CCParse.t -> 'a CCParse.t
val fix_memo : ('a CCParse.t -> 'a CCParse.t) -> 'a CCParse.t
val get_lnum : int CCParse.t
val get_cnum : int CCParse.t
val get_pos : (int * int) CCParse.t
val parse : 'a CCParse.t -> CCParse.state -> 'a CCParse.or_error
val parse_exn : 'a CCParse.t -> CCParse.state -> 'a
val parse_string : 'a CCParse.t -> string -> 'a CCParse.or_error
val parse_string_exn : 'a CCParse.t -> string -> 'a
val parse_file : 'a CCParse.t -> string -> 'a CCParse.or_error
val parse_file_exn : 'a CCParse.t -> string -> 'a
module Infix :
sig
val ( >|= ) : 'a CCParse.t -> ('a -> 'b) -> 'b CCParse.t
val ( >>= ) : 'a CCParse.t -> ('a -> 'b CCParse.t) -> 'b CCParse.t
val ( <*> ) : ('a -> 'b) CCParse.t -> 'a CCParse.t -> 'b CCParse.t
val ( <* ) : 'a CCParse.t -> 'b CCParse.t -> 'a CCParse.t
val ( *> ) : 'b CCParse.t -> 'a CCParse.t -> 'a CCParse.t
val ( <|> ) : 'a CCParse.t -> 'a CCParse.t -> 'a CCParse.t
val ( <?> ) : 'a CCParse.t -> string -> 'a CCParse.t
end
module U :
sig
val list :
?start:string ->
?stop:string -> ?sep:string -> 'a CCParse.t -> 'a list CCParse.t
val int : int CCParse.t
val word : string CCParse.t
val pair :
?start:string ->
?stop:string ->
?sep:string -> 'a CCParse.t -> 'b CCParse.t -> ('a * 'b) CCParse.t
val triple :
?start:string ->
?stop:string ->
?sep:string ->
'a CCParse.t ->
'b CCParse.t -> 'c CCParse.t -> ('a * 'b * 'c) CCParse.t
end
end