Please note : This help page is not for the latest version of Enterprise Architect. The latest help can be found here.
The Processing Instruction (PI) Macro
The PI (Processing Instruction) macro provides a means of defining the separator text to be inserted between the code pieces (which represent entities) that are generated using a template.
The structure for setting the Processing Instruction is:
In this structure, <value> is a literal string enclosed by double quotes, with these options:
- "\n" - New line (the default)
- " " - Space
- "\t" - Tab
- "" - Null
By default, the PI is set to generate a new line (\n) for each non-empty substitution, which behavior can be changed by resetting the PI macro. For instance, a Class’s Attribute declaration in simple VB code would be generated to a single line statement (with no new lines). These properties are derived from the Class-Attribute Properties in the model to generate, for example:
Private Const PrintFormat As String = "Portrait"
The template for generating this starts with the PI being set to a space rather than a new line:
% PI = " " %
% CONVERT_SCOPE (attScope)%
% endIf %
% if attConst == "T" %
% endIf %
On transforming this, attscope returns the VB keyword 'Private' and attConst returns 'Const' on the same line spaced by a single space (fitting the earlier VB Class.Attribute definition example).
Alternatively, when generating a Class you might want the Class declaration, the notes and Class body all separated by double lines. In this case the %PI is set to '/n/n' to return double line spacing:
% PI = "\n\n" %
% ClassDeclaration %
% ClassNotes %
% ClassBody %
- Blank lines have no effect on the output
- Any line that has a macro that produces an empty result does not result in a PI separator (space/new line)
- The last entry does not return a PI; for example, %Classbody% does not have a double line added after the body