Arc Forumnew | comments | leaders | submitlogin
2 points by akkartik 5164 days ago | link | parent

"Whoops, the last "x" is wrapped in parens..."

A single word on a line is never wrapped in parens, though it may close parens inserted in a previous line.

I keep thinking there's an example similar to this one of yours that won't parse correctly unless you explicitly wrap the if in parens:

  if (foo)
       (bar)
     (qux)
But I can't think of a counter-example :)

Even if the algo is unambiguous this approach will fail if people can't easily wrap their heads around what it will do. But that's a matter of taste, I suppose.



1 point by Pauan 5164 days ago | link

"A single word on a line is never wrapped in parens, though it may close parens inserted in a previous line."

Ah, great. That solves that particular problem, then.

-----

2 points by akkartik 5164 days ago | link

I really appreciate you thinking through the cases with me.

Even if this approach turns out to be bad for some reason I'm hoping that the unit tests will be valuable as documentation to those following: http://github.com/akkartik/wart/blob/0a3e09/002parenthesize....

-----

2 points by akkartik 5159 days ago | link

Ah, there's one situation where I find myself wishing I could insert parens at the start of single-word lines:

  if x
    (do
      something
      something else)
The paren wrapping do is now needed.

-----