Module Regenerate.Regex

Definition of Regular expressions and associated utilities.

type 'a cset = 'a list
type 'a t =
| One
| Set of bool * 'a cset
| Seq of 'a t * 'a t
| Or of 'a t * 'a t
| And of 'a t * 'a t
| Not of 'a t
| Rep of int * int option * 'a t

Smart constructors

val epsilon : 'a t
val void : 'a t
val atom : 'a ‑> 'a t
val char : 'a ‑> 'a t
val charset : 'a cset ‑> 'a t
val complset : 'a cset ‑> 'a t
val enumerate : char ‑> char ‑> char list option
val reduce : 'a ‑> ('a ‑> 'a ‑> 'a) ‑> 'a list ‑> 'a
val seq : 'a t list ‑> 'a t
val alt : 'a t ‑> 'a t ‑> 'a t
val inter : 'a t ‑> 'a t ‑> 'a t
val compl : 'a t ‑> 'a t
val rep : int ‑> int option ‑> 'a t ‑> 'a t
val star : 'a t ‑> 'a t
val plus : 'a t ‑> 'a t
val opt : 'a t ‑> 'a t

QCheck utilities

val size : 'a t ‑> int
val prio : 'a t ‑> int
val pp : ?⁠epsilon:bool ‑> 'a Fmt.t ‑> 'a t Fmt.t
val gen : compl:bool ‑> 'a QCheck.Gen.t ‑> 'a t QCheck.Gen.t