IF 指令は、一方向または双方向の条件付きコンパイルを提供します。
 
 
 
   
	 注: このセクションでは、コンパイラ指令文 DEFINE、EVALUATE、および IF は、ISO2002用語の指令を使用して言及されます。DEFINE コンパイラ オプションに言及する際は、そのように明示的に言及されます。
 
 
   
 
  一般形式
 
	  
	 
 
	 
 
   
 
  構文規則
 
	  
	 - キーワード >>IF、>>ELSE、および >>END-IF は、領域 A または領域 B のいずれかの新しい行で開始する必要があり、また、その行にすべて収まるように指定する必要があります。
 
 
	 - 識別子 text-1 および text-2: 
- 新しい行で開始する必要があり、複数行の構成が可能です。
 
 
		  - コンパイラ指令を含むあらゆる種類のソース行が対象となりえます。
 
 
		  - COPY 文を含めることができます。
 
 
		  - 特定の IF 指令の指定は、すべてを同じライブラリ テキストで、またはすべてをソース テキストで指定する必要があります。この規則の目的上、text-1 および text-2 は IF 指令の指定とは見なされません。text-1 または text-2 で指定された入れ子の IF 指令は、新しい IF 指令と見なされます。
 
 
 
   
 
  一般規則
 
	  
	 - text-1 および text-2 は、IF コンパイラ指令行の一部ではありません。
 
 
	 - 真と評価される分岐内のテキストは、COPY 文および REPLACE 文の照合規則および置換規則の対象となります。
 
 
	 - constant-conditional-expression-1 が TRUE と評価された場合、text-1 のすべての行が結果のテキストに含まれます。text-2 のすべての行は除外されます。
 
 
	 - constant-conditional-expression-1 が FALSE と評価された場合、text-2 のすべての行が結果テキストに含まれます。text-1 のすべての行は除外されます。