A procedure preamble has declarations for parameters and Local variables, Micros, and Macros. Global variables and Structures are declared in a Class preamble. A common format is used when declaring a parameter, variable, or fields within a structure.
Declaration := ['@' | '*'] Name [Array.Range] ['=' Static] [Type ['|' ...]]
| Name '|=' Static
| Name [Macro.Parameter] '=>' Expression [Comparator Expression]
Array.Range := '[' Dimension ',' ... ']'
Dimension := [Lower.Bound 'to'] Upper.Bound
Lower.Bound := Integer.Constant | Enumeration.Value
Upper.Bound := Lower.Bound | Enumerated.Size | '?'
Enumerated.Size := Enumerated.Type '(' '*' ')'
Macro.Parameter := '(' Name ['=' Expression] ',' ... ')'