# Print expressions with ()s inserted for visualizing precedence

**URL:** <https://discourse.julialang.org/t/print-expressions-with-s-inserted-for-visualizing-precedence/7301>\
**Category:** General Usage\
**Tags:** question\
**Created:** [November 25, 2017, 9:33am UTC](https://discourse.julialang.org/t/print-expressions-with-s-inserted-for-visualizing-precedence/7301 "2017-11-25T09:33:57Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [November 25, 2017, 9:33am UTC](https://discourse.julialang.org/t/print-expressions-with-s-inserted-for-visualizing-precedence/7301/1 "2017-11-25T09:33:57Z")

</div>

Sometimes I forget precedence rules and would like to see how an expression is parsed as a reminder. Eg if I have

```julia
ex = parse("x isa Float64 || return false")

```

then it would be nice to display it as

```julia
(x isa Float64) || (return false)

```

I know about `dump` and `Base.show_sexpr`, but they are either too verbose or require switching mentally between M and S expressions. Is there a way I can trick `Base` functions into doing what I want?

---

<div class="post-metadata">

**Author:** ![rdeits](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rdeits/32/286_2.png) [@rdeits](https://discourse.julialang.org/u/rdeits)\
**Post date:** [November 25, 2017, 5:04pm UTC](https://discourse.julialang.org/t/print-expressions-with-s-inserted-for-visualizing-precedence/7301/2 "2017-11-25T17:04:13Z")

</div>

I think it’s a hard-coded behavior in Base to only show the parens if necessary to disambiguate precedence: [https://github.com/JuliaLang/julia/blob/65f323cbec615c508a47bc6f269434a14adbcc30/base/show.jl#L893](https://github.com/JuliaLang/julia/blob/65f323cbec615c508a47bc6f269434a14adbcc30/base/show.jl#L893)

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [November 27, 2017, 1:17am UTC](https://discourse.julialang.org/t/print-expressions-with-s-inserted-for-visualizing-precedence/7301/3 "2017-11-27T01:17:14Z")

</div>

I’m not sure what the best API for requesting more parens is, but if you figure out a good one a PR would be welcomed. There’s also the alternative of just printing S-expressions:

```julia
julia> Meta.show_sexpr(:(x isa Float64 || return false))
(:||, (:call, :isa, :x, :Float64), (:return, false))

```
