X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fhelena%2Fsrc%2Fbasic_rg%2FbrgUntrusted.ml;h=b1cd52523d794f36db670f5636e6c0e810fba4b3;hb=88977b2d546e547e23b046792fe2ad8f6ff192a4;hp=d6333552f59e520a85075b2b3200afa64b7fff18;hpb=fec20705af4705f8eb9542aece87769b82a6a6b4;p=helm.git diff --git a/helm/software/helena/src/basic_rg/brgUntrusted.ml b/helm/software/helena/src/basic_rg/brgUntrusted.ml index d6333552f..b1cd52523 100644 --- a/helm/software/helena/src/basic_rg/brgUntrusted.ml +++ b/helm/software/helena/src/basic_rg/brgUntrusted.ml @@ -11,6 +11,8 @@ module U = NUri module L = Log +module Y = Time +module G = Options module E = Entity module B = Brg module BE = BrgEnvironment @@ -20,32 +22,45 @@ module BV = BrgValidity (* Interface functions ******************************************************) +IFDEF TYPE THEN + (* to share *) let type_check err f st = function - | ra, na, uri, E.Abst t -> + | ra, na, uri, E.Abst (a, t) -> let err msg = err (L.Uri uri :: msg) in let f xt tt = - let e = BE.set_entity (ra, na, uri, E.Abst xt) in f tt e + let e = BE.set_entity (ra, na, uri, E.abst a xt) in f tt e in BT.type_of err f st BR.empty_rtm t - | ra, na, uri, E.Abbr t -> + | ra, na, uri, E.Abbr (a, t) -> let err msg = err (L.Uri uri :: msg) in let f xt tt = let xt = match xt with | B.Cast _ -> xt | _ -> B.Cast (tt, xt) in - let e = BE.set_entity (ra, na, uri, E.Abbr xt) in f tt e + let e = BE.set_entity (ra, na, uri, E.abbr a xt) in f tt e in BT.type_of err f st BR.empty_rtm t - | _, _, _, E.Void -> assert false + | _, _, _, E.Void -> assert false + +END let validate err f st e = +IFDEF PROFV THEN + Y.utime_lap "" +ELSE () END; let uri, t = match e with - | _, _, uri, E.Abst t -> uri, t - | _, _, uri, E.Abbr t -> uri, t - | _, _, _, E.Void -> assert false + | _, _, uri, E.Abst (_, t) -> uri, t + | _, _, uri, E.Abbr (_, t) -> uri, t + | _, _, _, E.Void -> assert false in let err msg = err (L.Uri uri :: msg) in - let f () = let _ = BE.set_entity e in f () in + let f () = + let _ = BE.set_entity e in +IFDEF PROFV THEN + if !G.si then () else Y.utime_lap "validated" +ELSE () END; + f () + in BV.validate err f st BR.empty_rtm t