Conditions

Exact count, comparisons, trait checks, and/not. What is not supported.

Used after when / if / while / until / otherwise when.

Exact count

FragmentParses as
she has 3 toysHasExact(she, items, 3)
she does not have 9 toysNot(HasExact(…))

Comparisons

FragmentParses asNeed to know
she has more than 2 toysComparison(GREATER_THAN)more, bigger, louder, over, above, exceeds + than
she sniffs less toys than 8Comparison(LESS_THAN)Must use sniffs (or smells, scents, checks, peeks) + less (or fewer, smaller, under, below, quieter) + topic + than + number
she does not sniff less toys than 8Not(Comparison(…))Negation works on comparisons

Not supported in conditions: growls louder than on a field, matches / equals field comparisons, either / or between tests.

Trait checks

FragmentParses as
my labrador is loudHasTrait(labrador, loud)
my labrador is not greedyNot(HasTrait(…))

Note: my labrador is loud in a print line is different (prints true/false). Context matters.

Combining tests

FragmentParses asNeed to know
she has 3 toys and she has more than 2 toysLogical(AND, …)Only and joins tests in conditions
neither my labrador nor my beagle has 9 toysLogical(NOR, …)Needs nor between two breed names

Common mistake

while she toys sniffs less than 8 fails. Write while she sniffs less toys than 8 then. I changed the predicatable word order here so it sounds more like English and not gibberish.

Less-than in loops and branches always needs the sniffs less … than shape for comparisons below exact equality. Greater-than uses has more than.