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