Currently, we have
(a and b) or c ...prints as... a and b or c // a ? b ? c
a and (b or c) ...prints as... a and (b or c) // a ? (b ? c)
This is because 'and' has a higher binding power than 'or', so (a and b or
c) in fact does read back correctly as ((a and b) or c).
However, personally, I would find it clearer if mixtures of ands and ors
were always explicitly parenthesized. Things like (a and b or c and (d or
e) or (c or e) and f) make my head hurt. I'd prefer to see things like
this:
(a and b) or c ...prints as... (a and b) or c // (a ? b) ? c
a and (b or c) ...prints as... a and (b or c) // a ? (b ? c)
Is it possible to force that with the current output formatter? Or to
modify it to do this? How do others feel about this?
-s