Printf.sprintf "GrafiteDisambiguate.singleton (%s): %u interpretations"
msg (List.length l)
in
- HLog.debug debug; assert false
+ prerr_endline debug; assert false
let __Implicit = "__Implicit__"
let __Closed_Implicit = "__Closed_Implicit__"
~term_of_nref:(fun nref -> NCic.Const nref)
name dsc
| LexiconAst.Number_alias (_, dsc) ->
- let desc,f = DisambiguateChoices.lookup_num_by_dsc dsc in
- desc, `Num_interp
+ (try
+ 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)
+ with
+ DisambiguateChoices.Choice_not_found _ ->
+ let desc,f = DisambiguateChoices.lookup_num_by_dsc dsc in
+ desc, `Num_interp
(fun num ->
fst (OCic2NCic.convert_term
(UriManager.uri_of_string "cic:/xxx/x.con")
- (match f with `Num_interp f -> f num | _ -> assert false)))
+ (match f with `Num_interp f -> f num | _ -> assert false))))
| LexiconAst.Ident_alias (name, uri) ->
uri, `Sym_interp
(fun l->assert(l = []);
;;
let disambiguate_auto_params
- disambiguate_term metasenv context (terms, params)
+ disambiguate_term metasenv context (oterms, params)
=
- let metasenv, terms =
- List.fold_right
- (fun t (metasenv, terms) ->
- let metasenv,t = disambiguate_term context metasenv t in
- metasenv,t::terms) terms (metasenv, [])
- in
- metasenv, (terms, params)
+ match oterms with
+ | None -> metasenv, (None, params)
+ | Some terms ->
+ let metasenv, terms =
+ List.fold_right
+ (fun t (metasenv, terms) ->
+ let metasenv,t = disambiguate_term context metasenv t in
+ metasenv,t::terms) terms (metasenv, [])
+ in
+ metasenv, (Some terms, params)
;;
let disambiguate_just disambiguate_term context metasenv =