From 8ef6af2675d6bdc45e515b8f5afe030648110237 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Sat, 7 Jul 2018 08:58:38 +0700 Subject: [PATCH] Add some helpers to String_with_loc Signed-off-by: Rudi Grinberg --- src/string_with_vars.ml | 9 +++++++++ src/string_with_vars.mli | 8 ++++++++ 2 files changed, 17 insertions(+) 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