Al definir la gramática, utilizaría nodos ASTy atributos de nodo AST que pueden ser reconocidos en la ingeniería de código de Enterprise Architect, en el AST los resultados que son devueltos por los comandos atributo, attributeEx y nodo. Estos nodos y atributos son identificados en las tablas siguientes. Cualesquiera otros serán ignorados en la ingeniería de código.
Nodo FILE
El nodo FILE representa un archivo. No es asignado a nada, pero contiene toda la información necesaria.
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
0..*
|
PACKAGE
|
Vea el Nodo PAQUETE.
|
0..*
|
CLASS
|
Vea el Nodo CLASE.
|
0..*
|
IMPORT
|
|
0..*
|
COMMENT
|
Las etiquetas de campo como parte de un salto regla estará en el nivel raíz; el generador de código busca comentarios de este tipo por su posición con respecto al nodo.
|
0..1
|
INSERT_POSITION
|
Esto da la posición donde se pueden insertar nuevas Clases, paquetes e implementaciones de método en el archivo. Si no se encuentra, el generador de código insertará automáticamente los nuevos ítems inmediatamente después de que el último se encuentre en el código.
|
Nodo PAQUETE
El nodo PAQUETE corresponde a un espacio de nombre o equivalente en el archivo. Al importar un paquete por cada espacio de nombre, Enterprise Architect creará un paquete directamente bajo la importación para este y colocará todas las Clases dentro de él. Cuando no está importando espacios de nombre, Enterprise Architect buscará Clases bajo este punto, pero no hará nada con este nodo.
Además, si están generando con espacios de nombre activado (vea los temas Opciones de Código para lenguajes genéricos) una Clase generada no coincidirá con una Clase en el código a menos que estén bajo la misma estructura de paquete.
Contenido en nodos: FILE
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
1
|
NAME
|
Vea el Nodo NOMBRE.
|
0..*
|
CLASS
|
Vea el Nodo CLASE
|
0..*
|
PACKAGE
|
|
0..1
|
OPEN_POSITION
|
Da la posición donde se abre el cuerpo del paquete. Esto también puede ser utilizado como una posición de inserción.
|
0..1
|
INSERT_POSITION
|
Da la posición donde se pueden insertar nuevas Clases y paquetes en el archivo. Si no se encuentra, el generador de código insertará automáticamente los nuevos ítems inmediatamente después de que el último se encuentre en el código.
|
0..1
|
SUPPRESS
|
Evita la sangría cuando se inserta en este paquete.
|
Nodo CLASE/INTERFAZ
El nodo CLASE (o INTERFAZ) es el más importante en la generación de código. Es traído como Objetos de Clase (o Interfaz).
Vea DECLARACIÓN de Clase (abajo) y CUERPO de Clase.
Contenido en nodos: ARCHIVO, PAQUETE, CUERPO de Clase
Declaración de CLASE
Contenido en nodos: CLASS/INTERFACE
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
1
|
NAME
|
Vea el Nodo NOMBRE.
|
0..*
|
PARENT
|
Vea el Nodo PADRE
|
0..*
|
TAG
|
Vea el Nodo ETIQUETA
|
0..1
|
DESCRIPTION
|
Vea el Nodo DESCRIPCIÓN
|
1
|
NAME
|
El nombre de la Clase. Si hay un nodo NOMBRE, que sobrescribirá este atributo.
|
0..1
|
SCOPE
|
El Alcance UML de la Clase - Público, Privado, Protegido o Paquete.
|
0..1
|
ABSTRACT
|
Si está presente, indica que esta es una Clase abstracta.
|
0..1
|
VERSION
|
La versión de la Clase.
|
0..1
|
STEREOTYPE
|
El estereotipo que Enterprise Architect debería asignar a la Clase. Esto no soporta múltiples estereotipos.
|
0..1
|
ISLEAF
|
|
0..1
|
MULTIPLICITY
|
|
0..1
|
LANGUAGE
|
Generalmente, no necesita configurar esto.
|
0..1
|
NOTE
|
Generalmente no se usa, ya que está cubierto por los comentarios sobre la Clase.
|
0..1
|
ALIAS
|
|
0..*
|
MACRO
|
Agrega un Valor Etiquetado numerado que Enterprise Architect puede utilizar para la ida y vuelta de macros.
|
Nodo CUERPO de Clase
Contenido en Nodos: CLASS/INTERFACE
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
0..*
|
METHOD
|
Vea el Nodo MÉTODO
|
0..*
|
ATTRIBUTE
|
Vea el Nodo ATRIBUTO
|
0..*
|
FIELD
|
Vea el Nodo CAMPO
|
0..*
|
CLASS
|
Vea el Nodo CLASE.
|
0..*
|
SCOPE
|
Vea el Nodo ALCANCE.
|
0..*
|
PROPERTY
|
|
0..*
|
TAG
|
Vea el Nodo ETIQUETA
|
0..*
|
PARENT
|
Vea el Nodo PADRE
|
0..1
|
OPEN_POSITION
|
Da la posición donde se abre el cuerpo de la Clase. Esto también puede ser utilizado como una posición de inserción.
|
0..1
|
INSERT_POSITION
|
Da la posición donde nuevo miembros de Clase se pueden insertar en el archivo. Si no se encuentra, el generador de código insertará automáticamente los nuevos ítems inmediatamente después de que el último se encuentre en el código.
|
Nodo SCOPE
Esta es una característica opcional para los lenguajes que se parecen a C++ que tienen bloques que especifican el alcance de elementos. El lenguaje debe tener un nombre especificado que se utiliza para el alcance de todos los elementos en el bloque. En todos los demás aspectos se comporta de manera idéntica al nodo de CUERPO de Clase.
Contenido en nodos: CUERPO de Clase
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
1
|
NAME
|
Utilizado como el alcance para todos los métodos y atributos contenidos dentro del ámbito.
|
Nodo MÉTODO
Contenido en nodos: CUERPO de Clase, ALCANCE
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
1
|
Método DECLARACIÓN
|
Vea el Nodo de DECLARACIÓN de Método, (abajo).
|
Nodo de DECLARACIÓN de Método
Contenido en Nodos: METHOD
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
0..1
|
TYPE
|
Vea el Nodo TIPO
|
0..*
|
PARAMETER
|
Vea el Nodo PARÁMETRO
|
0..*
|
TAG
|
Vea el Nodo ETIQUETA
|
0..1
|
DESCRIPTION
|
Vea el Nodo DESCRIPCIÓN
|
0..1
|
MULTI PARAMETER
|
Soporta el estilo de declaración de la lista de parámetros de Delphi; vea el Nodo PARÁMETRO.
Este es el equivalente al CAMPO.
|
1
|
NAME
|
|
0..1
|
TYPE
|
|
0..1
|
SCOPE
|
|
0..1
|
ABSTRACT
|
|
0..1
|
STEREOTYPE
|
|
0..1
|
STATIC
|
|
0..1
|
CONST o CONSTANT
|
|
0..1
|
PURE
|
|
0..1
|
ISQUERY
|
|
0..1
|
ARRAY
|
|
0..1
|
SYNCHRONIZED
|
|
0..*
|
MACRO
|
|
0..1
|
CSHARPIMPLEMENTS
|
Especifica un comportamiento especial para C#.
|
0..1
|
BEHAVIOR
|
Proporciona soporte para Aspect J, utilizando el comportamiento.
|
0..1
|
SHOWBEHAVIOR
|
Proporciona soporte para Aspect J, utilizando el comportamiento, y muestra el comportamiento de ingeniería inversa en el diagrama.
|
Nodo ATRIBUTO
Contenido en Nodos:
CUERPO de Clase, ALCANCE
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
1
|
TYPE
|
Vea el Nodo TIPO
|
0..*
|
TAG
|
Vea el Nodo ETIQUETA
|
0..1
|
DESCRIPTION
|
Vea el Nodo DESCRIPCIÓN.
|
1
|
NAME
|
|
0..1
|
TYPE
|
|
0..1
|
SCOPE
|
|
0..1
|
DEFAULT
|
|
0..1
|
CONTAINER o ARRAY
|
|
0..1
|
CONTAINMENT
|
Referencia o valor.
|
0..1
|
STEREOTYPE
|
|
0..1
|
STATIC
|
|
0..1
|
CONST o CONSTANT
|
|
0..1
|
ORDERED
|
|
0..1
|
LOWBOUND
|
|
0..1
|
HIGHBOUND
|
|
0..1
|
TRANSIENT o VOLATILE
|
|
Nodo FIELD
Un campo corresponde a varias declaraciones de atributos en una. Cualquier cosa no definida en las Declaraciones pero definida en el propio campo se configurará para cada declarador. Todo lo soportado en un atributo es soportado en el campo. Si no se encuentran declaradores entonces esto funciona de la misma manera que un atributo.
Contenido en nodos: CUERPO de Clase, ALCANCE
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
0..*
|
DECLARATOR
|
Vea el Nodo ATRIBUTO.
|
Nodo PARÁMETRO
Contenido en Nodos: DECLARACIÓN de Método, PLANTILLA
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
1
|
TYPE
|
Vea el Nodo TIPO
|
0..*
|
TAG
|
Vea el Nodo ETIQUETA
|
0..1
|
DESCRIPTION
|
Vea el Nodo DESCRIPCIÓN.
|
0..1
|
NAME
|
|
0..1
|
TYPE
|
|
0..1
|
KIND
|
Se espera que sea in, inout, out o retorno.
|
0..1
|
DEFAULT
|
|
0..1
|
FIXED
|
|
0..1
|
ARRAY
|
|
Nodo NAME
Contenido en Nodos: PAQUETE, DECLARACIÓN de Clase
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
1
|
NAME
|
|
0..*
|
QUALIFIER
|
|
0..*
|
NAMEPART
|
Una alternativa al uso de NOMBRE y CALIFICADOR. Una cadena de valores, todos excepto el último tomado como calificadores. La última es tomada como el Nombre.
|
Nodo TYPE
Contenido en Nodos: DECLARACIÓN de Método, ATRIBUTO, PARÁMETRO
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
0..1
|
TEMPLATE
|
Todo el texto de la plantilla es el nombre del tipo.
Sólo se utiliza si el NOMBRE no está definido.
Vea el Nodo PLANTILLA, abajo.
|
1
|
NAME
|
|
0..*
|
QUALIFIER
|
|
0..*
|
NAMEPART
|
Una alternativa al uso de NOMBRE y CALIFICADOR. Una cadena de valores, todos excepto el último tomado como calificadores. La última es tomada como el Nombre.
|
Nodo PLANTILLA
Contenido en Nodos: TYPE
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
0..*
|
PARAMETER
|
Vea el Nodo PARÁMETRO
|
1
|
NAME
|
|
Nodo PADRE
Contenido en Nodos: DECLARACIÓN de Clase
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
0..1
|
TYPE
|
Tiene el valor Padre, Implementa o VirtualP.
|
1
|
NAME
|
|
0..*
|
QUALIFIER
|
|
0..*
|
NAMEPART
|
Una alternativa al uso de NOMBRE y CALIFICADOR. Una cadena de valores, todos excepto el último tomado como calificadores. La última es tomada como el Nombre.
|
0..1
|
INSTANTIATION
|
|
Nodo TAG
Contenido en Nodos: DECLARACIÓN de Clase, DECLARACIÓN de Método, ATRIBUTO, PARÁMETRO
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
1
|
NAME
|
|
0..*
|
VALUE
|
|
0..1
|
MEMO
|
|
0..1
|
NOMEMO
|
|
0..1
|
GROUP
|
|
Nodo DESCRIPCIÓN
Contenido en Nodos:
DECLARACIÓN de Clase
,
Método DECLARACIÓN
,
ATTRIBUTE
,
PARAMETER
Multiplicidad
|
Nodos/Atributos Contenidos
|
Descripción
|
0..*
|
VALUE
|
|
Aprender más
|