Change the structure of log messages. Add a new
[SXSI/xpathcomp.git] / src / main.ml
index 909a0b8..69bd091 100644 (file)
@@ -24,7 +24,9 @@ let mk_runtime run auto doc arg count print outfile =
     if !Config.do_perf then start_perf ();
     let r = Utils.time ~count:!Config.repeat ~msg:"Execution time" (run auto doc) arg in
     if !Config.do_perf then stop_perf ();
-    Logger.verbose Format.err_formatter "Number of results: %i@\n" (count r);
+    Logger.start_msg Format.err_formatter "[Debug] Number of results: ";
+    Logger.msg Format.err_formatter "%i" (count r);
+    Logger.end_msg Format.err_formatter "\n";
     match outfile with
        None -> ()
       | Some file ->
@@ -37,12 +39,17 @@ let main v query_string output =
   let query =
     Utils.time ~msg:"Parsing query" XPath.parse query_string
   in
-  Logger.verbose Format.err_formatter "Parsed query:%a@\n"
-    XPath.Ast.print query;
+  Logger.start_msg Format.err_formatter "[Debug]";
+  Logger.msg Format.err_formatter " Parsed query: @\n @[<v 0> {";
+  Logger.msg Format.err_formatter " %a }@]" XPath.Ast.print query;
+  Logger.end_msg Format.err_formatter "\n\n";
   let auto, bu_info =
     Utils.time ~msg:"Compiling query" Compile.compile query
   in
-  if !Config.verbose then Ata.print Format.err_formatter auto;
+  Logger.start_msg Format.err_formatter "[Debug] Automaton: ";
+  Logger.msg Format.err_formatter "@\n     @[<v 0>";
+  Logger.msg Format.err_formatter "%a" Ata.print auto;
+  Logger.end_msg Format.err_formatter "\n\n";
   Gc.full_major();
   Gc.compact();
   Gc.set (tuned_gc);
@@ -111,9 +118,11 @@ let _ =
        v
     in
     main document !Config.query !Config.output_file;
-    Logger.verbose Format.err_formatter "Maximum resident set size: %s @\n" (read_procmem());
-    Gc.full_major();
+IFDEF PROFILE
+  THEN
     Profile.summary Format.err_formatter
+  ELSE ()
+END
   with
   | Ulexer.Loc.Exc_located ((x,y),e) ->
     Logger.print Format.err_formatter "character %i-%i %s@\n" x y (Printexc.to_string e);