%[label:]...ACTIVATE ident[SCAN|RESCAN|NORESCAN][,ident[SCAN|RESCAN|NORESCAN]]...;
省略形:%ACT は %ACTIVATE の省略形です。
例 1。
%DECLARE A FIXED, B CHARACTER; %DEACTIVATE B; %A = 24; %B = 'VAR_NAME'; NUM = B + A; %ACTIVATE B; %DEACTIVATE A; NUM = B + A;
この例で生成されるテキストは次のようになります。
NUM = B + 24; NUM = VAR_NAME + A;
例 2。
%DECLARE (C,D) CHARACTER; %C = D**2; %D = 'NUM'; NUM = C; %ACTIVATE C NORESCAN; NUM = C;
この例で生成されるテキストは次のようになります。
NUM = NUM**2; NUM = D**2;
説明
プリプロセッサ変数は、宣言すると自動的にアクティブになります。非アクティブ化するには %DEACTIVATE 文を使用し、再アクティブ化するには %ACTIVATE 文を使用します。
RESCAN、SCAN、NORESCAN のいずれも指定されていない場合は、RESCAN と想定されます。RESCAN では、置換後にテキストが再スキャンされて、さらなる置換が適用されるかどうかが確認されます。SCAN および NORESCAN はその反対です。SCAN は NORESCAN と同意です。
%ACTIVATE 文に記述された識別子は、置換するアクティブな識別子として扱われます。つまり、その識別子が以降にプリプロセッサ文以外の文に記述されていた場合、アクティブであれば置換処理が開始されます。ただし、コメント内にある場合や、一重引用符で囲まれている場合を除きます。