sig
type ('i, 'o) t = 'i Cf_seq.t -> ('o * 'i Cf_seq.t) option
exception Error
val nil : ('i, 'o) Cf_parser.t
val err : ?f:('i Cf_seq.t -> exn) -> unit -> ('i, 'x) Cf_parser.t
val req :
?f:('i Cf_seq.t -> exn) -> ('i, 'o) Cf_parser.t -> ('i, 'o) Cf_parser.t
val fin : ('i, unit) Cf_parser.t
val alt : ('i, 'o) Cf_parser.t list -> ('i, 'o) Cf_parser.t
val altz : ('i, 'o) Cf_parser.t Cf_seq.t -> ('i, 'o) Cf_parser.t
val sat : ('i -> bool) -> ('i, 'i) Cf_parser.t
val tok : ('i -> 'o option) -> ('i, 'o) Cf_parser.t
val lit : string -> 'o -> (char, 'o) Cf_parser.t
val unfold : ('i, 'o) Cf_parser.t -> 'i Cf_seq.t -> 'o Cf_seq.t
class ['i] cursor :
int ->
object ('a)
val position_ : int
method advance : 'i -> 'a
method position : int
end
module X :
sig
type ('a, 'i, 'o) t =
('i * 'a) Cf_seq.t -> ('o * ('i * 'a) Cf_seq.t) option
constraint 'a = 'x #Cf_parser.cursor
exception Error of int
val err :
?f:(('i * ('b #Cf_parser.cursor as 'a)) Cf_seq.t -> exn) ->
unit -> ('a, 'i, 'o) Cf_parser.X.t
val req :
?f:(('i * ('b #Cf_parser.cursor as 'a)) Cf_seq.t -> exn) ->
('a, 'i, 'o) Cf_parser.X.t -> ('a, 'i, 'o) Cf_parser.X.t
val sat : ('i -> bool) -> ('a #Cf_parser.cursor, 'i, 'i) Cf_parser.X.t
val tok :
('i -> 'o option) -> ('a #Cf_parser.cursor, 'i, 'o) Cf_parser.X.t
val lit :
string -> 'o -> ('a #Cf_parser.cursor, char, 'o) Cf_parser.X.t
val weave :
c:('i #Cf_parser.cursor as 'c) -> 'i Cf_seq.t -> ('i * 'c) Cf_seq.t
val unfold :
('b #Cf_parser.cursor as 'a, 'i, 'o) Cf_parser.X.t ->
('i * 'a) Cf_seq.t -> ('o * 'a) Cf_seq.t
end
module Op :
sig
val ( >>= ) :
('i, 'a) Cf_parser.t ->
('a -> ('i, 'b) Cf_parser.t) -> ('i, 'b) Cf_parser.t
val ( ~: ) : 'o -> ('i, 'o) Cf_parser.t
val ( ?. ) : 'i -> ('i, 'i) Cf_parser.t
val ( ?: ) : 'i -> ('a #Cf_parser.cursor, 'i, 'i) Cf_parser.X.t
val ( ?/ ) : ('i, 'o) Cf_parser.t -> ('i, 'o option) Cf_parser.t
val ( ?* ) : ('i, 'o) Cf_parser.t -> ('i, 'o list) Cf_parser.t
val ( ?+ ) : ('i, 'o) Cf_parser.t -> ('i, 'o * 'o list) Cf_parser.t
val ( %= ) :
('b #Cf_parser.cursor as 'a, 'i, 'x) Cf_parser.X.t ->
('a, 'x, 'o) Cf_parser.X.t -> ('a, 'i, 'o) Cf_parser.X.t
end
val filter : ('o -> bool) -> ('i, 'o) Cf_parser.t -> ('i, 'o) Cf_parser.t
val map : ('x -> 'y) -> ('i, 'x) Cf_parser.t -> ('i, 'y) Cf_parser.t
val optmap :
('x -> 'y option) -> ('i, 'x) Cf_parser.t -> ('i, 'y) Cf_parser.t
val to_extended :
('i, 'o) Cf_parser.t -> ('a #Cf_parser.cursor, 'i, 'o) Cf_parser.X.t
val of_extended :
('i #Cf_parser.cursor as 'c) ->
('c, 'i, 'o) Cf_parser.X.t -> ('i, 'o) Cf_parser.t
end