That is, whitespace-delimited terms (such as those used by if, while, etc) now bind more weakly than all relation operators, except for the specific case of assigning operators (=, +=, -=, etc).
The savi format utility will remove a lot of now-unnecessary parens. For example, most if statements will now no longer need parens around their condition expression (unless it is complex enough to need it). See the diff in this PR for many examples of auto-removed parens.
This is a breaking change because you may need to add parens around some macro use sites. For example, an expression like:
a = b + if (c < 0) (d | e)
Will now be written like:
a = b + (if c < 0 (d | e))
Because otherwise the b + would try to bind tightly to the if word alone, isolating the if term from its conditional and body expressions.
That is, whitespace-delimited terms (such as those used by
if
,while
, etc) now bind more weakly than all relation operators, except for the specific case of assigning operators (=
,+=
,-=
, etc).The
savi format
utility will remove a lot of now-unnecessary parens. For example, mostif
statements will now no longer need parens around their condition expression (unless it is complex enough to need it). See the diff in this PR for many examples of auto-removed parens.This is a breaking change because you may need to add parens around some macro use sites. For example, an expression like:
Will now be written like:
Because otherwise the
b +
would try to bind tightly to theif
word alone, isolating theif
term from its conditional and body expressions.