X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fcomponents%2Fng_disambiguation%2FdisambiguateChoices.ml;h=7e3e44f525ccfa8741e457e2301f8896447ffbc1;hb=4556677f40e6b979d9bdaa4475bb1ca6701264f8;hp=6d4d63b704e367c0c64cf3f0989d8c68de527031;hpb=179cb3108e88369d855ba0088084be285fb19fdc;p=helm.git diff --git a/matita/components/ng_disambiguation/disambiguateChoices.ml b/matita/components/ng_disambiguation/disambiguateChoices.ml index 6d4d63b70..7e3e44f52 100644 --- a/matita/components/ng_disambiguation/disambiguateChoices.ml +++ b/matita/components/ng_disambiguation/disambiguateChoices.ml @@ -31,33 +31,21 @@ open DisambiguateTypes exception Choice_not_found of string Lazy.t -let num_choices = ref [] -let nnum_choices = ref [] - -let add_num_choice choice = num_choices := choice :: !num_choices -let nadd_num_choice choice = nnum_choices := choice :: !nnum_choices - let has_description dsc = (fun x -> fst x = dsc) -let lookup_num_choices () = !num_choices - -let lookup_num_by_dsc dsc = - try - List.find (has_description dsc) !num_choices - with Not_found -> raise (Choice_not_found (lazy ("Num with dsc " ^ dsc))) - let nlookup_num_by_dsc dsc = - try - List.find (has_description dsc) !nnum_choices - with Not_found -> raise (Choice_not_found (lazy ("Num with dsc " ^ dsc))) + if dsc <> "natural number" then + raise (Choice_not_found (lazy ("Num with dsc " ^ dsc))) + else + "natural number", `Num_interp Nnumber_notation.ninterp_natural_number -let mk_choice ~mk_appl ~mk_implicit ~term_of_uri ~term_of_nref (dsc, args, appl_pattern)= +let mk_choice ~mk_appl ~mk_implicit ~term_of_nref (dsc, args, appl_pattern)= dsc, `Sym_interp (fun cic_args -> let env',rest = let names = - List.map (function CicNotationPt.IdentArg (_, name) -> name) args + List.map (function NotationPt.IdentArg (_, name) -> name) args in let rec combine_with_rest l1 l2 = match l1,l2 with @@ -74,25 +62,18 @@ let mk_choice ~mk_appl ~mk_implicit ~term_of_uri ~term_of_nref (dsc, args, appl "The notation " ^ dsc ^ " expects more arguments"))) in let combined = - TermAcicContent.instantiate_appl_pattern - ~mk_appl ~mk_implicit ~term_of_uri ~term_of_nref env' appl_pattern + Interpretations.instantiate_appl_pattern + ~mk_appl ~mk_implicit ~term_of_nref env' appl_pattern in match rest with [] -> combined | _::_ -> mk_appl (combined::rest)) -let lookup_symbol_by_dsc ~mk_appl ~mk_implicit ~term_of_uri ~term_of_nref symbol dsc = - let interpretations = TermAcicContent.lookup_interpretations ~sorted:false symbol in +let lookup_symbol_by_dsc status ~mk_appl ~mk_implicit ~term_of_nref symbol dsc = + let interpretations = + Interpretations.lookup_interpretations status ~sorted:false symbol in try - mk_choice ~mk_appl ~mk_implicit ~term_of_uri ~term_of_nref + mk_choice ~mk_appl ~mk_implicit ~term_of_nref (List.find (fun (dsc', _, _) -> dsc = dsc') interpretations) - with TermAcicContent.Interpretation_not_found | Not_found -> + with Interpretations.Interpretation_not_found | Not_found -> raise (Choice_not_found (lazy (sprintf "Symbol %s, dsc %s" symbol dsc))) - -let cic_lookup_symbol_by_dsc = lookup_symbol_by_dsc - ~mk_implicit:(function - | true -> Cic.Implicit (Some `Type) - | false -> Cic.Implicit None) - ~mk_appl:(function (Cic.Appl l)::tl -> Cic.Appl (l@tl) | l -> Cic.Appl l) - ~term_of_uri:CicUtil.term_of_uri ~term_of_nref:(fun _ -> assert false) -;;