PROCEDURES AND FUNCTIONS
----------------------------------------------------------------
 PROCEDURE name(x,y,...;X,Y,...)   | --    procedure definition
    ...  statements ...
    end

  -  parameters x,y,... (before semicolon) are value parameters;
  -  parameters X,Y,... (after semicolon) are VAR parameters.

PROCEDURE foo(a,b), PROCEDURE moo(;xx,u1), PROCEDURE noo() are
all legal.  "exit" causes early return.  Procedure is subsequen-
tly called with
                   call name(a,b,...;A,B,...)

----------------------------------------------------------------
 FUNCTION name(x,y,...) = expression | --   function definition

Function is called when it is used in a subsequent expression:

     vv = rr1 - name(a,b,...)
----------------------------------------------------------------
Dummy parameters are "protected" after definition.  Recursive
calls and definitions are illegal.
