X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/f8dfbbcc29a40de94580697e610db6254b85f0fb..cd04086681583dd3fcc95b6e12ba312054dc590e:/src/env.sml?ds=sidebyside diff --git a/src/env.sml b/src/env.sml index 1a93a38..edb1ffd 100644 --- a/src/env.sml +++ b/src/env.sml @@ -41,6 +41,11 @@ fun registerContainer (name, befor, after) = containers := SM.insert (!containers, name, (befor, after)) fun container name = SM.find (!containers, name) +val functions : (exp list -> exp option) SM.map ref = ref SM.empty +fun registerFunction (name, f) = + functions := SM.insert (!functions, name, f) +fun function name = SM.find (!functions, name) + local val pr = ref (fn () => ()) in @@ -165,7 +170,9 @@ fun env arg (evs, name) = NONE => raise Fail ("Unavailable environment variable " ^ name) | SOME e => case arg e of - NONE => raise Fail ("Bad format for environment variable " ^ name) + NONE => (Print.preface ("Unexpected value for " ^ name ^ ":", + Print.p_exp e); + raise Fail ("Bad format for environment variable " ^ name)) | SOME v => v fun type_one func arg f =