X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/aa56e112996b3650e8ac343831322d2a9ab0de54..b44d16e043c802069df09c5736c2480435e56b9c:/src/defaults.sml diff --git a/src/defaults.sml b/src/defaults.sml index 43dced5..8ca63f7 100644 --- a/src/defaults.sml +++ b/src/defaults.sml @@ -35,10 +35,27 @@ fun registerDefault (name, t, v) = defaultV := SM.insert (!defaultV, name, v)) | SOME _ => raise Fail "Duplicate default environment variable" -fun tInit () = (TAction ((CRoot, dmy), - !defaultT, - StringMap.empty), - dmy) +fun allSets (e, _) = + case e of + ESkip => true + | ESet _ => true + | ESeq es => List.all allSets es + | _ => false + +val dmy = ErrorMsg.dummyLoc + +fun bodyType (_, _, SOME e) = + if allSets e then + (CPrefix (CRoot, dmy), dmy) + else + (CRoot, dmy) + | bodyType _ = (CRoot, dmy) + +fun tInit p = + (TAction (bodyType p, + !defaultT, + StringMap.empty), + dmy) fun eInit () = SM.map (fn f => f ()) (!defaultV)