]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/gTopLevel/oldDisambiguate.ml
ocaml 3.09 transition
[helm.git] / helm / gTopLevel / oldDisambiguate.ml
index 39be585e55e3082dd4256fd7207f9ffb6c12f6ec..24dd30f91077f48c7daf21a87a130e988cb83553 100644 (file)
@@ -46,8 +46,8 @@ module type Callbacks =
       ?enable_button_for_non_vars:bool ->
       title:string -> msg:string -> id:string -> string list -> string list
     val interactive_interpretation_choice :
-      (string * string) list list -> int
-    val input_or_locate_uri : title:string -> UriManager.uri
+      (string * string) list list -> int list
+    val input_or_locate_uri : title:string -> ?id:string -> unit -> UriManager.uri
   end
 ;;
 
@@ -78,7 +78,7 @@ module Make(C:Callbacks) =
          [] ->
           [UriManager.string_of_uri
            (C.input_or_locate_uri
-             ~title:("URI matching \"" ^ id ^ "\" unknown."))]
+             ~title:("URI matching \"" ^ id ^ "\" unknown.") ~id ())]
        | [uri] -> [uri]
        | _ ->
          C.interactive_user_uri_choice
@@ -160,15 +160,15 @@ module Make(C:Callbacks) =
         let metasenv',expr = mk_metasenv_and_expr resolve_id' in
 (*CSC: Bug here: we do not try to typecheck also the metasenv' *)
          try
-          let term,_,metasenv'' =
-           CicRefine.type_of_aux' metasenv' context expr
+          let term,_,metasenv'',_ = (* TASSI: FIXME what are we doning here?*)
+           CicRefine.type_of_aux' metasenv' context expr CicUniv.empty_ugraph
           in
-           Ok (term,metasenv'')
+           Ok (term,metasenv'') (* TASSI: whould we pass back the ugraph? *)
          with
             CicRefine.Uncertain _ ->
 prerr_endline ("%%% UNCERTAIN!!! " ^ CicPp.ppterm expr) ;
              Uncertain
-          | _ ->
+          | CicRefine.RefineFailure _ ->
 prerr_endline ("%%% PRUNED!!! " ^ CicPp.ppterm expr) ;
             Ko
       in
@@ -232,10 +232,10 @@ prerr_endline ("%%% PRUNED!!! " ^ CicPp.ppterm expr) ;
            exit 1
           end
        ) resolve_ids ;
-      let resolve_id',term,metasenv' =
+      let res =
        match resolve_ids with
           [] -> raise ThereDoesNotExistAnyWellTypedInterpretationOfTheInput
-        | [resolve_id] -> resolve_id
+        | [_] -> resolve_ids
         | _ ->
           let choices =
            List.map
@@ -266,10 +266,13 @@ prerr_endline ("%%% PRUNED!!! " ^ CicPp.ppterm expr) ;
                ) dom
             ) resolve_ids
           in
-           let index = C.interactive_interpretation_choice choices in
-            List.nth resolve_ids index
+           let indexes = C.interactive_interpretation_choice choices in
+            List.map (List.nth resolve_ids) indexes
       in
-       (known_ids @ dom', resolve_id'), metasenv',term
+       List.map
+        (fun (resolve_id',term,metasenv') ->
+          (known_ids @ dom', resolve_id'), metasenv',term
+        ) res
 end
 ;;
 
@@ -319,12 +322,13 @@ module EnvironmentP3 =
     let regexpr =
      let alfa = "[a-zA-Z_-]" in
      let digit = "[0-9]" in
-     let ident = alfa ^ "\(" ^ alfa ^ "\|" ^ digit ^ "\)*" in
-     let blanks = "\( \|\t\|\n\)+" in
+     let ident = alfa ^ "\\(" ^ alfa ^ "\\|" ^ digit ^ "\\)*" in
+     let blanks = "\\( \\|\t\\|\n\\)+" in
      let nonblanks = "[^ \t\n]+" in
-     let uri = "/\(" ^ ident ^ "/\)*" ^ nonblanks in (* not very strict check *)
+     let uri = "/\\(" ^ ident ^ "/\\)*" ^ nonblanks in
+      (* not very strict check *)
       Str.regexp
-       ("alias" ^ blanks ^ "\(" ^ ident ^ "\)" ^ blanks ^ "\(" ^ uri ^ "\)")
+       ("alias" ^ blanks ^ "\\(" ^ ident ^ "\\)" ^ blanks ^ "\\(" ^ uri ^ "\\)")
     in
      let rec aux n =
       try