HP Pascal/iX Reference Manual (31502-90022)

11- 26
Syntax
Note that if a particular extension parameter is supplied in an actual
parameter list, then all EXTENSIBLE (and non-defaulted) parameters to the
left of the supplied parameter must also be supplied.
It is an error to access a formal parameter whose corresponding actual
parameter was not passed. An EXTENSIBLE parameter list, therefore, is
always passed with a hidden parameter describing the number of parameters
actually passed. The predefined function haveextension can be used to
determine if an EXTENSIBLE parameter is present. See the section
"Predefined Routines" for more details.
Example
PROCEDURE proc( i,j : integer )
OPTION EXTENSIBLE 0;
BEGIN
...
END;
...
proc; { both parameters not supplied }
proc( 1 ); { second parameter not supplied }
proc( 1,2 ); { both parameters passed }
proc( ); { illegal: implies a defaulted parameter }
proc( ,2 ); { illegal: only trailing parameters can be omitted }
proc( 1, ); { illegal: implies a defaulted second parameter }
Refer to the
HP Pascal/iX Programmer's Guide
or the
HP Pascal/HP-UX
Programmer's Guide
, depending on your implementation, for more
information on OPTION EXTENSIBLE.
INLINE.
The option INLINE specifies that the code for a procedure or function be
expanded in line wherever it is invoked. This expansion removes most
procedure call overhead and increases the amount of object code
generated. Value parameters work the same with INLINE, that is, an
assignment to a value parameter inside an inlined routine does not result
in the modification of the actual parameter.
INLINE procedures and functions cannot invoke themselves or any other
mutually recursive inline procedures or functions. The body of a
procedure or function must be supplied when INLINE is used.
Syntax