The procedure-heading of a procedure diagram diagram has this format:
[ <
virtuality
> ] [<export-as> ] procedure <procedure-name>
[ <
virtuality-constraint
> ] [ <
specialisation
> ]
[ <procedure-formal-parameters> ]
[ <result> ]
<procedure-formal-parameters> defines the formal parameters of the procedure and have the format:
<procedure-formal-parameters> ::=
fpar [ in`/`out | in ] <typed-parameters>
{, [ in`/`out | in ] <typed-parameters> }*
where <typed-parameters> have the format
<typed-parameters> ::
<variable-name> {`,` <variable-name>}\* <data-type-identifier>
<typed-parameters> is a list of parameter names followed by a data type name.
<result> ::= returns [ <variable-name> ] <data-type-identifier>
where <data-type-identifier> gives the data type of the value returned by the procedure. The optional <variable-name> can be used to name the result. The result can either be stated as an expression next to the return symbol, or as an assignment in a task to the variable introduced in result.