]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/lambda-delta/basic_rg/brgEnvironment.ml
Regular expressions.
[helm.git] / helm / software / lambda-delta / basic_rg / brgEnvironment.ml
index 902eeb45a629c599da696f0d798336e5260d4460..121da88da4d54e955fa480e68aa88ea31048704c 100644 (file)
       V_______________________________________________________________ *)
 
 module U = NUri
-module L = Log
 module H = U.UriHash
+module Y = Entity
 module B = Brg
 
-exception ObjectNotFound of B.message
-
 let hsize = 7000 
 let env = H.create hsize
-let entry = ref 1
 
 (* Internal functions *******************************************************)
 
-let error uri = raise (ObjectNotFound (L.items1 (U.string_of_uri uri)))
+let get_age = 
+   let age = ref 0 in
+   fun () -> incr age; !age
 
 (* Interface functions ******************************************************)
 
-let set_obj f obj =
-   let _, uri, b = obj in
-   let obj = !entry, uri, b in
-   incr entry; H.add env uri obj; f obj
+(* decps *)
+let set_entity (a, uri, b) =
+   let age = get_age () in
+   let entity = (Y.Apix age :: a), uri, b in
+   H.add env uri entity; entity
 
-let get_obj f uri =
-   try f (H.find env uri) with Not_found -> error uri
+let get_entity uri =
+   try H.find env uri with Not_found -> [], uri, Y.Void