Module Re__.Automata

type mark = int
type sem = [
| `Longest
| `Shortest
| `First
]
type rep_kind = [
| `Greedy
| `Non_greedy
]
val pp_sem : Stdlib.Format.formatter -> sem -> unit
val pp_rep_kind : Stdlib.Format.formatter -> rep_kind -> unit
type expr
val is_eps : expr -> bool
val pp : Stdlib.Format.formatter -> expr -> unit
type ids
val create_ids : unit -> ids
val cst : ids -> Re__.Cset.t -> expr
val empty : ids -> expr
val alt : ids -> expr list -> expr
val seq : ids -> sem -> expr -> expr -> expr
val eps : ids -> expr
val rep : ids -> rep_kind -> sem -> expr -> expr
val mark : ids -> mark -> expr
val pmark : ids -> Re__.Pmark.t -> expr
val erase : ids -> mark -> mark -> expr
val before : ids -> Re__.Category.t -> expr
val after : ids -> Re__.Category.t -> expr
val rename : ids -> expr -> expr
type idx = int
module Marks : sig ... end
module E : sig ... end
type hash
type mark_infos = int array
type status =
| Failed
| Match of mark_infos * Re__.Pmark.Set.t
| Running
module State : sig ... end
type working_area
val create_working_area : unit -> working_area
val index_count : working_area -> int
val delta : working_area -> Re__.Category.t -> Re__.Cset.c -> State.t -> State.t
val deriv : working_area -> Re__.Cset.t -> (Re__.Category.t * Re__.Cset.t) list -> State.t -> (Re__.Cset.t * State.t) list
val status : State.t -> status