ワードスキャナは、プログラムの処理中に
&
または
%
の形式のトークンを検出すると、マクロプロセッサを起動して、
&
または
%
の後ろに続くトークン名を調べます。マクロプロセッサは、検出したトークンに応じて、次のアクティビティのいずれかを開始します。
エラーは、これらのステージのいずれかが実行されているときに発生する可能性があります。たとえば、マクロ関数名のスペルを間違えたり、必要なセミコロンを付け忘れたりした場合、コンパイル中に構文エラーが発生します。構文エラーは、プログラムステートメントがマクロ言語の規則に従わない場合に発生します。また、スコープの範囲外の変数を参照した場合、マクロ変数置換エラーが発生します。実行エラー(セマンティックエラーとも呼ばれます)は、通常、プログラムロジック内で発生します。たとえば、マクロによって生成されたテキストに間違った論理(間違った順序または予期しない方法で実行されるステートメント)が含まれる場合、実行エラーが発生することがあります。
もちろん、マクロコードに問題がなくても、マクロコード以外のSASコードでエラーが発生しないとも限りません。たとえば、次のようなエラーが発生する場合があります。
-
-
オープンコード(つまり、マクロ定義の外部)での構文エラー
-
通常、番号付きのエラーメッセージは、マクロコード以外のSASコードに関するエラーメッセージです。マクロプロセッサによって生成されたエラーメッセージには、番号は付いていません。