]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_proof_checking/cicLogger.ml
ocaml 3.09 transition
[helm.git] / helm / ocaml / cic_proof_checking / cicLogger.ml
index 6867b8b928314bbbc73226610f30d4a5714a7185..28d7a8c2c86484337cd81c19f1c93c95bcf23517 100644 (file)
@@ -29,16 +29,32 @@ type msg =
  | `Trusting of UriManager.uri
  ]
 
-let log =
+let log ?(level = 1) =
  let module U = UriManager in
     function
      | `Start_type_checking uri ->
-         HelmLogger.log (`Msg (`DIV (1, None, `T
+         HelmLogger.log (`Msg (`DIV (level, None, `T
           ("Type-Checking of " ^ (U.string_of_uri uri) ^ " started"))))
      | `Type_checking_completed uri ->
-         HelmLogger.log (`Msg (`DIV (1, Some "green", `T
+         HelmLogger.log (`Msg (`DIV (level, Some "green", `T
           ("Type-Checking of " ^ (U.string_of_uri uri) ^ " completed"))))
      | `Trusting uri ->
-         HelmLogger.log (`Msg (`DIV (1, Some "blue", `T
+         HelmLogger.log (`Msg (`DIV (level, Some "blue", `T
           ((U.string_of_uri uri) ^ " is trusted."))))
 
+class logger =
+  object
+    val mutable level = 0 (* indentation level *)
+    method log (msg: msg) =
+      match msg with
+      | `Start_type_checking _ ->
+          level <- level + 1;
+          log ~level msg
+      | `Type_checking_completed _ ->
+          log ~level msg;
+          level <- level - 1;
+      | _ -> log ~level msg
+  end
+
+let log msg = log ~level:1 msg
+