]> matita.cs.unibo.it Git - helm.git/commitdiff
added a stateful logger which remember indentation level of recursive
authorStefano Zacchiroli <zack@upsilon.cc>
Thu, 18 Nov 2004 16:46:23 +0000 (16:46 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Thu, 18 Nov 2004 16:46:23 +0000 (16:46 +0000)
type checking

helm/ocaml/cic_proof_checking/cicLogger.ml
helm/ocaml/cic_proof_checking/cicLogger.mli

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
+
index 848b30573cce84d618929e1f1db4ddb81a670df8..408bc8879998f0da714948589b3b441dc3425460 100644 (file)
@@ -29,5 +29,14 @@ type msg =
  | `Trusting of UriManager.uri
  ]
 
+  (** Stateless logging. Each message is logged with indentation level 1 *)
 val log: msg -> unit
 
+  (** Stateful logging. Each `Start_type_checing message increase the
+  * indentation level by 1, each `Type_checking_completed message decrease it by
+  * the same amount. *)
+class logger:
+  object
+    method log: msg -> unit
+  end
+