Compaq DEC Text Processing Utility AA-PWCBD-TE User Manual
Page 83
Lexical Elements of the DEC Text Processing Utility Language
4.9 Reserved Words
Example 4–5 Complex Procedure with Optional Parameters
CONSTANT
user_warning
:= 0,
! Warning severity code
user_success
:= 1,
! Success severity code
user_error
:= 2,
! Error severity code
user_informational := 3,
! Informational severity code
user_fatal
:= 4;
! Fatal severity code
!
! Output a message with fatal/error/warning flash.
!
PROCEDURE user_message (the_text; the_severity)
LOCAL flash_it;
!
! Only flash warning, error, or fatal messages.
!
CASE the_severity FROM user_warning TO user_fatal
[user_warning, user_error, user_fatal] : flash_it := TRUE;
[user_success, user_informational] : flash_it := FALSE;
[OUTRANGE] : flash_it := FALSE;
ENDCASE;
!
! Output the message - flash it, if appropriate.
!
MESSAGE (the_text);
IF flash_it
THEN
SLEEP ("0 00:00:00.3");
MESSAGE ("");
SLEEP ("0 00:00:00.3");
MESSAGE (the_text);
ENDIF;
ENDPROCEDURE;
Caution
Do not assume that the DECTPU compiler automatically evaluates
parameters in the order in which you place them.
To avoid the need to rewrite code, you should write as if this compiler
optimization were already implemented. If you need the compiler to evaluate
parameters in a particular order, you should force the compiler to evaluate each
parameter in order before calling the procedure. To do so, use each parameter in
an assignment statement before calling the procedure. For example, suppose you
want to call a procedure whose parameter list includes PARAM_1 and PARAM_2.
Suppose, too, that PARAM_1 must be evaluated first. To get this result, you could
use the following code:
partial_1 := param_1;
partial_2 := param_2;
my_procedure (partial_1, partial_2);
Lexical Elements of the DEC Text Processing Utility Language 4–17