X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Fsoftware%2Fcomponents%2Flexicon%2FlexiconEngine.ml;h=22d9b2f33a703ce7357f598cd16af11a62626220;hb=c04f852241510515f06e3bec8eb79acac6e4952e;hp=8a51e9523055fe51326a5be45372ba53fdbb6495;hpb=8e6a30412bbac3acc0a020e0fe90d492b0fc6776;p=helm.git diff --git a/helm/software/components/lexicon/lexiconEngine.ml b/helm/software/components/lexicon/lexiconEngine.ml index 8a51e9523..22d9b2f33 100644 --- a/helm/software/components/lexicon/lexiconEngine.ml +++ b/helm/software/components/lexicon/lexiconEngine.ml @@ -34,8 +34,8 @@ exception IncludedFileNotCompiled of string * string exception MetadataNotFound of string (* file name *) type status = { - aliases: DisambiguateTypes.environment; (** disambiguation aliases *) - multi_aliases: DisambiguateTypes.multiple_environment; + aliases: LexiconAst.alias_spec DisambiguateTypes.Environment.t; + multi_aliases: LexiconAst.alias_spec list DisambiguateTypes.Environment.t; lexicon_content_rev: LexiconMarshal.lexicon; notation_ids: CicNotation.notation_id list; (** in-scope notation ids *) } @@ -69,25 +69,25 @@ let set_proof_aliases mode status new_aliases = else let commands_of_aliases = List.map - (fun alias -> LexiconAst.Alias (HExtlib.dummy_floc, alias)) + (fun _,alias -> LexiconAst.Alias (HExtlib.dummy_floc, alias)) in let aliases = List.fold_left (fun acc (d,c) -> DisambiguateTypes.Environment.add d c acc) status.aliases new_aliases in let multi_aliases = - List.fold_left (fun acc (d,c) -> DisambiguateTypes.Environment.cons d c acc) - status.multi_aliases new_aliases in + List.fold_left (fun acc (d,c) -> + DisambiguateTypes.Environment.cons LexiconAst.description_of_alias + d c acc) + status.multi_aliases new_aliases + in let new_status = { status with multi_aliases = multi_aliases ; aliases = aliases} in if new_aliases = [] then new_status else - let aliases = - DisambiguatePp.aliases_of_domain_and_codomain_items_list new_aliases - in let status = - add_lexicon_content (commands_of_aliases aliases) new_status + add_lexicon_content (commands_of_aliases new_aliases) new_status in status @@ -107,10 +107,11 @@ let rec eval_command ?(mode=LexiconAst.WithPreferences) status cmd = -> let item = DisambiguateTypes.Id id in (try - let t = - snd (DisambiguateTypes.Environment.find item status.aliases) - status.aliases "" [] in - let uri = CicUtil.uri_of_term t in + let uri = + match DisambiguateTypes.Environment.find item status.aliases with + LexiconAst.Ident_alias (_, uri)-> UriManager.uri_of_string uri + | _ -> assert false + in CicNotationPt.UriPattern uri with Not_found -> prerr_endline ("Domain item not found: " ^ @@ -148,14 +149,11 @@ let rec eval_command ?(mode=LexiconAst.WithPreferences) status cmd = code in DisambiguatePp *) match spec with | LexiconAst.Ident_alias (id,uri) -> - [DisambiguateTypes.Id id, - (uri,(fun _ _ _-> CicUtil.term_of_uri(UriManager.uri_of_string uri)))] + [DisambiguateTypes.Id id,spec] | LexiconAst.Symbol_alias (symb, instance, desc) -> - [DisambiguateTypes.Symbol (symb,instance), - DisambiguateChoices.lookup_symbol_by_dsc symb desc] + [DisambiguateTypes.Symbol (symb,instance),spec] | LexiconAst.Number_alias (instance,desc) -> - [DisambiguateTypes.Num instance, - DisambiguateChoices.lookup_num_by_dsc desc] + [DisambiguateTypes.Num instance,spec] in set_proof_aliases mode status diff | LexiconAst.Interpretation (_, dsc, (symbol, _), _) as stm -> @@ -163,7 +161,7 @@ let rec eval_command ?(mode=LexiconAst.WithPreferences) status cmd = let diff = try [DisambiguateTypes.Symbol (symbol, 0), - DisambiguateChoices.lookup_symbol_by_dsc symbol dsc] + LexiconAst.Symbol_alias (symbol,0,dsc)] with DisambiguateChoices.Choice_not_found msg -> prerr_endline (Lazy.force msg);