The script can handle the following statements:

The general format is:
#ifdef A or #ifndef A
  ...
#elif B
  ...
#elif C
  ...
#else
  ...
#endif

The variations:
#elif defined B
#elif defined(C)
#if ((defined A) && (defined B) && ...)
#if defined(A) || defined(B) || ...
#ifdef A // Comments or /* Comments */
The script removes the comments with the variable we want to hide.
The script can handle the inner #ifdef/#ifndef - #endif statements.

The known not allowed statements:

#if defined(MACRO)   Could be replaced with the #ifdef MACRO
