X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Flexicon%2FlexiconSync.ml;h=a3a0d766e884924ce5ae9995123cb32f2a8629dc;hb=1b36fc4540d93ff21c1afcf485e47e3fe3f26ddb;hp=d7fa27f902b2e7038ee46e7b3c9ed9986e025b47;hpb=55b82bd235d82ff7f0a40d980effe1efde1f5073;p=helm.git diff --git a/helm/software/components/lexicon/lexiconSync.ml b/helm/software/components/lexicon/lexiconSync.ml index d7fa27f90..a3a0d766e 100644 --- a/helm/software/components/lexicon/lexiconSync.ml +++ b/helm/software/components/lexicon/lexiconSync.ml @@ -28,9 +28,13 @@ let alias_diff ~from status = let module Map = DisambiguateTypes.Environment in Map.fold - (fun domain_item (description1,_ as codomain_item) acc -> + (fun domain_item codomain_item acc -> + let description1 = LexiconAst.description_of_alias codomain_item in try - let description2,_ = Map.find domain_item from.LexiconEngine.aliases in + let description2 = + LexiconAst.description_of_alias + (Map.find domain_item from.LexiconEngine.aliases) + in if description1 <> description2 then (domain_item,codomain_item)::acc else @@ -39,9 +43,10 @@ let alias_diff ~from status = Not_found -> (domain_item,codomain_item)::acc) status.LexiconEngine.aliases [] +;; let alias_diff = - let profiler = HExtlib.profile "alias_diff (conteggiato anche in include)" in + let profiler = HExtlib.profile "alias_diff(conteg. anche in include)" in fun ~from status -> profiler.HExtlib.profile (alias_diff ~from) status (** given a uri and a type list (the contructors types) builds a list of pairs @@ -60,8 +65,8 @@ let extract_alias types uri = let build_aliases = List.map (fun (name,uri) -> - DisambiguateTypes.Id name, - (UriManager.string_of_uri uri, fun _ _ _ -> CicUtil.term_of_uri uri)) + DisambiguateTypes.Id name, LexiconAst.Ident_alias (name, + UriManager.string_of_uri uri)) let add_aliases_for_inductive_def status types uri = let aliases = build_aliases (extract_alias types uri) in @@ -83,13 +88,13 @@ let add_aliases_for_object status uri = let add_aliases_for_objs = List.fold_left (fun status uri -> - let obj,_ = CicEnvironment.get_obj CicUniv.empty_ugraph uri in + let obj,_ = CicEnvironment.get_obj CicUniv.oblivion_ugraph uri in add_aliases_for_object status uri obj) module OrderedId = struct type t = CicNotation.notation_id - let compare = Pervasives.compare + let compare = CicNotation.compare_notation_id end module IdSet = Set.Make (OrderedId) @@ -109,11 +114,5 @@ let time_travel ~present ~past = in List.iter CicNotation.remove_notation notation_to_remove -let init = - { - LexiconEngine.aliases = DisambiguateTypes.Environment.empty; - multi_aliases = DisambiguateTypes.Environment.empty; - lexicon_content_rev = []; - notation_ids = []; - metadata = []; - } +let push () = CicNotation.push ();; +let pop () = CicNotation.pop ();;