Declarations
Since C and C++ language standards, features and keywords are ever evolving we obted for a generic solution to implement new keywords/features.
Declaration
To enable you to use any keyword/feature we extended the Embedded Engineers UML Profile to contain the Declaration
Stereotype.
This Stereotype/Tagged Values can be set for:
To use this new feature simply apply the Stereotype Declaration to one of the specified elements and set Incorporation
, Prefix
and/or Suffix
Tagged Values
Incorporation
Specifies where the Pre-/Suffix should be generated.
Possilbe values:
Value | Description |
---|---|
Implementation | Will generate Pre-/Suffix in the implementation file (.c File) |
Declaration | Will generate Pre-/Suffix in the declaration file (.h File) |
Both | Will generate Pre-/Suffix in both files (c. and .h File) |
Prefix
A simple string/opaque code that will be inserted right before the code of the flagged element
Suffix
A simple string/opaque code that will be inserted right after the code of the flagged element
Example
Use the model: CodeGenerationComponentsTest.eapx
Element: Model.EmbeddedEngineer Components.AnsiC.Structural Elements.Classes.DeclarationClass
Use the model: MDCodeGenerationComponentsTest.xml
Element: Model.EmbeddedEngineer Components.AnsiC.Structural Elements.Classes.DeclarationClass
We flagged the example Class, Struct, Enum, Activity, Attribute and Operation with a prefix_[type]
and suffix_[type]
string in the corresponding model.
Generated Code
Pre-/Suffix Code Example
prefix_enum typedef enum suffix_enum {
} DeclarationEnum;
prefix_struct typedef struct DeclarationStructStruct suffix_struct
{
} DeclarationStruct;
prefix_Class typedef struct DeclarationClassStruct suffix_Class
{
prefix_attr int DeclarationAttr suffix_attr;
} DeclarationClass;
prefix_Activity void DeclarationClass_DeclarationActivity(DeclarationClass* const me) suffix_Activity;
prefix_fnc void DeclarationClass_DeclarationFnc(DeclarationClass* const me) suffix_fnc;