sig
class ['a] cursor :
int ->
object ('b)
val position_ : int
method advance : 'a -> 'b
method error : int -> ('a * 'b) Cf_seq.t -> unit
method position : int
end
module type Symbol_T =
sig
type t
val size : int
val to_int : Cf_dfa.Symbol_T.t -> int
val of_int : int -> Cf_dfa.Symbol_T.t
end
module type T =
sig
module S : Symbol_T
type ('a, 'b) t = ('a, S.t, 'b) Cf_parser.X.t
constraint 'a = S.t #Cf_dfa.cursor
type expr_t
type ('a, 'b) rule_t constraint 'a = S.t #Cf_dfa.cursor
val nil : Cf_dfa.T.expr_t
module Op :
sig
val ( $| ) : Cf_dfa.T.expr_t -> Cf_dfa.T.expr_t -> Cf_dfa.T.expr_t
val ( $& ) : Cf_dfa.T.expr_t -> Cf_dfa.T.expr_t -> Cf_dfa.T.expr_t
val ( !* ) : Cf_dfa.T.expr_t -> Cf_dfa.T.expr_t
val ( !+ ) : Cf_dfa.T.expr_t -> Cf_dfa.T.expr_t
val ( !? ) : Cf_dfa.T.expr_t -> Cf_dfa.T.expr_t
val ( !: ) : S.t -> Cf_dfa.T.expr_t
val ( !^ ) : (S.t -> bool) -> Cf_dfa.T.expr_t
val ( !~ ) : S.t Cf_seq.t -> Cf_dfa.T.expr_t
val ( $= ) :
Cf_dfa.T.expr_t -> 'a -> (S.t #Cf_dfa.cursor, 'a) Cf_dfa.T.rule_t
val ( $> ) :
Cf_dfa.T.expr_t ->
(S.t Cf_seq.t -> 'a) -> (S.t #Cf_dfa.cursor, 'a) Cf_dfa.T.rule_t
val ( $@ ) :
Cf_dfa.T.expr_t ->
(int -> (S.t #Cf_dfa.cursor as 'a, 'b) Cf_dfa.T.t) ->
('a, 'b) Cf_dfa.T.rule_t
val ( !@ ) :
(S.t #Cf_dfa.cursor as 'a, 'b) Cf_dfa.T.rule_t list ->
('a, 'b) Cf_dfa.T.rule_t
end
val create :
(S.t #Cf_dfa.cursor as 'a, 'b) Cf_dfa.T.rule_t -> ('a, 'b) Cf_dfa.T.t
end
module Create :
functor (S : Symbol_T) ->
sig
module S :
sig
type t = S.t
val size : int
val to_int : t -> int
val of_int : int -> t
end
type ('a, 'b) t = ('a, S.t, 'b) Cf_parser.X.t
constraint 'a = S.t #cursor
type expr_t
type ('a, 'b) rule_t constraint 'a = S.t #cursor
val nil : expr_t
module Op :
sig
val ( $| ) : expr_t -> expr_t -> expr_t
val ( $& ) : expr_t -> expr_t -> expr_t
val ( !* ) : expr_t -> expr_t
val ( !+ ) : expr_t -> expr_t
val ( !? ) : expr_t -> expr_t
val ( !: ) : S.t -> expr_t
val ( !^ ) : (S.t -> bool) -> expr_t
val ( !~ ) : S.t Cf_seq.t -> expr_t
val ( $= ) : expr_t -> 'a -> (S.t #cursor, 'a) rule_t
val ( $> ) :
expr_t -> (S.t Cf_seq.t -> 'a) -> (S.t #cursor, 'a) rule_t
val ( $@ ) :
expr_t -> (int -> (S.t #cursor as 'a, 'b) t) -> ('a, 'b) rule_t
val ( !@ ) :
(S.t #cursor as 'a, 'b) rule_t list -> ('a, 'b) rule_t
end
val create : (S.t #cursor as 'a, 'b) rule_t -> ('a, 'b) t
end
end