]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/matitaWiki.ml
huge commit regarding the grafite_status:
[helm.git] / helm / software / matita / matitaWiki.ml
index 0fa8554ba9856c2dd9644e0132d91a58029334e6..1f880575e063860d85663f711e5390babf74e258 100644 (file)
@@ -35,21 +35,19 @@ exception AttemptToInsertAnAlias
 (** {2 Initialization} *)
 
 let grafite_status = (ref [] : GrafiteTypes.status list ref)
-let lexicon_status = (ref [] : LexiconEngine.status list ref)
 
 let run_script is eval_function  =
-  let lexicon_status',grafite_status' = 
-    match !lexicon_status,!grafite_status with
-    | ss::_, s::_ -> ss,s
-    | _,_ -> assert false
+  let grafite_status' = 
+    match !grafite_status with
+    | s::_ -> s
+    | _ -> assert false
   in
   let cb = fun _ _ -> () in
   let matita_debug = Helm_registry.get_bool "matita.debug" in
   try
-   match eval_function lexicon_status' grafite_status' is cb with
+   match eval_function grafite_status' is cb with
       [] -> raise End_of_file
-    | ((grafite_status'',lexicon_status''),None)::_ ->
-       lexicon_status := lexicon_status''::!lexicon_status;
+    | (grafite_status'',None)::_ ->
        grafite_status := grafite_status''::!grafite_status
     | (s,Some _)::_ -> raise AttemptToInsertAnAlias
   with
@@ -137,22 +135,20 @@ let rec interactive_loop () =
           | n,_::l -> drop (n-1,l)
           | _,[] -> assert false
         in
-         let to_be_dropped = List.length !lexicon_status - n in
+         let to_be_dropped = List.length !grafite_status - n in
          let safe_hd = function [] -> assert false | he::_ -> he in
-         let cur_lexicon_status = safe_hd !lexicon_status in
          let cur_grafite_status = safe_hd !grafite_status in
-          lexicon_status := drop (to_be_dropped, !lexicon_status) ;
           grafite_status := drop (to_be_dropped, !grafite_status) ;
-          let lexicon_status = safe_hd !lexicon_status in
           let grafite_status = safe_hd !grafite_status in
            LexiconSync.time_travel
-            ~present:cur_lexicon_status ~past:lexicon_status;
+            ~present:(GrafiteTypes.get_lexicon cur_grafite_status)
+            ~past:(GrafiteTypes.get_lexicon grafite_status);
            GrafiteSync.time_travel
             ~present:cur_grafite_status ~past:grafite_status;
            interactive_loop (Some n)
     | `Do command ->
         let str = Ulexing.from_utf8_string command in
-        let watch_statuses lexicon_status grafite_status =
+        let watch_statuses grafite_status =
          match grafite_status.GrafiteTypes.proof_status with
             GrafiteTypes.Incomplete_proof
              {GrafiteTypes.proof = uri,metasenv,_subst,bo,ty,attrs ;
@@ -172,7 +168,7 @@ let rec interactive_loop () =
          run_script str 
            (MatitaEngine.eval_from_stream ~first_statement_only:true 
            ~include_paths:(Lazy.force include_paths) ~watch_statuses) ;
-         interactive_loop (Some (List.length !lexicon_status))
+         interactive_loop (Some (List.length !grafite_status))
   with 
    | GrafiteEngine.Macro (floc,_) ->
       let x, y = HExtlib.loc_of_floc floc in
@@ -207,10 +203,8 @@ let main () =
   let system_mode =  Helm_registry.get_bool "matita.system" in
   let include_paths =
    Helm_registry.get_list Helm_registry.string "matita.includes" in
-  lexicon_status :=
-   [CicNotation2.load_notation ~include_paths
-     BuildTimeConf.core_notation_script] ;
-  grafite_status := [GrafiteSync.init (List.hd !lexicon_status) "cic:/matita/tests/"];
+  grafite_status := [GrafiteSync.init (CicNotation2.load_notation ~include_paths
+     BuildTimeConf.core_notation_script) "cic:/matita/tests/"];
   Sys.catch_break true;
   let origcb = HLog.get_log_callback () in
   let origcb t s = origcb t ((if system_mode then "[S] " else "") ^ s) in
@@ -229,11 +223,11 @@ let main () =
       | GrafiteEngine.Drop -> clean_exit 1
     );
     let proof_status,moo_content_rev,lexicon_content_rev = 
-      match !lexicon_status,!grafite_status with
-      | ss::_, s::_ ->
+      match !grafite_status with
+      |  s::_ ->
          s.proof_status, s.moo_content_rev,
-          ss.LexiconEngine.lexicon_content_rev
-      | _,_ -> assert false
+          (GrafiteTypes.get_lexicon s).LexiconEngine.lexicon_content_rev
+      | _ -> assert false
     in
     if proof_status <> GrafiteTypes.No_proof then
      begin