]> matita.cs.unibo.it Git - helm.git/commitdiff
pattern with match fixed
authorEnrico Tassi <enrico.tassi@inria.fr>
Thu, 5 Apr 2007 13:18:15 +0000 (13:18 +0000)
committerEnrico Tassi <enrico.tassi@inria.fr>
Thu, 5 Apr 2007 13:18:15 +0000 (13:18 +0000)
components/cic_disambiguation/disambiguate.ml
components/cic_disambiguation/disambiguate.mli

index 1a318362500e115107a1312cdf46bcd0294aeb30..64a469cabcb657f2f99a77056ba03b858897b811 100644 (file)
@@ -172,9 +172,10 @@ let find_in_context name context =
   in
   aux 1 context
 
-let interpretate_term ~(context: Cic.name list) ~env ~uri ~is_path ast
+let interpretate_term ?(create_dummy_ids=false) ~(context: Cic.name list) ~env ~uri ~is_path ast
      ~localization_tbl
 =
+  (* create_dummy_ids shouldbe used only for interpretating patterns *)
   assert (uri = None);
   let rec aux ~localize loc (context: Cic.name list) = function
     | CicNotationPt.AttributedTerm (`Loc loc, term) ->
@@ -217,6 +218,9 @@ let interpretate_term ~(context: Cic.name list) ~env ~uri ~is_path ast
           do_branch' context args
         in
         let (indtype_uri, indtype_no) =
+          if create_dummy_ids then
+            (UriManager.uri_of_string "cic:/fake_indty.con", 0)
+          else
           match indty_ident with
           | Some (indty_ident, _) ->
              (match resolve env (Id indty_ident) () with
@@ -459,7 +463,8 @@ let interpretate_path ~context path =
  let localization_tbl = Cic.CicHash.create 23 in
   (* here we are throwing away useful localization informations!!! *)
   fst (
-   interpretate_term ~context ~env:Environment.empty ~uri:None ~is_path:true
+   interpretate_term ~create_dummy_ids:true 
+    ~context ~env:Environment.empty ~uri:None ~is_path:true
     path ~localization_tbl, localization_tbl)
 
 let interpretate_obj ~context ~env ~uri ~is_path obj ~localization_tbl =
@@ -1184,7 +1189,7 @@ in refine_profiler.HExtlib.profile foo ()
       disambiguate_thing ~dbd ~context ~metasenv ~initial_ugraph ~aliases
         ~universe ~uri:None ~pp_thing:CicNotationPp.pp_term
         ~domain_of_thing:domain_of_term
-        ~interpretate_thing:interpretate_term
+        ~interpretate_thing:(interpretate_term (?create_dummy_ids:None))
         ~refine_thing:refine_term (text,prefix_len,term)
 
     let disambiguate_obj ?(fresh_instances=false) ~dbd ~aliases ~universe ~uri
index 123fcf96928f82fd10f0f43cb3d26b3b30648450..c1a50aceb82b8a44214cfa24f933a96061dfb2ea 100644 (file)
@@ -41,8 +41,7 @@ exception NoWellTypedInterpretation of
 exception PathNotWellFormed
 
 val interpretate_path :
-  context:Cic.name list -> CicNotationPt.term ->
-    Cic.term
+  context:Cic.name list -> CicNotationPt.term -> Cic.term
 
 type 'a disambiguator_input = string * int * 'a