New
flag syntax
From
version 2.5 onward it is possible to write flag conditions as per the following
examples:
/flag1
- 3/ X
--> a [means
that /flag1/ is to be decremented by three units]
/flag1
+ 4/ X
--> a [means
that /flag1/ is to be incremented by four units]
The
second rule is therefore increasing flags values. It could be equivalently
written:
/flag1/
X
--> a /flag1
+ 4/
Many
other new features on flags have been implemented in version 2.5. Here is a
brief survey of
flag
conditions
taken from the on-line help under "Flags":
/myflag
= 3/ X --> a checks that 'myflag' is equal to 3, and if so, makes the rule
candidate.
/myflag
≠ 3/ X --> a checks that 'myflag' is unequal to 3, and if so, makes
the rule candidate.
/myflag
< 3/ X --> a checks that 'myflag' is smaller than 3, and if so, makes
the rule candidate.
/myflag
> 3/ X --> a checks that 'myflag' is greater than 3, and if so, makes
the rule candidate.
/myflag
≤ 3/ X --> a checks that 'myflag' is smaller or equal to 3, and if
so, makes the rule candidate.
/myflag
≥ 3/ X --> a checks that 'myflag' is greater or equal to 3, and if
so, makes the rule candidate.
Be
careful that '=' is the
assignment
operator
if found in the right argument of a rule, and a
comparison
operator otherwise. To get '≤' (inferior or equal) on a US keyboard,
type option comma, and to get '≥' (superior or equal) type option period.
A
rule may now contain several flag conditions, e.g.:
/myflag
≥ 3/ /myflag < 20/ /otherflag = 4/ X --> a
In
assignments and comparisons, numbers may be replaced with other flags or
control parameters K1, K2, etc., e.g.:
X
--> a
/flag1 = K1/ /flag2 = flag1/
/flag1
> K19/ X
--> b
/flag2
≠ flag3/ X
--> c
Be
careful that all flags are set to zero when computation starts, unless the
project is running in "Improvize" mode and "Reset rule flags" is
not
checked on dialog "Settings". In the latter case, flags keep the values they
have acquired during the preceding computation.