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 のすべての行は除外されます。