aboutsummaryrefslogtreecommitdiff
path: root/parsing/ppconstr.ml
diff options
context:
space:
mode:
authorlmamane2007-01-10 15:44:44 +0000
committerlmamane2007-01-10 15:44:44 +0000
commitbce104e3bb510fb10df2ecddebb47514328f2b8d (patch)
tree69b2d6f827128ec3a769f3af9e58ffd8a6670b22 /parsing/ppconstr.ml
parentfa49da538d1d65f34d7b7fd3c32e51ef7ff578a3 (diff)
Merge from Lionel Elie Mamane's private branch:
- Makefile: Option (environment variable NO_RECOMPILE_LIB) to not recompile the whole standard library just because the coq binaries got rebuilt. - Infrastructure to change the object pretty-printers at runtime. - Use that infrastructure to make coqtop-protocol with Pcoq trees and Pcoq-protocol with pretty-printed terms possible in coq-interface. - Make "Back(track)" into closed sections, modules and module types "Just Work™". - Modernise/generalise Pcoq protocol a bit, make some of its warts optional. - Implement "Show." in Pcoq mode. - Add Rpow_def.vo to REALSBASEVO so that its dependencies are computed (and used). - "make revision" now handles GNU Arch / tla in addition to svn. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@9476 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'parsing/ppconstr.ml')
-rw-r--r--parsing/ppconstr.ml26
1 files changed, 22 insertions, 4 deletions
diff --git a/parsing/ppconstr.ml b/parsing/ppconstr.ml
index e1f375d0a2..901866523f 100644
--- a/parsing/ppconstr.ml
+++ b/parsing/ppconstr.ml
@@ -619,10 +619,28 @@ let rec strip_context n iscast t =
LocalRawDef (na,b) :: bl', c
| _ -> anomaly "strip_context"
-let pr_constr_expr c = pr lsimple c
-let pr_lconstr_expr c = pr ltop c
-let pr_pattern_expr c = pr lsimple c
-let pr_lpattern_expr c = pr ltop c
+type term_pr = {
+ pr_constr_expr : constr_expr -> std_ppcmds;
+ pr_lconstr_expr : constr_expr -> std_ppcmds;
+ pr_pattern_expr : Tacexpr.pattern_expr -> std_ppcmds;
+ pr_lpattern_expr : Tacexpr.pattern_expr -> std_ppcmds
+}
+
+let default_term_pr = {
+ pr_constr_expr = pr lsimple;
+ pr_lconstr_expr = pr ltop;
+ pr_pattern_expr = pr lsimple;
+ pr_lpattern_expr = pr ltop
+}
+
+let term_pr = ref default_term_pr
+
+let set_term_pr = (:=) term_pr
+
+let pr_constr_expr c = !term_pr.pr_constr_expr c
+let pr_lconstr_expr c = !term_pr.pr_lconstr_expr c
+let pr_pattern_expr c = !term_pr.pr_pattern_expr c
+let pr_lpattern_expr c = !term_pr.pr_lpattern_expr c
let pr_cases_pattern_expr = pr_patt ltop