Construcciones GDL
Una construcción GDL es simplemente un atributo GDL seguido de un cuerpo de construcción. Lógicamente, una construcción representa una colección de datos, como hace una estructura de C.
Un cuerpo de construcción es cero, una o más entradas de GDL entre caracteres delimitadores de construcción. El cuerpo de la construcción debe introducirse mediante la llave izquierda ({) y terminar por la llave derecha (}).
Las entradas de GDL que se incluyen entre los caracteres delimitadores de construcción se conocen como el contenido de la construcción. Las entradas GDL incluidas también se conocen como elementos secundarios, entradas secundarias, elementos secundarios o miembros de la construcción. Dado que las entradas secundarias también pueden ser construcciones, puede crear anidamientos arbitrariamente profundos de construcciones; sin embargo, solo los descendientes inmediatos de la construcción primaria se denominan entradas secundarias.
Por el contrario, la construcción que incluye inmediatamente las entradas secundarias a veces se conoce como construcción primaria. Dos entradas de GDL que comparten la misma construcción primaria se denominan elementos del mismo nivel. Una construcción cuyo cuerpo contiene el elemento primario de una entrada o el elemento primario de un elemento primario de una entrada (y así sucesivamente) se denomina construcción antecesor.
El atributo que precede al cuerpo de la construcción se denomina encabezado de construcción o, a veces, simplemente la construcción. El componente de palabra clave del encabezado de construcción se denomina tipo de construcción. Si se definen varias construcciones del mismo nivel, cada una con la misma palabra clave, se considera que pertenecen al mismo tipo de construcción. El componente de valor del encabezado de construcción se denomina nombre de instancia de construcción o la etiqueta de construcción. Se espera que la etiqueta de construcción sea un símbolo. La etiqueta de construcción es opcional sintácticamente, pero es necesaria en algunos casos.
Las construcciones pueden ser sintácticas o lógicas. Las construcciones pueden constar de uniones.
Una cantidad arbitraria de espacios en blanco y secuencias de salto de línea puede preceder o seguir los caracteres delimitadores de construcción. Sin embargo, por motivos de legibilidad, normalmente se usa una convención de sangría de estilo C.
En el ejemplo de código siguiente se muestra una construcción 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
Esta sección incluye:
Delimitadores de construcción de GDL
Construcciones sintácticas y lógicas en GDL
Uniones de construcción de GDL