GDL 构造
GDL 构造只是后跟构造主体的 GDL 属性。 从逻辑上讲,构造表示数据的集合,就像 C 结构一样。
构造正文是零个、一个或多个 GDL 条目,由构造分隔符字符括起来。 构造主体必须由左大括号 ({) 引入,并由右大括号 (}) 终止。
由构造分隔符字符括起来的 GDL 条目称为构造 的内容 。 封闭的 GDL 条目也称为 子项、 子项、 子元素或构造 的成员 。 由于子条目也可以是构造,因此可以创建构造的任意深度嵌套;但是,只有父构造的直接后代称为 子条目。
相反,直接包含子条目的构造有时称为 父构造。 共享同一父构造的两个 GDL 条目称为 同级。 其正文包含条目的父项或项 (的父项的父级等) 的 构造称为上级构造。
构造主体前面的属性称为 构造头,有时仅称为 构造头。 构造头的关键字 (keyword) 组件称为构造类型。 如果定义了多个同级构造,每个构造具有相同关键字 (keyword) ,则它们被视为属于同一构造类型。 构造头的值组件称为 构造实例名称或 构造标记。 构造标记应为 符号。 构造标记在语法上是可选的,但在某些情况下是必需的。
构造可以是 语法 构造,也可以 是逻辑构造。 构造可以包含联合。
任意数量的空格和换行序列可以在 构造分隔符字符之前或后面。 但是,为了便于阅读,通常使用 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
本节包括: