Text utilities useful in Binary Analysis and Reverse Engineering
Library bap_strings


module A : Alphabet


type t
include Core_kernel.Bin_prot.Binable.S with type t := t
include Core_kernel.Bin_prot.Binable.S_only_functions with type t := t
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : ( int -> t ) Bin_prot.Read.reader

This function only needs implementation if t exposed to be a polymorphic variant. Despite what the type reads, this does *not* produce a function after reading; instead it takes the constructor tag (int) before reading and reads the rest of the variant t afterwards.

val bin_shape_t : Bin_prot.Shape.t
val bin_writer_t : t Bin_prot.Type_class.writer
val bin_reader_t : t Bin_prot.Type_class.reader
val compare : t -> t -> int
include Ppx_sexp_conv_lib.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
val empty : t

an empty unscrambler that doesn't know any words

val of_file : string -> t

of_file name reads the dictionary from file name, each word is on a separate line. (the standard linux dictionary file format)

val of_files : string list -> t

of_files names reads the dictionary from all provided file names, each file should be a sequence of newline separated words.

val add_word : t -> string -> t

add_word d x extends the dictionary d with the new word x.

val build : t -> string -> string Core_kernel.Sequence.t

build d chars returns a sequence of all words in the dictionary d that could be built from the sequence of characters chars

val is_buildable : t -> string -> bool

is_buildable d chars returns true if in the dictionary d exists a word that can be built from the given characters.