Procedure declaration


SYNTAX:
 
procedure_decl = procedure_head [ algorithm_head ] stmt { stmt }  END_PROCEDURE ';' .
procedure_head = PROCEDURE procedure_id [ '(' [ VAR ] formal_parameter  { ';' [ VAR ] formal_parameter } ')' ]  ':' parameter_type ';' .
formal_parameter = parameter_id { ',' parameter_id } ':' parameter_type .
parameter_type = generalized_types | named_types | simple_types .
algorithm_head = { declaration } [ local_decl ] .
declaraton = constant_decl | function_decl | procedure_decl .
Except for a change in the algorithm head, a procedure declaration in EDMexpressX is similar to a procedure declaration in the EXPRESS language. ENTITY and TYPE declarations are not supported in EDMexpressX. More than one constant declaration is allowed, and the constant declarations are not restricted to be the first declarations in an algorithm head.
The scope of a procedure identifier is the schema, function, procedure, map, statements or compose declaration in which the procedure declaration occurs.