前のページ|次のページ

マクロクォーティング関数でマスクするテキスト量を決める

次の各ステートメントにおいて、マクロプロセッサはマスクされたセミコロンをテキストとして扱います。
%let p=%str(proc print; run;);
%let p=proc %str(print;) %str(run;);
%let p=proc print%str(;) run%str(;);
各ケースで、Pの値は、次に示す値と同じになります。
proc print; run;
これら3つの%LETステートメントの結果が同じになるのは、マクロクォーティング関数を使用してテキストをマスクすると、この関数が認識する項目のみがマクロプロセッサによってクォーティングされるためです。この関数で囲まれた他のテキストは、変更されません。したがって、3番目の%LETステートメントが、マクロクォーティングするための最小限の方法です。ただし、マクロクォーティング関数を使用して大きなテキストブロックをマスクしても問題はなく、1番目の%LETステートメントなどのように、実際にはコードが非常に読みやすくなります。
前のページ|次のページ|ページの先頭へ