The analyser detects preprocesso directives and tries to solve them.
If an "If" results in "False" the lines up to the corresponding "EndIf" are not used by the analyser, just the same way the compiler will do.

The way you use the preprocessor is just fine, there's an anomaly in my program.