diff options
| author | Emilio Jesus Gallego Arias | 2020-02-27 15:52:45 -0500 |
|---|---|---|
| committer | Emilio Jesus Gallego Arias | 2020-02-27 15:52:45 -0500 |
| commit | aeca986089d005054496ed4bcf1b920e8fa02173 (patch) | |
| tree | 074acf720a9969ba3f0d5585edc1351243105fd4 /printing/ppconstr.ml | |
| parent | c160fc0da9bef60c4ee469cc2c35afd83fc16243 (diff) | |
| parent | 5ece9623e54ce2a87440c889364c3d1ad5eb52c5 (diff) | |
Merge PR #11650: Set Printing Parens
Reviewed-by: ejgallego
Diffstat (limited to 'printing/ppconstr.ml')
| -rw-r--r-- | printing/ppconstr.ml | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/printing/ppconstr.ml b/printing/ppconstr.ml index c2d760ae08..59972f8bdb 100644 --- a/printing/ppconstr.ml +++ b/printing/ppconstr.ml @@ -85,6 +85,7 @@ let tag_var = tag Tag.variable let env = ref terms and envlist = ref termlists and bl = ref binders and bll = ref binderlists in let pop r = let a = List.hd !r in r := List.tl !r; a in let return unp pp1 pp2 = (tag_unparsing unp pp1) ++ pp2 in + let parens = !Constrextern.print_parentheses in (* Warning: The following function enforces a very precise order of evaluation of sub-components. @@ -92,19 +93,19 @@ let tag_var = tag Tag.variable let rec aux = function | [] -> mt () - | UnpMetaVar prec as unp :: l -> + | UnpMetaVar (prec, side) as unp :: l -> let c = pop env in let pp2 = aux l in - let pp1 = pr prec c in + let pp1 = pr (if parens && side <> None then LevelLe 0 else prec) c in return unp pp1 pp2 | UnpBinderMetaVar prec as unp :: l -> let c = pop bl in let pp2 = aux l in let pp1 = pr_patt prec c in return unp pp1 pp2 - | UnpListMetaVar (prec, sl) as unp :: l -> + | UnpListMetaVar (prec, sl, side) as unp :: l -> let cl = pop envlist in - let pp1 = prlist_with_sep (fun () -> aux sl) (pr prec) cl in + let pp1 = prlist_with_sep (fun () -> aux sl) (pr (if parens && side <> None then LevelLe 0 else prec)) cl in let pp2 = aux l in return unp pp1 pp2 | UnpBinderListMetaVar (isopen, sl) as unp :: l -> |
