status#disambiguate_db.aliases
let set_proof_aliases status ~implicit_aliases mode new_aliases =
+ prerr_endline "set_proof_aliases";
if mode = GrafiteAst.WithoutPreferences then
status
else
+ (prerr_endline "set_proof_aliases 2";
let aliases =
List.fold_left (fun acc (d,c) -> DisambiguateTypes.Environment.add d c acc)
status#disambiguate_db.aliases new_aliases in
(if implicit_aliases then new_aliases else []) @
status#disambiguate_db.new_aliases}
in
- status#set_disambiguate_db new_status
+ status#set_disambiguate_db new_status)
exception BaseUriNotSetYet
let __Closed_Implicit = "__Closed_Implicit__"
let ncic_mk_choice status = function
- | GrafiteAst.Symbol_alias (name, _, dsc) ->
+ | GrafiteAst.Symbol_alias (name,_, dsc) ->
if name = __Implicit then
dsc, `Sym_interp (fun _ -> NCic.Implicit `Term)
else if name = __Closed_Implicit then
(NCic.Appl l)::tl -> NCic.Appl (l@tl) | l -> NCic.Appl l)
~term_of_nref:(fun nref -> NCic.Const nref)
name dsc
- | GrafiteAst.Number_alias (_, dsc) ->
+ | GrafiteAst.Number_alias (_,dsc) ->
let desc,f = DisambiguateChoices.nlookup_num_by_dsc dsc in
desc, `Num_interp
(fun num -> match f with `Num_interp f -> f num | _ -> assert false)
let mk_implicit b =
match b with
| false ->
- GrafiteAst.Symbol_alias (__Implicit,-1,"Fake Implicit")
+ GrafiteAst.Symbol_alias (__Implicit,None,"Fake Implicit")
| true ->
- GrafiteAst.Symbol_alias (__Closed_Implicit,-1,"Fake Closed Implicit")
+ GrafiteAst.Symbol_alias (__Closed_Implicit,None,"Fake Closed Implicit")
;;
let nlookup_in_library
interactive_user_uri_choice input_or_locate_uri item
=
match item with
- | DisambiguateTypes.Id id ->
+ | DisambiguateTypes.Id (id,_) ->
(try
let references = NCicLibrary.resolve id in
List.map
- (fun u -> GrafiteAst.Ident_alias (id,NReference.string_of_reference u)
+ (fun u ->
+ GrafiteAst.Ident_alias (id,NReference.string_of_reference u)
) references
with
NCicEnvironment.ObjectNotFound _ -> [])
| _ -> []
;;
-let fix_instance item l =
+(* XXX TO BE REMOVED: no need to fix instances any more *)
+(*let fix_instance item l =
match item with
DisambiguateTypes.Symbol (_,n) ->
List.map
(function
- GrafiteAst.Symbol_alias (s,_,d) -> GrafiteAst.Symbol_alias (s,n,d)
+ GrafiteAst.Symbol_alias (s,d) -> GrafiteAst.Symbol_alias (s,n,d)
| _ -> assert false
) l
| DisambiguateTypes.Num n ->
| _ -> assert false
) l
| DisambiguateTypes.Id _ -> l
-;;
+;;*)
+let fix_instance _ l = l;;
let disambiguate_nterm status expty context metasenv subst thing
=
- let diff, metasenv, subst, cic =
+ let newast, diff, metasenv, subst, cic =
singleton "first"
(NCicDisambiguate.disambiguate_term
status
~aliases:status#disambiguate_db.aliases
~expty
- ~universe:(Some status#disambiguate_db.multi_aliases)
+ ~universe:(status#disambiguate_db.multi_aliases)
~lookup_in_library:nlookup_in_library
~mk_choice:(ncic_mk_choice status)
~mk_implicit ~fix_instance
set_proof_aliases status ~implicit_aliases:true GrafiteAst.WithPreferences
diff
in
- metasenv, subst, status, cic
+ newast, metasenv, subst, status, cic
;;
~mk_choice:(ncic_mk_choice status)
~mk_implicit ~fix_instance ~uri
~aliases:status#disambiguate_db.aliases
- ~universe:(Some status#disambiguate_db.multi_aliases)
+ ~universe:(status#disambiguate_db.multi_aliases)
(text,prefix_len,obj)) in
let status =
set_proof_aliases status ~implicit_aliases:true GrafiteAst.WithPreferences
(List.exists
(function (NotationPt.IdentArg (_,id')) -> id'=id) args)
->
- let item = DisambiguateTypes.Id id in
+ let item = DisambiguateTypes.Id (id,None) in
begin
try
match
DisambiguateTypes.Environment.find item
status#disambiguate_db.aliases
with
- GrafiteAst.Ident_alias (_, uri) ->
+ GrafiteAst.Ident_alias (_,uri) ->
NotationPt.NRefPattern (NReference.reference_of_string uri)
| _ -> assert false
with Not_found ->
List.map
(fun u ->
let name = NCicPp.r2s status true u in
- DisambiguateTypes.Id name,
+ DisambiguateTypes.Id (name, Some (NReference.string_of_reference u)),
GrafiteAst.Ident_alias (name,NReference.string_of_reference u)
) references) refs)