diff --git a/src/string_with_vars.ml b/src/string_with_vars.ml index 7e99f400..05d9d2ff 100644 --- a/src/string_with_vars.ml +++ b/src/string_with_vars.ml @@ -208,6 +208,15 @@ module Var = struct match destruct t with | Single s -> s | Pair (k, v) -> k ^ ":" ^ v + + let to_string = string_of_var + + let fail v ~f = Loc.fail (loc v) "%s" (f (to_string v)) + + let sexp_of_t t = Sexp.atom (to_string t) + + let rename t ~new_name = + { t with name = new_name } end let partial_expand diff --git a/src/string_with_vars.mli b/src/string_with_vars.mli index 649bbc8d..7dda300f 100644 --- a/src/string_with_vars.mli +++ b/src/string_with_vars.mli @@ -49,6 +49,8 @@ end module Var : sig type t + val sexp_of_t : t -> Sexp.t + val loc : t -> Loc.t val full_name : t -> string @@ -57,6 +59,12 @@ module Var : sig | Pair of string * string val destruct : t -> kind + + val fail : t -> f:(string -> string) -> _ + + val to_string : t -> string + + val rename : t -> new_name:string -> t end val expand