GDL コンストラクト
GDL コンストラクトは、単に GDL 属性とそれに続くコンストラクト本体です。 論理的には、C 構造体と同様に、コンストラクトはデータのコレクションを表します。
コンストラクト本体は、コンストラクト区切り文字で囲まれたゼロ、1 つ、または複数の GDL エントリです。 コンストラクト本体は、左中かっこ ({) によって導入され、右中かっこ (}) で終わる必要があります。
コンストラクト区切り文字で囲まれた GDL エントリは、コンストラクトの内容と呼ばれます。 囲まれた GDL エントリは、子、子エントリ、子要素、またはコンストラクトのメンバーとも呼ばれます。 子エントリもコンストラクトにできるため、コンストラクトの深い入れ子を任意に作成できます。ただし、親コンストラクトの直接の子孫のみが子エントリと呼ばれます。
逆に、子エントリをすぐに囲むコンストラクトは、親コンストラクトと呼ばれることもあります。 同じ親コンストラクトを共有する 2 つの GDL エントリを兄弟と呼びます。 本体にエントリの親またはエントリの親の親が含まれるコンストラクトは、先祖コンストラクトと呼ばれます。
コンストラクト本体の前にある属性は、コンストラクト ヘッドと呼ばれるか、コンストラクトだけを呼び出します。 コンストラクト ヘッドのキーワードコンポーネントは、コンストラクト型と呼ばれます。 複数の兄弟コンストラクトが定義され、それぞれが同じキーワードを持つ場合、それらは同じコンストラクト型に属していると見なされます。 コンストラクト ヘッドの値コンポーネントは、コンストラクト インスタンス名またはコンストラクト タグと呼ばれます。 コンストラクト タグはシンボルである必要があります。 コンストラクト タグは構文的には省略可能ですが、場合によっては必須となります。
コンストラクトには、構文的または論理的な構造を使用できます。 コンストラクトは共用体で構成できます。
任意の数の空白文字と改行シーケンスは、コンストラクト区切り文字の前または後に配置することができます。 ただし、読みやすくするために、C スタイルのインデント規則が通常使用されます。
次のコード例は、GDL コンストラクトを示しています。
*ConstructType: ConstructTag
{ *% Begin Construct Delimiter
*% this is the Construct Body
*ChildAttribute: child attribute value
*ChildConstruct: ChildConstructTag
{
*% Body of Child construct could hold more constructs.
}
*AnotherChildConstruct: ChildConstructTag2
{
*% Contents of *AnotherChildConstruct
*% since both child constructs share the same Parent construct, they are
*% Sibling Constructs.
*DescendantAttribute: this attribute is a descendant of *ConstructType: ConstructTag
}
} *% End Construct Delimiter
このセクションには、次が含まれます。