The complexity of an expression is defined by the number of ``++AND++``, ``++OR++``.

A single expression's complexity should not become too high to keep the code readable.

== Noncompliant Code Example

With the default threshold value of 3

----
C                   IF        (condition1 AND condition2)
C                             OR (condition2 AND condition2)
C                             OR (condition3 AND condition4)
----

----
 /free
   IF A=X OR A=Y AND A=Z AND B=Y OR B=Z;
        ...
   ENDIF;
 /end-free
----

== Compliant Solution

----
C                   IF        (condition1 AND condition2)
C                             OR MyComplexCondition()
----

----
 /free
   IF A=X OR MyComplexCondition() OR B=Z;
        ...
   ENDIF;
 /end-free
----

ifdef::env-github,rspecator-view[]
'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]
