]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/matitacLib.ml
EXPERIMENTAL COMMIT (part B, by CSC :-):
[helm.git] / helm / software / matita / matitacLib.ml
index 5a14b2703bc8a24843bb25ff9f3ddda91b6b99a1..7580ebf2969545acb112ac0f2ca909bdc466feaa 100644 (file)
@@ -70,14 +70,14 @@ let dump f =
    let nl () =  output_string och (pp_statement nl_ast) in
    MatitaMisc.out_preamble och;
    let grafite_parser_cb status = function
-      | G.Executable (_, G.Macro (_, G.Inline (_, style, uri, prefix, flavour))) ->
+      | G.Executable (_, G.Macro (_, G.Inline (_, uri, params))) ->
          let str =
-            ApplyTransformation.txt_of_inline_macro style prefix uri
-               ?flavour
+            ApplyTransformation.txt_of_inline_macro params uri
               ~map_unicode_to_tex:
                  (Helm_registry.get_bool "matita.paste_unicode_as_tex")
         in
          output_string och str
+      | G.Executable (loc, G.Command (_, G.Include (_, false, _))) -> ()
       | stm ->
          output_string och (pp_statement stm); nl (); nl ()
    in
@@ -226,20 +226,21 @@ let compile atstart options fname =
       if not (Helm_registry.get_bool "matita.verbose") then (fun _ _ -> ())
       else pp_ast_statement
     in
-    let lexicon_status, grafite_status =
-     let rec aux_for_dump x lexicon_status grafite_status =
+    let grafite_status =
+     let rec aux_for_dump x grafite_status =
      try
       match
        MatitaEngine.eval_from_stream ~first_statement_only:false ~include_paths
-        lexicon_status grafite_status buf x
+        grafite_status buf x
       with
-      | [] -> lexicon_status, grafite_status
-      | ((grafite,lexicon),None)::_ -> lexicon, grafite
-      | ((_,l),Some _)::_ -> raise (AttemptToInsertAnAlias l)
+      | [] -> grafite_status
+      | (g,None)::_ -> g
+      | (g,Some _)::_ -> 
+            raise (AttemptToInsertAnAlias (GrafiteTypes.get_lexicon g))
      with MatitaEngine.EnrichedWithStatus 
-            (GrafiteEngine.Macro (floc, f), lexicon, grafite) as exn ->
+            (GrafiteEngine.Macro (floc, f), grafite) as exn ->
             match f (get_macro_context (Some grafite)) with 
-            | _, GrafiteAst.Inline (_, style, suri, prefix, flavour) ->
+            | _, GrafiteAst.Inline (_, _suri, _params) ->
 (*              
              let str =
                ApplyTransformation.txt_of_inline_macro style prefix suri
@@ -249,15 +250,15 @@ let compile atstart options fname =
              in
               !out str;
 *)
-              aux_for_dump x lexicon grafite
+              aux_for_dump x grafite
             |_-> raise exn
      in
-       aux_for_dump print_cb lexicon_status grafite_status
+       aux_for_dump print_cb grafite_status
     in
     let elapsed = Unix.time () -. time in
     let proof_status,moo_content_rev,lexicon_content_rev = 
       grafite_status.proof_status, grafite_status.moo_content_rev, 
-       lexicon_status.LexiconEngine.lexicon_content_rev
+       (GrafiteTypes.get_lexicon grafite_status).LexiconEngine.lexicon_content_rev
     in
     if proof_status <> GrafiteTypes.No_proof then
      (HLog.error
@@ -273,6 +274,8 @@ let compile atstart options fname =
         (* FG: we do not generate .moo when dumping .mma files *)
         GrafiteMarshal.save_moo moo_fname moo_content_rev;
         LexiconMarshal.save_lexicon lexicon_fname lexicon_content_rev;
+        NCicLibrary.serialize ~baseuri:(NUri.uri_of_string baseuri)
+         (GrafiteTypes.get_dump grafite_status)
      end;
      let tm = Unix.gmtime elapsed in
      let sec = string_of_int tm.Unix.tm_sec ^ "''" in
@@ -299,7 +302,7 @@ let compile atstart options fname =
        ~present:lexicon_status ~past:initial_lexicon_status;
 *)
      clean_exit baseuri false
-  | MatitaEngine.EnrichedWithStatus (exn, _lexicon, _grafite) as exn' ->
+  | MatitaEngine.EnrichedWithStatus (exn, _grafite) as exn' ->
       (match exn with
       | Sys.Break -> HLog.error "user break!"
       | HExtlib.Localized (floc,CicNotationParser.Parse_error err) ->
@@ -397,7 +400,7 @@ module F =
             Printf.printf "rm %s\n" generated; flush stdout; r
          end
       else
-         compile ignore options fname
+         compact (compile ignore options fname)
     ;;
 
     let load_deps_file = Librarian.load_deps_file;;