]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/grafite/grafiteAstPp.ml
symmetry of inequality sym_neq
[helm.git] / helm / software / components / grafite / grafiteAstPp.ml
index 4e10cfa8b28e3187af114b1642443851aced8b26..6806713a4e9375a4c20ca4009d666c54d62720ea 100644 (file)
@@ -267,24 +267,27 @@ let pp_arg ~term_pp arg =
   
 let pp_macro ~term_pp ~lazy_term_pp = 
   let term_pp = pp_arg ~term_pp in
-  let style_pp = function
-     | Declarative         -> ""
-     | Procedural None     -> "procedural "
-     | Procedural (Some i) -> Printf.sprintf "procedural %u " i
-  in
-  let prefix_pp prefix = 
-     if prefix = "" then "" else Printf.sprintf " \"%s\"" prefix
-  in
   let flavour_pp = function
-     | None                   -> ""
-     | Some `Definition       -> " as definition"
-     | Some `MutualDefinition -> " as mutual"
-     | Some `Fact             -> " as fact"
-     | Some `Lemma            -> " as lemma"
-     | Some `Remark           -> " as remark"
-     | Some `Theorem          -> " as theorem"
-     | Some `Variant          -> " as variant"
-     | Some `Axiom            -> " as axiom"
+     | `Definition       -> "definition"
+     | `Fact             -> "fact"
+     | `Lemma            -> "lemma"
+     | `Remark           -> "remark"
+     | `Theorem          -> "theorem"
+     | `Variant          -> "variant"
+     | `Axiom            -> "axiom"
+     | `MutualDefinition -> assert false
+  in
+  let pp_inline_params l =
+     let pp_param = function
+        | IPPrefix prefix -> "prefix = \"" ^ prefix ^ "\""
+       | IPAs flavour -> flavour_pp flavour
+       | IPProcedural -> "procedural"
+       | IPNoDefaults -> "nodefaults"
+       | IPDepth depth -> "depth = " ^ string_of_int depth
+       | IPLevel level -> "level = " ^ string_of_int level
+     in
+     let s = String.concat " " (List.map pp_param l) in
+     if s = "" then s else " " ^ s
   in
   let pp_reduction_kind = pp_reduction_kind ~term_pp:lazy_term_pp in
   function 
@@ -301,8 +304,8 @@ let pp_macro ~term_pp ~lazy_term_pp =
   | Hint (_, true) -> "hint rewrite"
   | Hint (_, false) -> "hint"
   | AutoInteractive (_,params) -> "auto " ^ pp_auto_params ~term_pp params
-  | Inline (_, style, suri, prefix, flavour) ->  
-      Printf.sprintf "inline %s\"%s\"%s%s" (style_pp style) suri (prefix_pp prefix) (flavour_pp flavour
+  | Inline (_, suri, params) ->  
+      Printf.sprintf "inline \"%s\"%s" suri (pp_inline_params params
 
 let pp_associativity = function
   | Gramext.LeftA -> "left associative"
@@ -332,6 +335,8 @@ let pp_command ~term_pp ~obj_pp = function
      pp_coercion ~term_pp t do_composites i j
   | PreferCoercion (_,t) -> 
      "prefer coercion " ^ term_pp t
+  | Inverter (_,n,ty,params) ->
+     "inverter " ^ n ^ " for " ^ term_pp ty ^ " " ^ List.fold_left (fun acc x -> acc ^ (match x with true -> "%" | _ -> "?")) "" params
   | UnificationHint (_,t, n) -> 
       "unification hint " ^ string_of_int n ^ " " ^ term_pp t
   | Default (_,what,uris) -> pp_default what uris