]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_transformations/tacticAstPp.ml
embedded commands ast into tacticals ast
[helm.git] / helm / ocaml / cic_transformations / tacticAstPp.ml
index 6627c46133de587afaf8ddaabde961b5378237bf..4380dd5df9ede56e7efc7c277943812c8a71dede 100644 (file)
@@ -77,14 +77,39 @@ let rec pp_tactic = function
   | Symmetry -> "symmetry"
   | Transitivity term -> "transitivity " ^ pp_term term
 
+let pp_flavour = function
+  | `Definition -> "Definition"
+  | `Fact -> "Fact"
+  | `Goal -> "Goal"
+  | `Lemma -> "Lemma"
+  | `Remark -> "Remark"
+  | `Theorem -> "Theorem"
+
+let pp_command = function
+  | Proof -> "Proof."
+  | Theorem (flavour, name, typ, body) ->
+      sprintf "%s %s: %s %s."
+        (pp_flavour flavour)
+        (match name with None -> "" | Some name -> name)
+        (CicAstPp.pp_term typ)
+        (match body with
+        | None -> ""
+        | Some body -> "\\def " ^ CicAstPp.pp_term body)
+  | Qed name ->
+      (match name with None -> "Qed." | Some name -> sprintf "Save %s." name)
+  | Quit -> "Quit."
+
 let rec pp_tactical = function
   | LocatedTactical (loc, tac) -> pp_tactical tac
+
+  | Tactic tac -> pp_tactic tac
+  | Command cmd -> pp_command cmd
+
   | Fail -> "fail"
   | Do (count, tac) -> sprintf "do %d %s" count (pp_tactical tac)
   | IdTac -> "id"
   | Repeat tac -> "repeat " ^ pp_tactical tac
   | Seq tacs -> pp_tacticals tacs
-  | Tactic tac -> pp_tactic tac
   | Then (tac, tacs) -> sprintf "%s [%s]" (pp_tactical tac) (pp_tacticals tacs)
   | Tries tacs -> sprintf "tries [%s]" (pp_tacticals tacs)
   | Try tac -> "try " ^ pp_tactical tac