X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2FmatitaScript.ml;h=4738a38f673dd55bd6b6496358b655194007a32f;hb=21e6d5cb0c9b6d6a6b9975b78ae752120a969cd6;hp=44ead20baf1672260e88037394fcda180c10affd;hpb=c301e17392ad24f9d6009be092506dc2313c4427;p=helm.git diff --git a/helm/software/matita/matitaScript.ml b/helm/software/matita/matitaScript.ml index 44ead20ba..4738a38f6 100644 --- a/helm/software/matita/matitaScript.ml +++ b/helm/software/matita/matitaScript.ml @@ -393,6 +393,39 @@ let eval_nmacro include_paths (buffer : GText.buffer) guistuff grafite_status us in guistuff.mathviewer#show_entry (`NCic (t,ctx,m,s)); [status, parsed_text], "", parsed_text_length + | TA.NIntroGuess _loc -> + let names_ref = ref [] in + let s = + NTactics.intros_tac ~names_ref [] script#grafite_status + in + let rex = Pcre.regexp ~flags:[`MULTILINE] "\\A([\\n\\t\\r ]*).*\\Z" in + let nl = Pcre.replace ~rex ~templ:"$1" parsed_text in + [s, nl ^ "#" ^ String.concat " " !names_ref ^ ";"], "", parsed_text_length + | TA.NAutoInteractive (_loc, (None,a)) -> + let trace_ref = ref [] in + let s = + NnAuto.auto_tac + ~params:(None,a) ~trace_ref script#grafite_status + in + let depth = + try List.assoc "depth" a + with Not_found -> "" + in + let trace = "/"^(if int_of_string depth > 1 then depth else "")^"/ by " in + let thms = + match !trace_ref with + | [] -> "{}" + | thms -> + String.concat ", " + (HExtlib.filter_map (function + | CicNotationPt.NRef r -> Some (NCicPp.r2s true r) + | _ -> None) + thms) + in + let rex = Pcre.regexp ~flags:[`MULTILINE] "\\A([\\n\\t\\r ]*).*\\Z" in + let nl = Pcre.replace ~rex ~templ:"$1" parsed_text in + [s, nl ^ trace ^ thms ^ ";"], "", parsed_text_length + | TA.NAutoInteractive (_, (Some _,_)) -> assert false let rec eval_macro include_paths (buffer : GText.buffer) guistuff grafite_status user_goal unparsed_text parsed_text script mac = let module MQ = MetadataQuery in @@ -400,7 +433,7 @@ let rec eval_macro include_paths (buffer : GText.buffer) guistuff grafite_status (* no idea why ocaml wants this *) let parsed_text_length = String.length parsed_text in let dbd = LibraryDb.instance () in - let pp_macro = ApplyTransformation.txt_of_macro ~map_unicode_to_tex:true in + let pp_macro = ApplyTransformation.txt_of_macro ~map_unicode_to_tex:false in match mac with (* WHELP's stuff *) | TA.WMatch (loc, term) -> @@ -559,13 +592,13 @@ let rec eval_macro include_paths (buffer : GText.buffer) guistuff grafite_status in let ty,_ = CicTypeChecker.type_of_aux' - menv [] proof_term CicUniv.empty_ugraph + [] [] proof_term CicUniv.empty_ugraph in - prerr_endline (CicPp.ppterm proof_term); + prerr_endline (CicPp.ppterm proof_term ^ " n lambda= " ^ string_of_int how_many_lambdas); (* use declarative output *) let obj = (* il proof_term vive in cc, devo metterci i lambda no? *) - (Cic.CurrentProof ("xxx",menv,proof_term,ty,[],[])) + (Cic.CurrentProof ("xxx",[],proof_term,ty,[],[])) in ApplyTransformation.txt_of_cic_object ~map_unicode_to_tex:(Helm_registry.get_bool @@ -978,7 +1011,6 @@ object (self) | Some f -> Some (Librarian.absolutize f) | None -> None in - self#goto_top; filename_ <- file; include_paths_ <- (match file with Some file -> read_include_paths file | None -> []); @@ -1008,19 +1040,6 @@ object (self) HLog.debug ("backup " ^ f ^ " saved") end - method private goto_top = - let grafite_status = - let rec last x = function - | [] -> x - | hd::tl -> last hd tl - in - last (self#grafite_status) history - in - (* FIXME: this is not correct since there is no undo for - * library_objects.set_default... *) - GrafiteSync.time_travel ~present:self#grafite_status ~past:grafite_status (); - LexiconSync.time_travel ~present:self#grafite_status ~past:grafite_status - method private reset_buffer = statements <- []; history <- [ initial_statuses (Some self#grafite_status) self#buri_of_current_file ]; @@ -1054,7 +1073,6 @@ object (self) match pos with | `Top -> dispose_old_locked_mark (); - self#goto_top; self#reset_buffer; self#notify | `Bottom ->