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

本节包括:

GDL 构造分隔符

GDL 中的语法和逻辑构造

GDL 构造联合

GDL 空白字符

GDL 注释

GDL 字符串