aboutsummaryrefslogtreecommitdiff
path: root/printing/miscprint.ml
diff options
context:
space:
mode:
authorMaxime Dénès2017-06-05 22:32:11 +0200
committerMaxime Dénès2017-06-05 22:32:11 +0200
commit5a5d37b83c487903963aa39799a1367752857da4 (patch)
treeca0ef708964eae74cbc24fc30c570fcea22f991d /printing/miscprint.ml
parent9a618ee0529f7153da1e10a8099a0b691bd13251 (diff)
parenta0ea7ebf4838903c3ed9a9b885716cf14134a0c8 (diff)
Merge PR#722: [printing] Remove duplicated printing function.
Diffstat (limited to 'printing/miscprint.ml')
-rw-r--r--printing/miscprint.ml25
1 files changed, 25 insertions, 0 deletions
diff --git a/printing/miscprint.ml b/printing/miscprint.ml
index 360843711c..a4ecbdf5e5 100644
--- a/printing/miscprint.ml
+++ b/printing/miscprint.ml
@@ -47,3 +47,28 @@ let pr_move_location pr_id = function
| MoveBefore id -> brk(1,1) ++ str "before " ++ pr_id id
| MoveFirst -> str " at top"
| MoveLast -> str " at bottom"
+
+(** Printing of bindings *)
+let pr_binding prc = function
+ | loc, (NamedHyp id, c) -> hov 1 (Names.Id.print id ++ str " := " ++ cut () ++ prc c)
+ | loc, (AnonHyp n, c) -> hov 1 (int n ++ str " := " ++ cut () ++ prc c)
+
+let pr_bindings prc prlc = function
+ | ImplicitBindings l ->
+ brk (1,1) ++ str "with" ++ brk (1,1) ++
+ pr_sequence prc l
+ | ExplicitBindings l ->
+ brk (1,1) ++ str "with" ++ brk (1,1) ++
+ pr_sequence (fun b -> str"(" ++ pr_binding prlc b ++ str")") l
+ | NoBindings -> mt ()
+
+let pr_bindings_no_with prc prlc = function
+ | ImplicitBindings l ->
+ brk (0,1) ++ prlist_with_sep spc prc l
+ | ExplicitBindings l ->
+ brk (0,1) ++ prlist_with_sep spc (fun b -> str"(" ++ pr_binding prlc b ++ str")") l
+ | NoBindings -> mt ()
+
+let pr_with_bindings prc prlc (c,bl) =
+ hov 1 (prc c ++ pr_bindings prc prlc bl)
+