sig
class cursor :
int ->
object ('a)
val position_ : int
method advance : char -> 'a
method error : int -> (char * 'a) Cf_seq.t -> unit
method position : int
end
type expr_t
type ('a, 'b) rule_t constraint 'a = #Cf_lexer.cursor
type ('a, 'b) t = ('a, char, 'b) Cf_parser.X.t
constraint 'a = #Cf_lexer.cursor
module Op :
sig
val ( !: ) : char -> Cf_lexer.expr_t
val ( !^ ) : (char -> bool) -> Cf_lexer.expr_t
val ( !~ ) : char Cf_seq.t -> Cf_lexer.expr_t
val ( !$ ) : string -> Cf_lexer.expr_t
val ( $| ) : Cf_lexer.expr_t -> Cf_lexer.expr_t -> Cf_lexer.expr_t
val ( $& ) : Cf_lexer.expr_t -> Cf_lexer.expr_t -> Cf_lexer.expr_t
val ( !* ) : Cf_lexer.expr_t -> Cf_lexer.expr_t
val ( !+ ) : Cf_lexer.expr_t -> Cf_lexer.expr_t
val ( !? ) : Cf_lexer.expr_t -> Cf_lexer.expr_t
val ( $= ) :
Cf_lexer.expr_t -> 'a -> (#Cf_lexer.cursor, 'a) Cf_lexer.rule_t
val ( $> ) :
Cf_lexer.expr_t ->
(char Cf_seq.t -> 'a) -> (#Cf_lexer.cursor, 'a) Cf_lexer.rule_t
val ( $^ ) :
Cf_lexer.expr_t ->
(string -> 'a) -> (#Cf_lexer.cursor, 'a) Cf_lexer.rule_t
val ( $@ ) :
Cf_lexer.expr_t ->
(int -> (#Cf_lexer.cursor as 'a, 'b) Cf_lexer.t) ->
('a, 'b) Cf_lexer.rule_t
val ( !@ ) :
(#Cf_lexer.cursor as 'a, 'b) Cf_lexer.rule_t list ->
('a, 'b) Cf_lexer.rule_t
end
val nil : Cf_lexer.expr_t
val create :
(#Cf_lexer.cursor as 'a, 'b) Cf_lexer.rule_t -> ('a, 'b) Cf_lexer.t
type counter_t = { c_pos : int; c_row : int; c_col : int; }
val counter_zero : Cf_lexer.counter_t
class line_cursor :
?c:Cf_lexer.counter_t ->
string ->
object ('a)
val col_ : int
val nl0_ : char list
val nlz_ : char list
val position_ : int
val row_ : int
method advance : char -> 'a
method col : int
method counter : Cf_lexer.counter_t
method error : int -> (char * 'a) Cf_seq.t -> unit
method private next : char -> int * int * char list
method position : int
method row : int
end
exception Error of Cf_lexer.counter_t
val raise_exn : int -> (char * #Cf_lexer.line_cursor) Cf_seq.t -> exn
end