| Undo (_, Some n) -> sprintf "Undo %d" n
| Print (_, name) -> sprintf "Print \"%s\"" name
| Quit _ -> "Quit"
+ | Instance _
+ | Match _ -> assert false
let pp_macro_ast = pp_macro pp_term_ast
let pp_macro_cic = pp_macro pp_term_cic
let pp_tactical tac = pp_tactical tac ^ tactical_terminator
let pp_tactic tac = pp_tactic tac ^ tactic_terminator
+let pp_executable = function
+ | Macro (_,x) -> pp_macro_ast x
+ | Tactical (_,x) -> pp_tactical x
+ | Command (_,x) -> pp_command x
+
+let pp_comment = function
+ | Note (_,str) -> sprintf "(* %s *)" str
+ | Code (_,code) -> sprintf "(** %s. **)" (pp_executable code)
+
+let pp_statement = function
+ | Executable (_, ex) -> pp_executable ex
+ | Comment (_, c) -> pp_comment c