sig
type t
exception Illegal_character
val create : string -> Ligand.t
val get_string : Ligand.t -> string
type interval
val get_interval_length : Ligand.interval -> int
exception Overlapping_intervals
val compare_intervals : Ligand.interval -> Ligand.interval -> int
type frag
val get_interval : Ligand.frag -> Ligand.interval
val contains_end : Ligand.interval -> bool
val contains_begin : Ligand.interval -> bool
exception Stale_frag
val get_whole : Ligand.frag -> Ligand.t
val get_frag_list : Ligand.t -> Ligand.frag list
val get_active_interval_list : Ligand.t -> Ligand.interval list
exception Out_of_bounds
exception Empty
val first : Ligand.t -> Ligand.frag
val last : Ligand.t -> Ligand.frag
val next_frag : Ligand.frag -> Ligand.frag
val prev_frag : Ligand.frag -> Ligand.frag
val iter : (Ligand.frag -> unit) -> Ligand.t -> unit
module Matcher :
sig
type matcher = { stringform : string; compiledform : Str.regexp; }
val make : string -> Ligand.Matcher.matcher
val stringform : Ligand.Matcher.matcher -> string
val matcher_compare :
Ligand.Matcher.matcher -> Ligand.Matcher.matcher -> bool
val allmatches :
Ligand.Matcher.matcher -> Ligand.t -> Ligand.interval list
val verify_match_interval :
Ligand.Matcher.matcher -> Ligand.t -> Ligand.interval -> bool
val matcher_concat :
Ligand.Matcher.matcher list -> Ligand.Matcher.matcher
type string_permuter
val make_string_permuter :
Ligand.Matcher.matcher array ->
(int array * int array) * (int array * int array) ->
Ligand.Matcher.string_permuter
val permute_strings :
Ligand.Matcher.string_permuter -> string * string -> string * string
type snippet = string * Ligand.Matcher.matcher
val snipmatch :
Ligand.Matcher.snippet -> Ligand.Matcher.snippet -> bool
end
exception Unable_to_bind
exception Illegal_interval
val bind : Ligand.t -> Ligand.interval -> Ligand.frag
val check : Ligand.t -> Ligand.interval -> bool
exception Invalid_frag
val release : Ligand.frag -> unit
val replace : Ligand.frag -> string -> unit
type whichside = LeftSplit | RightSplit
and apportf = Ligand.frag -> Ligand.whichside * Ligand.frag
val split :
Ligand.frag ->
int ->
(Ligand.t * Ligand.frag) * (Ligand.t * Ligand.frag) * Ligand.apportf
type joinf = Ligand.whichside * Ligand.frag -> Ligand.frag
val join :
Ligand.frag -> Ligand.frag -> (Ligand.t * Ligand.frag) * Ligand.joinf
val collapse_interval : Ligand.interval -> int * int
val basic_interval : Ligand.t -> int -> int -> Ligand.interval
val get_interval_string : Ligand.t -> Ligand.interval -> string
val get_frag_string : Ligand.frag -> string
end