2016-12-23 15:32:23 +00:00
|
|
|
(** String with variables of the form ${...} or $(...)
|
|
|
|
|
|
|
|
Variables cannot contain "${", "$(", ")" or "}". For instance in "$(cat ${x})", only
|
|
|
|
"${x}" will be considered a variable, the rest is text. *)
|
2016-12-02 13:54:32 +00:00
|
|
|
|
|
|
|
open Import
|
|
|
|
|
|
|
|
type t
|
2017-02-25 17:53:39 +00:00
|
|
|
val t : t Sexp.Of_sexp.t
|
2017-02-21 17:13:30 +00:00
|
|
|
val sexp_of_t : t -> Sexp.t
|
2016-12-02 13:54:32 +00:00
|
|
|
|
2017-05-05 11:26:56 +00:00
|
|
|
val loc : t -> Loc.t
|
|
|
|
|
2017-05-30 14:40:06 +00:00
|
|
|
val to_string : t -> string
|
2017-06-08 09:54:46 +00:00
|
|
|
|
|
|
|
(** [t] generated by the OCaml code. The first argument should be [__POS__]. The second is
|
|
|
|
either a string to parse, a variable name or plain text. *)
|
|
|
|
val virt : (string * int * int * int) -> string -> t
|
|
|
|
val virt_var : (string * int * int * int) -> string -> t
|
|
|
|
val virt_text : (string * int * int * int) -> string -> t
|
2016-12-02 13:54:32 +00:00
|
|
|
|
2017-03-03 11:49:40 +00:00
|
|
|
val just_a_var : t -> string option
|
|
|
|
|
2016-12-02 13:54:32 +00:00
|
|
|
val vars : t -> String_set.t
|
|
|
|
|
2017-05-05 11:26:56 +00:00
|
|
|
val fold : t -> init:'a -> f:('a -> Loc.t -> string -> 'a) -> 'a
|
2017-05-31 07:31:52 +00:00
|
|
|
val iter : t -> f:(Loc.t -> string -> unit) -> unit
|
2016-12-02 13:54:32 +00:00
|
|
|
|
2017-05-31 07:31:52 +00:00
|
|
|
val expand : t -> f:(Loc.t -> string -> string option) -> string
|
|
|
|
val partial_expand : t -> f:(Loc.t -> string -> string option) -> (string, t) either
|