Sektion: MacroModule
Die Sektion beschreibt die Parameter der Makro-Module. Diese Sektion wird automatisch angelegt, wenn Sie ein Makro-Modul erzeugen. Sie können die Sektion auch von Hand in eine Moduldeklaration einfügen oder eine automatisch erzeugte Sektion editieren.
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
Details über die Syntax der Definitionstypen sind im Kapitel Syntax der Moduldeklaration beschrieben.
Macro_Module
: Wenn diese Sektion definiert ist, darf innerhalb der gesamten Moduldeklaration keine weitere Sektion außer der SektionMetaData
vorhanden sein. Jede Moduldeklaration mit dieser Sektion ist eindeutig als Makro-Modul-Typ gekennzeichnet. Es darf auch keine weitere SektionMacroModule
innerhalb einer Moduldeklaration geben.Rootmodule
: Zeigt an, dass die folgenden Untersektionen das Wurzel-Submodul beschreiben, das die Wurzel dieses Macro-Modul-Typs sein soll und zu oberst als Vater aller anderen Submodule des Makro-Modul-Typs eingefügt werden soll.Submodule
: Zeigt an, dass die folgenden Untersektionen ein Submodul beschreiben, das für den Makro-Modul-Typ irgendwo im Unterbaum unter dem Wurzel-Submodul eingefügt werden soll.MacroParameter
: Wird eine solche Sektion innerhalb einer SektionSubmodule
oderRoot
verwendet, kann angegeben werden, dass ein bestimmter Parameter des definierten Submoduls (oder Root) als Parameter des Makro-Moduls selbst auftreten soll. Dazu wird das Target der SektionMacroParameter
als neue Parameter-ID für den Makro-Modul-Parameter verwendet. Der Parameter des angegebenen Submoduls (oder Root) wird dann über die DefinitionLocal_ParameterID
angegeben. Zusätzlich können über die DefinitionenNew_Name
undNew_Desc
Textlisten-Einträge angegeben werden. Diese Einträge werden für Name und Beschreibung des neuen Makro-Modul-Parameters anstelle derjenigen des Submodul- oder Root-Parameters verwendet. Alle angegebenen Targets aller SektionenMacroParameter
innerhalb eines gesamten Makro-Moduls müssen eindeutig sein, so dass alle Makro-Modul-Parameter eindeutige Parameter-IDs besitzen.MacroIO
: Wenn eine solche Sektion innerhalb der SektionSubmodule
oderRoot
verwendet wird, kann angegeben werden, dass ein bestimmter IO des definierten Submoduls (oder Root) als IO des Makro-Moduls selbst auftreten soll. Dazu wird das Target der SektionMacroIO
als neue IO-ID für den Makro-Modul-IO verwendet. Der IO des angegebenen Submoduls (oder Root) wird dann über die DefinitionLocal_IOID
angegeben. Zusätzlich können über die DefinitionenNew_Name
undNew_Desc
Textlisteneinträge angegeben werden. Diese Einträge werden für Name und Beschreibung des neuen Makro-Modul-IOs anstelle derjenigen des Submodul- oder Root-IOss verwendet. Alle angegebenen Targets aller SektionenMacroIO
innerhalb eines gesamten Makro-Moduls müssen eindeutig sein, so dass alle Makro-Modul-IOs eindeutige IO-IDs besitzen.MacroSlot
: Wird diese Sektion innerhalb der SektionSubmodule
oderRoot
verwendet, kann angegeben werden, dass ein bestimmter Steckplatz des definierten Submoduls (oder Root) als Steckplatz des Makro-Moduls selbst auftreten soll. Somit kann unterhalb dieses Steckplatzes der Makro-Modul-Instanz weitere Modulinstanzen eingefügt werden. Dazu wird das Target der SektionMacroSlot
als neue SlotID für den Makro-Modul-Slot verwendet. Der Steckplatz des angegebenen Submoduls (oder Root) wird dann über die DefinitionLocal_SlotID
angegeben. Zusätzlich kann über die DefinitionenNew_Role
ein Textlisteneintrag angegeben werden. Dieser Eintrag wird für die „Role“ des neuen Makro-Modul-Slots anstelle desjenigen des Submodul- oder Root-Slots verwendet. Alle angegebenen Targets aller SektionenMacroSlot
innerhalb eines gesamten Makro-Moduls müssen eindeutig sein, so dass alle Makro-Modul-Slots eindeutige Slot-IDs besitzen.Parent_Instance
: Gibt eine ID an, die einer Target-ID einer SektionRootmodule
oderSubmodule
der umgebenden SektionMacroModule
entspricht. Diese Definition existiert nur innerhalb der SektionSubmodule
. Sie definiert die Vater-Modul-Instanz unterhalb derer das durch die jeweilige SektionSubmodule
beschriebene Submodul des Makro-Modul-Typen „eingefügt“ werden soll. Dazu ist die DefinitionParent_Slot
zusätzlich zwingend erforderlich.Parent_Slot
: Gibt eine ID an, die der ID eines Steckplatzes entspricht, die unterhalb des durchParent_Module
identifizierten Submodul-Typs zu finden ist. Unter diesem Steckplatz wird das durch die SektionSubmodule
beschriebene Submodul des Makro-Modul-Typen eingefügt.Default_Allocation
: Ist identisch zur gleichnamigen Sektion unterhalb der Slot-Deklarationen (Slot
undSlot_Multi
). Diese Sektion gibt sowohl für „Rootmodule“ als auch „Submodule“ an, was für ein Submodul des Makro-Modul-Typs mit welcher Instanz-Konfiguration eingefügt werden soll. Einziger Unterschied ist, dass fürDefault_Allocation
unterhalb einer SektionRootmodule
keinInstance_Name
angegeben werden kann, dagegen unterhalb von SektionenSubmodule
schon. Der Grund ist, dass die als „Rootmodule“ eingefügten Modul-Instanzen ihren Namen von der Makro-Modul-Instanz bekommen und deshalb nicht „default“ angegeben werden können.Reference
: Zeigt an, dass die folgenden Untersektionen eine Modul-Referenz beschreiben. Dabei wird eine Referenz unter der Modul-InstanzParent_Instance
unter dem SteckplatzParent_Slot
erzeugt, wobei das SubmodulReferenced_Instance
referenziert wird. Diese referenzierte Instanz muss so wie dieParent_Instance
aus der Menge der Submodule- oder Rootmodule-Instanzen unterhalb der selben SektionMakro_Module
stammen.
Sie darf weder
IMPLEMENTED_BY
nochIMPORTS
in ihrer Moduldeklaration verwenden.Sie muss die Sektion
MetaData
undMacroModule
enthalten. Ansonsten dürfen keine weiteren Sektionen vorhanden sein.Unterhalb der Sektion
Macro_Modul
muss mindestens eine SektionRootmodule
vorhanden sein. Es darf zudem keine zweite SektionRootmodule
existieren.Für jedes
Submodule
muss innerhalb vonMacroModule
sowohl dieParent_Instance
als auch derParent_Slot
definiert sein. Dieser muss dann alsLocal_SlotID
innerhalb vonMacroSlot
derParent_Instance
definiert sein.