ラベル付きのプリプロセッサ文に制御を移します。
%[label:]... GOTO statement-label;
代替形式:%GOTO の代わりに %GO TO を使用できます。
statement-label は、プリプロセッサ文に対する参照です。
%DECLARE A CHARACTER; %A = 'NAME'; %GOTO PREP_LABEL; C = A; %PREP_LABEL:; /* Null statement */ D = A;
この例で生成されるテキストは次のようになります。
D = NAME;
GOTO の後ろに指定するラベルとしてプリプロセッサ プロシージャのラベルは使用できません。
説明
%GOTO 文は、指定されたラベルの位置でプリプロセッサにスキャンをさせます。
GOTO の後ろに指定するラベルには、スキャンを移動する先のポイントを指定します。それはプリプロセッサ文のラベルでなければなりません。
プリプロセッサ プロシージャ内に現れるプリプロセッサ GOTO 文では、そのプロシージャの外部にあるポイントに制御を移すことはできません。
GOTO 文では、入れ子の内部レベルにある別のインクルード ファイル内のラベルに制御を移すことができます。