Директивы условного выполнения (!if, !elif, !else и !endif)
предоставляют вам определенную степень гибкости при конструировании формирующих файлов. Правила и макрокоманды можно сделать условными, поэтому, используя в командной строке макроопределения (с помощью параметра -D), можно задавать или отменять интерпретацию определенных разделов формирующих файла.
Формат этих директив аналогичен тому, который используется в
Си, ассемблере и Паскале:
!if выражение
[строки]
.
.
.
!endif
!if выражение
[строки]
.
.
.
!else
[строки]
.
.
.
!endif
!if выражение
[строки]
.
.
.
!elif выражение
[строки]
.
.
.
!endif
!ifdef макрокоманда
[строки]
.
.
.
!endif выражение
[строки]
!ifndef макрокоманда
[строки]
.
.
.
!endif выражение
[строки]
где [строки] могут представлять собой один из следующих типов
операторов:
Директивы условного выполнения образуют группу, которая состоит как минимум из открывающей группу директивы !if и завершающей группу директивы !endif.
Любые правила, команды и директивы должны завершаться внутри
одного исходного файла.
Всем директивам !if внутри одного исходного файла должны соответствовать директивы !endif. Таким образом, следующее включение файла является неверным вне зависимости от того, какое содержание имеет файл, включающий данный, поскольку в нем не
содержится парная директива !endif:
!if $(FILE_COUNT) > 5
какие-либо правила
!else
другие правила
<конец файла>
Еще один способ определения макрокоманды предоставляет директива !ifdef. Директива !ifdef MACRO эквивалентна !if
$d(MACRO). Это верно также для директивы !ifndef: директива
!ifdef MACRO эквивалентна !if $d(MACRO).