Module Re2.Parser
include Re2__.Parser_intf.Parser
module Open_on_rhs_intf : sig ... endinclude Core_kernel.Applicative.Let_syntax with type 'a t := 'a t with module Open_on_rhs_intf := Open_on_rhs_intf
module Open_on_rhs_intf : sig ... endmodule Let_syntax : sig ... endinclude Open_on_rhs_intf.S with type 'a S.t := 'a t
- type 'a t- = 'a t
- A value of type - 'a tis a regex that parses- 'as. The matching is implemented using Re2.- UTF-8 is supported by Re2 but not by this module. This is because we want to use - charas a character type, but that's just wrong in a multibyte encoding.
- val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Ppx_sexp_conv_lib.Sexp.t
- val compile : ?case_sensitive:bool -> 'a t -> (string -> 'a option) Core_kernel.Staged.t
- case_sensitivedefaults to- true.
- val run : ?case_sensitive:bool -> 'a t -> string -> 'a option
- val matches : ?case_sensitive:bool -> 'a t -> string -> bool
- val to_regex_string : _ t -> string
- to_regex_stringand- to_re2both forget what a- 'a tknows about turning the matching strings into- 'as
The applicative interface provides sequencing, e.g. both a b is a regex that parses an a followed by a b and returns both results in a pair.
include Core_kernel.Applicative.S with type 'a t := 'a t
- val apply : ('a -> 'b) t -> 'a t -> 'b t
- val map2 : 'a t -> 'b t -> f:('a -> 'b -> 'c) -> 'c t
- val map3 : 'a t -> 'b t -> 'c t -> f:('a -> 'b -> 'c -> 'd) -> 'd t
- val all : 'a t list -> 'a list t
- val all_unit : unit t list -> unit t
- val all_ignore : unit t list -> unit t
module Applicative_infix : Base__.Applicative_intf.Applicative_infix with type 'a t := 'a t- val of_re2 : Regex.t -> string option array t
- of_re2 rforgets the options that- rwas compiled with, instead using- `Encoding_latin1 true,- `Dot_nl true, and the case-sensitivity setting of the overall pattern. You can still try and use '(?flags:re)' Re2 syntax to set options for the scope of this regex.- The returned values are precisely the captures of the underlying regex, in order: note that unlike (say) - Re2.Match.get_all, the whole match is *not* included (if you want that, just use- capture). Named captures are not accessible by name.
- val ignore : _ t -> unit t
- ignore tis a regex which matches the same strings that- tmatches, but doesn't call functions on the captured submatches. Particularly, something like- ignore (map (string "x") ~f:Int.of_string)won't raise an exception, because the int conversion is never attempted.
- val and_capture : 'a t -> ('a * string) t
- and_capture treturns the string matched by- tin addition to whatever it was already going to return.
- val fail : 'a t
- Regex that matches nothing 
- val or_ : 'a t list -> 'a t
- val optional : ?greedy:bool -> 'a t -> 'a option t
- greedydefaults to true. If false, the regexp will prefer not matching.
- val repeat : ?greedy:bool -> ?min:int -> ?max:int option -> unit t -> unit t
- repeat ~min ~max tconstructs the regex- t{min,max}.- mindefaults to- 0and- maxdefaults to- None(unbounded), so that just plain- repeat tis equivalent to- t*.- It would be better for - repeatto be- 'a t -> 'a list t, but the re2 library doesn't give you access to repeated submatches like that. Hence,- repeatignores all submatches of its argument and does not call any callbacks that may have been attached to them, as if it had- ignorecalled on its result.
- val times : unit t -> int -> unit t
- times r nessentially constructs the regex- r{n}. It is equivalent to- repeat ~min:n ~max:(Some n) r.- Compare with, say, - all (List.init n ~f:(fun _ -> r)), which constructs the regex rrr...r (with n copies of r) and has the type- 'a t -> 'a list t.
- val string : string -> unit t
- val any_string : string t
- val start_of_input : unit t
- Matches empty string at the beginning of the text 
- val end_of_input : unit t
- Matches empty string at the end of the text 
module Char : sig ... endmodule Decimal : sig ... end