Sección MacroModule
La sección describe los parámetros para el MacroModule. La sección se crea automáticamente cuando genera un módulo macro. Como alternativa, puede insertar la sección en una declaración de módulo manualmente o editar una sección generada automáticamente.
SEC MacroModule //optional: yes, modifier: None SEC Rootmodule : <identifier> //optional: no, modifier: None SEC MacroParameter : <identifier> //optional: yes, modifier: None Local_ParameterID := <parameter ID>; //optional: no, type: ID New_Name := <parameter name>; //optional: no, type: text New_Desc := <parameter description>; //optional: no, type: text END_SEC SEC MacroIO : <identifier> //optional: yes, modifier: None Local_IOID := <IO ID>; //optional: no, type: ID New_Name := <IO name>; //optional: yes, type: text New_Desc := <IO description>; //optional: yes, type: text END_SEC SEC MacroSlot : <identifier> //optional: yes, modifier: None Local_SlotID := <slot ID>; //optional: no, type: ID New_Role := <role name>; //optional: yes, type: text END_SEC SEC Default_Allocation //optional: no, modifier: None Module_Name := <module name>; //optional: no, type: QID SEC VisuEmbeddings //optional: yes, modifier: None Empty := TRUE/FALSE; //optional: yes, type: BoolFlag SEC Embedding : <identifier> //optional: yes, modifier: None VisuName := <visu ID>; //optional: no, type: ID ProxyVisuName := <proxy visu ID>; //optional: no, type: ID Target := <target ID>; //optional: yes, type: ID LinkId := <linke ID>; //optional: yes, type: ID END_SEC END_SEC SEC PageVisu //optional: yes, modifier: None VisuName := <visu ID>; //optional: yes, type: ID TopLevelTab := <top level tab>; //optional: yes, type: ID/Bool END_SEC SEC IOMappings : <identifier> //optional: no, modifier: None SEC Mapping : <identifier> //optional: yes, modifier: None NoMapping := TRUE/FALSE; //optional: yes, type: BoolFlag STExpression := <ST expression>; //optional: yes, type: ID/ST expression ModuleConnection := <module connection>; //optional: yes, type: ID/ST expression END_SEC END_SEC SEC Parameters : <identifier> //optional: yes, modifier: None SEC Param : <identifier> //optional: yes, modifier: None Value := <value ID>; //optional: no, type: ID END_SEC END_SEC END_SEC END_SEC SEC Submodule : <identifier> //optional: yes, modifier: None Parent_Instance := <instance ID>; //optional: no, type: ID Parent_Slot := <slot ID>; //optional: no, type: ID SEC MacroParameter : <identifier> //optional: yes, modifier: None Local_ParameterID := <parameter ID>; //optional: no, type: ID New_Name := <parameter name>; //optional: yes, type: text New_Desc := <parameter description>; //optional: yes, type: text END_SEC SEC MacroIO : <identifier> //optional: yes, modifier: None Local_IOID := <IO Id>; //optional: no, type: ID New_Name := <IO name>; //optional: yes, type: text New_Desc := <IO description>; //optional: yes, type: text END_SEC SEC MacroSlot : <identifier> //optional: yes, modifier: None Local_SlotID := <slot ID>; //optional: no, type: ID New_Role := <role name>; //optional: yes, type: text END_SEC SEC Default_Allocation //optional: no, modifier: None Module_Name := <module name>; //optional: no, type: QID Instance_Name := <instance name>; //optional: no, type: ID SEC VisuEmbeddings //optional: no, modifier: None Empty := TRUE/FALSE; //optional: yes, type: BoolFlag SEC Embedding : <identifier> //optional: yes, modifier: None VisuName := <visu ID> //optional: no, type: ID ProxyVisuName := <proxy visu ID> //optional: no, type: ID Target := <target ID>; //optional: yes, type: ID LinkId := <link ID>; //optional: yes, type: ID END_SEC END_SEC SEC PageVisu //optional: yes, modifier: None VisuName := <visu ID>; //optional: yes, type: ID TopLevelTap := <top level tab>; //optional: yes, type: ID/Bool END_SEC SEC IOMappings : <identifier> //optional: yes, modifier: None SEC Mapping : <identifier> //optional: yes, modifier: None NoMapping := TRUE/FALSE //optional: yes, type: BoolFlag STExpression := <ST expression> //optional: yes, type: ID/ST expression ModuleConnection := <module connection> //optional: yes, type: ID/ST expression END_SEC END_SEC SEC Parameters //optional: yes, modifier: None SEC Param : <identifier> //optional: yes, modifier: None Value := <value>; //optional: no, type: ID END_SEC END_SEC END_SEC END_SEC SEC Reference : <identifier> //optional: yes, modifier: None Parent_Instance := <instance ID>; //optional: no, type: ID Parent_Slot := <slot ID>; //optional: no, type: ID Referenced_Instance := <instance ID>; //optional: no, type: ID END_SEC END_SEC
Los detalles sobre la sintaxis de los tipos de definición se describen en la sección Declaración del módulo.
MacroModule
: si se define esta sección, no se permite que aparezca ninguna otra sección dentro de la declaración del módulo completo excepto la secciónMetaData
. Cada declaración de módulo con esta sección se identifica claramente como tipo MacroModule. otra seccionMacroModule
no está permitido dentro de una declaración de módulo.Rootmodule
: Indica que las siguientes subsecciones describen el submódulo raíz, que debe ser 1) la raíz de este tipo de MacroMódulo y 2) insertado como el padre superior de todos los demás submódulos del tipo MacroMódulo.Submodule
: Indica que las siguientes subsecciones describen un submódulo, que debe insertarse debajo del submódulo raíz en un subárbol para el tipo MacroModule.MacroParameter
: Si este tipo de subsección se usa en una secciónSubmodule
oRoot
, entonces se puede indicar que un parámetro específico del submódulo definido (o raíz) debe ocurrir en sí mismo como un parámetro del módulo macro. Para ello, el objetivo de la secciónMacroParameter
se utiliza como un nuevo ID de parámetro para el parámetro del módulo macro. El parámetro del submódulo dado (o raíz) se define entonces porLocal_ParameterID
. Además, las entradas de la lista de texto se pueden crear utilizando las definiciones deNew_Name
yNew_Desc
. Estas entradas se utilizan para el nombre y la descripción del nuevo parámetro del módulo macro en lugar del submódulo o parámetro raíz. Todos los objetivos definidos de todas las secciones.MacroParameter
dentro de un módulo de macro completo debe estar claro para garantizar ID de parámetros únicos para todos los parámetros del módulo de macro.MacroIO
: Si este tipo de subsección se utiliza en la secciónSubmodule
oRoot
, entonces se puede indicar que una E/S específica del submódulo definido (o raíz) debe ocurrir en sí misma como una E/S del módulo macro. Para ello, el objetivo de la secciónMacroIO
se utiliza como una nueva ID de E/S para la E/S del módulo macro. La E/S del submódulo dado (o raíz) se define entonces porLocal_IOID
. Además, las entradas de la lista de texto se pueden crear usando las definiciones deNew_Name
yNew_Desc
. Estas entradas se utilizan para el nombre y la descripción de la nueva E/S del módulo macro en lugar del submódulo o la E/S raíz. Todos los objetivos definidos de todas las secciones.MacroIO
dentro de un módulo de macro completo debe estar claro para garantizar ID de E/S únicos para todas las E/S del módulo de macro.MacroSlot
: Si esta subsección se utiliza en la secciónSubmodule
oRoot
, entonces se puede indicar que una ranura específica del submódulo definido (o raíz) debería aparecer como una ranura del módulo macro. De esta forma, se pueden insertar instancias de módulos adicionales debajo de esta ranura de la instancia de MacroModule. El objetivo de la secciónMacroSlot
luego se usa como un nuevo ID de ranura para la ranura de MacroModule. La ranura del submódulo dado (o raíz) se define entonces porLocal_SlotID
. Además, se puede crear una entrada de lista de texto usando las definicionesNew_Role
. Esta entrada se utiliza para la función de la nueva ranura del módulo macro en lugar de la del submódulo o la ranura raíz. Todos los objetivos definidos de todas las secciones.MacroSlot
dentro de un MacroModule completo debe estar claro para garantizar ID de ranura únicas para todas las ranuras de MacroModule.Parent_Instance
: Define un ID correspondiente a un ID objetivo de una secciónRootmodule
oSubmodule
de la sección envolventeMacroModule
. Esta definición existe sólo dentro de la secciónSubmodule
. Define la instancia del módulo principal debajo de la cual se debe insertar el submódulo. Este submódulo se describe en la sección respectivaSubmodule
del MacroMódulo. Además, la definiciónParent_Slot
también se requiere.Parent_Slot
: Define una ID correspondiente a la ID de la ranura ubicada debajo del tipo de submódulo identificado porParent_Module
. El submódulo del tipo MacroModule descrito en la secciónSubmodule
se inserta debajo de esta ranura.Default_Allocation
: Esto es idéntico a la sección del mismo nombre bajo las declaraciones de ranuras (Slot
ySlot_Multi
). Esta sección define tanto para el "módulo raíz" como para el "submódulo" qué tipo de submódulo del tipo MacroModule debe insertarse para qué configuración de instancia. La única diferencia es que noInstance_Name
se puede definir paraDefault_Allocation
bajo una secciónRootmodule
, sino en seccionesSubmodule
. La razón de esto es que las instancias de módulo insertadas como "módulo raíz" reciben su nombre de la instancia de MacroModule y, por lo tanto, no se pueden ingresar de manera "predeterminada".Reference
: Muestra que las siguientes subsecciones describen una referencia de módulo. Se genera una referencia debajo de la instancia del módulo.Parent_Instance
y la ranuraParent_Slot
, haciendo referencia al submóduloReferenced_Instance
. como elParent_Instance
, esta instancia a la que se hace referencia debe originarse en el conjunto del submódulo de instancias del módulo raíz debajo de la misma secciónMacroModule
.
no se usará
IMPLEMENTED_BY
oIMPORTS
en su declaración de módulo.Debe incluir la sección
MetaData
yMacroModule
. De lo contrario, no se deben utilizar secciones adicionales.Al menos una sección
Rootmodule
debe estar disponible debajo de la secciónMacroModule
Además, una segunda secciónRootmodule
no puede existirPara cada
submodule
, ambosParent_Instance
y elParent_Slot
debe definirse dentroMacroModule
. Esto debe definirse entonces comoLocal_SlotID
dentro deMacroSlot
de ElParent_Instance
.