X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Fsoftware%2Fcomponents%2Fgrafite%2FgrafiteAstPp.ml;h=8e23e56b5357b6e2664e5548e95d5f3660d022d6;hb=04e07924ddd8d0a95e01103103bd8c2a3e79c6c5;hp=84facde66203a3e9ac62ba4c1afe4c1b5120f3c0;hpb=ed5c4e15429c37bef0f59dfd7160f6883586ed0f;p=helm.git diff --git a/helm/software/components/grafite/grafiteAstPp.ml b/helm/software/components/grafite/grafiteAstPp.ml index 84facde66..8e23e56b5 100644 --- a/helm/software/components/grafite/grafiteAstPp.ml +++ b/helm/software/components/grafite/grafiteAstPp.ml @@ -114,6 +114,7 @@ let rec pp_tactic ~map_unicode_to_tex ~term_pp ~lazy_term_pp = (* First order tactics *) | Absurd (_, term) -> "absurd" ^ term_pp term | Apply (_, term) -> "apply " ^ term_pp term + | ApplyP (_, term) -> "applyP " ^ term_pp term | ApplyS (_, term, params) -> "applyS " ^ term_pp term ^ pp_auto_params ~term_pp params | AutoBatch (_,params) -> "autobatch " ^ @@ -247,7 +248,7 @@ let pp_arg ~term_pp arg = else "(" ^ s ^ ")" -let pp_macro ~term_pp = +let pp_macro ~term_pp ~lazy_term_pp = let term_pp = pp_arg ~term_pp in let style_pp = function | Declarative -> "" @@ -257,6 +258,18 @@ let pp_macro ~term_pp = 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" + in + let pp_reduction_kind = pp_reduction_kind ~term_pp:lazy_term_pp in function (* Whelp *) | WInstance (_, term) -> "whelp instance " ^ term_pp term @@ -265,12 +278,14 @@ let pp_macro ~term_pp = | WElim (_, t) -> "whelp elim " ^ term_pp t | WMatch (_, term) -> "whelp match " ^ term_pp term (* real macros *) + | Eval (_, kind, term) -> + Printf.sprintf "eval %s on %s" (pp_reduction_kind kind) (term_pp term) | Check (_, term) -> Printf.sprintf "check %s" (term_pp term) | Hint (_, true) -> "hint rewrite" | Hint (_, false) -> "hint" | AutoInteractive (_,params) -> "auto " ^ pp_auto_params ~term_pp params - | Inline (_, style, suri, prefix) -> - Printf.sprintf "inline %s\"%s\"%s" (style_pp style) suri (prefix_pp prefix) + | Inline (_, style, suri, prefix, flavour) -> + Printf.sprintf "inline %s\"%s\"%s%s" (style_pp style) suri (prefix_pp prefix) (flavour_pp flavour) let pp_associativity = function | Gramext.LeftA -> "left associative" @@ -288,15 +303,15 @@ let pp_default what uris = Printf.sprintf "default \"%s\" %s" what (String.concat " " (List.map UriManager.string_of_uri uris)) -let pp_coercion uri do_composites arity saturations= +let pp_coercion ~term_pp t do_composites arity saturations= Printf.sprintf "coercion %s %d %d %s" - (UriManager.string_of_uri uri) arity saturations + (term_pp t) arity saturations (if do_composites then "" else "nocomposites") let pp_command ~term_pp ~obj_pp = function | Index (_,_,uri) -> "Indexing " ^ UriManager.string_of_uri uri - | Coercion (_, uri, do_composites, i, j) -> - pp_coercion uri do_composites i j + | Coercion (_, t, do_composites, i, j) -> + pp_coercion ~term_pp t do_composites i j | Default (_,what,uris) -> pp_default what uris | Drop _ -> "drop" | Include (_,path) -> "include \"" ^ path ^ "\"" @@ -335,7 +350,7 @@ let pp_non_punctuation_tactical ~term_pp ~lazy_term_pp = let pp_executable ~map_unicode_to_tex ~term_pp ~lazy_term_pp ~obj_pp = function - | Macro (_, macro) -> pp_macro ~term_pp macro ^ "." + | Macro (_, macro) -> pp_macro ~term_pp ~lazy_term_pp macro ^ "." | Tactic (_, Some tac, punct) -> pp_tactic ~map_unicode_to_tex ~lazy_term_pp ~term_pp tac ^ pp_punctuation_tactical ~lazy_term_pp ~term_pp punct