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
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
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
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)
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 ();;