Konjunktiver Ausdruck
Syntax
conjunct = disjunct ("AND" conjunct / .empty);
disjunct = negation ("OR" negation / .empty);
negation = "NOT" relation / relation;
relation =
'( conjunct ') /
sum (
"<=" sum /
">=" sum /
'< sum /
'> sum /
'= sum /
'" sum /
.empty);
Das Konjunkt-Konstrukt ist so eingerichtet, dass ein Konjunkt, das keine Summe ist, keinen Wert haben muss und mithilfe von Sprüngen im Code ausgewertet werden kann. Auf das Konjunkt wird nur an Stellen Bezug genommen, an denen eine logische Entscheidung gefordert ist (z. B. if- und while-Anweisungen).
Wir hoffen, dass die meisten Compiler intelligent genug sein werden, um unnötige Auswertungen zur Laufzeit zu überspringen. D. h., ein Konjunkt, bei dem der linke Teil falsch ist, oder ein Disjunkt, bei dem der linke Teil wahr ist, braucht den entsprechenden rechten Teil nicht ausgewertet zu bekommen.