Expression conjonctive
Syntaxe
conjunct = disjunct ("AND" conjunct / .empty);
disjunct = negation ("OR" negation / .empty);
negation = "NOT" relation / relation;
relation =
'( conjunct ') /
sum (
"<=" sum /
">=" sum /
'< sum /
'> sum /
'= sum /
'" sum /
.empty);
La construction conjunct est agencée de telle manière qu'un conjunct qui n'est pas une somme peut ne pas avoir de valeur et peut être évalué à l'aide de sauts dans le code. Il n'est fait référence au conjunct que dans les endroits où une décision logique est requise (par exemple les instructions if et while).
Nous espérons que la plupart des compilateurs seront assez intelligents pour éviter les évaluations inutiles à l'exécution. C'est-à-dire qu'un conjunct dont la partie gauche est fausse, ou un disjunct dont la partie gauche est vraie, n'a pas besoin de voir sa partie droite correspondante évaluée.