`sig
module ULB :
sig
type unicode_lexbuf = private {
mutable ulb_encoding : Netconversion.encoding;
mutable ulb_encoding_start : int;
mutable ulb_rawbuf : Stdlib.Bytes.t;
mutable ulb_rawbuf_len : int;
mutable ulb_rawbuf_end : int;
mutable ulb_rawbuf_const : bool;
mutable ulb_chars : int array;
mutable ulb_chars_pos : int array;
mutable ulb_chars_len : int;
mutable ulb_eof : bool;
mutable ulb_refill : Stdlib.Bytes.t -> int -> int -> int;
mutable ulb_enc_change_hook : Netulex.ULB.unicode_lexbuf -> unit;
mutable ulb_cursor : Stdlib.Bytes.t Netconversion.poly_cursor;
}
val from_function :
?raw_size:int ->
?char_size:int ->
?enc_change_hook:(Netulex.ULB.unicode_lexbuf -> unit) ->
refill:(Stdlib.Bytes.t -> int -> int -> int) ->
Netconversion.encoding -> Netulex.ULB.unicode_lexbuf
val from_in_obj_channel :
?raw_size:int ->
?char_size:int ->
?enc_change_hook:(Netulex.ULB.unicode_lexbuf -> unit) ->
Netconversion.encoding ->
Netchannels.in_obj_channel -> Netulex.ULB.unicode_lexbuf
val from_string :
?enc_change_hook:(Netulex.ULB.unicode_lexbuf -> unit) ->
Netconversion.encoding -> string -> Netulex.ULB.unicode_lexbuf
val from_bytes :
?enc_change_hook:(Netulex.ULB.unicode_lexbuf -> unit) ->
Netconversion.encoding ->
Stdlib.Bytes.t -> Netulex.ULB.unicode_lexbuf
val from_bytes_inplace :
?enc_change_hook:(Netulex.ULB.unicode_lexbuf -> unit) ->
Netconversion.encoding ->
Stdlib.Bytes.t -> Netulex.ULB.unicode_lexbuf
val delete : int -> Netulex.ULB.unicode_lexbuf -> unit
val refill : Netulex.ULB.unicode_lexbuf -> unit
val set_encoding :
Netconversion.encoding -> Netulex.ULB.unicode_lexbuf -> unit
val close : Netulex.ULB.unicode_lexbuf -> unit
val utf8_sub_string :
int -> int -> Netulex.ULB.unicode_lexbuf -> string
val utf8_sub_string_length :
int -> int -> Netulex.ULB.unicode_lexbuf -> int
end
module Ulexing :
sig
type lexbuf
exception Error
val from_ulb_lexbuf :
Netulex.ULB.unicode_lexbuf -> Netulex.Ulexing.lexbuf
val lexeme_start : Netulex.Ulexing.lexbuf -> int
val lexeme_end : Netulex.Ulexing.lexbuf -> int
val lexeme_length : Netulex.Ulexing.lexbuf -> int
val lexeme : Netulex.Ulexing.lexbuf -> int array
val lexeme_char : Netulex.Ulexing.lexbuf -> int -> int
val sub_lexeme : Netulex.Ulexing.lexbuf -> int -> int -> int array
val utf8_lexeme : Netulex.Ulexing.lexbuf -> string
val utf8_sub_lexeme : Netulex.Ulexing.lexbuf -> int -> int -> string
val utf8_sub_lexeme_length :
Netulex.Ulexing.lexbuf -> int -> int -> int
val start : Netulex.Ulexing.lexbuf -> unit
val next : Netulex.Ulexing.lexbuf -> int
val mark : Netulex.Ulexing.lexbuf -> int -> unit
val backtrack : Netulex.Ulexing.lexbuf -> int
end
end`