GDL プリプロセッサ ガイドライン
GDL プリプロセッサ ディレクティブを記述するときは、次のガイドラインを使用します。
意図しない結果を防ぐために、GDL ファイルの作成者は、プリプロセッサのシンボルとプレフィックスを定義するときに次のガイドラインに従う必要があります。
ファイル内で明示的に定義していないシンボルは決して定義解除しないでください。ファイル内で定義したシンボルは、ファイルが終了する前に必ず定義解除してください。 言い換えれば、シンボルとプレフィックスのスタックは常に見つけたままにしておくということです。 このガイドラインに従えば、プリプロセッサに関係する名前空間の衝突は発生しません。
GDL パーサー インターフェイスを使用すると、クライアントはルート GDL ファイルの前に処理される GDL テキストの任意のサイズのフラグメントを挿入できます。 この機会により、クライアントは、パーサーが GDL ファイルの適切なセクションを処理するために必要なプリプロセッサ シンボルを定義できるようになります。 このフラグメントには、他の GDL 標準テンプレートが含まれている場合や、標準マクロを定義する場合があります。
注 ファイルがインラインでインクルードされる場合、ホストで定義されているすべてのプリプロセッサ シンボルとプレフィックスは、インクルードされるファイルの前処理中に定義されたままになります。 ファイルがプリコンパイル済みとして処理されると、まったく新しい解析環境が作成されます。 したがって、すべてのシンボルとプレフィックスが既定値に戻されます。 プリコンパイル済みとして処理されるファイルは、外部またはホスト ファイル定義のプリプロセッサ シンボルに依存してはなりません。
注 ディレクティブは switch/case 構造の前に個別に評価されるため、プリプロセッサ ディレクティブとマクロは switch/case 構造の影響を受けません。
論理演算子は、GDL プリプロセッサ ディレクティブではサポートされていません。 この状況を解決する方法の詳細については、「GDL 前処理における論理演算子に関する問題」を参照してください。