| Contents Back Forward |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
In the table, "Level'' refers to precedence level: thus *, on level 6,
has precedence over +, down on level 5, but both subordinate to unary -,
up on level 8. The "associativity'' of an operator is the way it
brackets up if the formula doesn't specify this: for instance, - is left
associative because
a - b - c
is understood as
(a - b) - c
with brackets going on the left. With some Inform operators, you're not
allowed to be vague like this; these are the ones whose associative is
listed as "none''. Thus
a == b == c
will produce an error insisting that brackets be written into the program
to make clear what the meaning is. Given the table (and sufficient patience)
all expressions can be broken down into order: for instance
a * b .& c --> d / - f
is calculated as
( a*((b.&c)-->d) ) / (-f)
|