X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_disambiguation%2FdisambiguateTypes.ml;h=b323f9231972b9dcda2368d2807af5e56f651738;hb=4167cea65ca58897d1a3dbb81ff95de5074700cc;hp=bb513aa6cdbc0cba1141fcdc7cc1f9115a024eca;hpb=35c68efd0a44da26d4aa6ae760ee03712b33dfed;p=helm.git diff --git a/helm/ocaml/cic_disambiguation/disambiguateTypes.ml b/helm/ocaml/cic_disambiguation/disambiguateTypes.ml index bb513aa6c..b323f9231 100644 --- a/helm/ocaml/cic_disambiguation/disambiguateTypes.ml +++ b/helm/ocaml/cic_disambiguation/disambiguateTypes.ml @@ -36,7 +36,7 @@ type domain_item = | Symbol of string * int (* literal, instance num *) | Num of int (* instance num *) -exception Invalid_choice +exception Invalid_choice of string Lazy.t module OrderedDomain = struct @@ -73,20 +73,21 @@ end type codomain_item = string * (* description *) - (singleton_environment -> string -> Cic.term list -> Cic.term) + (environment -> string -> Cic.term list -> Cic.term) (* environment, literal number, arguments as needed *) -and environment = codomain_item list Environment.t +and environment = codomain_item Environment.t + +type multiple_environment = codomain_item list Environment.t -and singleton_environment = codomain_item Environment.t (** adds a (name,uri) list l to a disambiguation environment e **) -let env_of_list l e = +let multiple_env_of_list l e = List.fold_left (fun e (name,descr,t) -> Environment.cons (Id name) (descr,fun _ _ _ -> t) e) e l -let singleton_env_of_list l e = +let env_of_list l e = List.fold_left (fun e (name,descr,t) -> Environment.add (Id name) (descr,fun _ _ _ -> t) e) e l @@ -113,5 +114,13 @@ let string_of_domain_item = function let string_of_domain dom = String.concat "; " (List.map string_of_domain_item dom) -let empty_environment = Environment.empty +let floc_of_loc (loc_begin, loc_end) = + let floc_begin = + { Lexing.pos_fname = ""; Lexing.pos_lnum = -1; Lexing.pos_bol = -1; + Lexing.pos_cnum = loc_begin } + in + let floc_end = { floc_begin with Lexing.pos_cnum = loc_end } in + (floc_begin, floc_end) + +let dummy_floc = floc_of_loc (-1, -1)