Конструкции GDL
Конструкция GDL — это просто атрибут GDL, за которым следует тело конструкции. Логически конструкция представляет коллекцию данных так же, как и структура C.
Тело конструкции равно нулю, одной или нескольким записям GDL, заключенным символами разделителей конструкции. Тело конструкции должно быть представлено левой фигурной скобкой ({) и заканчиваться правой фигурной скобкой (}).
Записи GDL, заключенные в символы разделителя конструкции, называются содержимым конструкции. Вложенные записи GDL также называются дочерними, дочерними записями, дочерними элементами или элементами конструкции. Поскольку дочерние записи также могут быть конструкциями, можно создавать произвольно глубокие вложения конструкций; однако дочерними записями называются только непосредственные потомки родительской конструкции.
И наоборот, конструкция, которая непосредственно заключает дочерние записи, иногда называется родительской конструкцией. Две записи 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
Этот раздел состоит из следующих частей.