beautypg.com

1 conditional compilation – Compaq DEC Text Processing Utility AA-PWCBD-TE User Manual

Page 99

background image

Lexical Elements of the DEC Text Processing Utility Language

4.10 Lexical Keywords

4.10.1 Conditional Compilation

The following lexical keywords control what code is compiled under different
conditions:

%IF

%IFDEF

%THEN

%ELSE

%ENDIF

You use conditional compilation lexical keywords in a manner similar to ordinary
IF/THEN/ELSE/ENDIF statements. The syntax is as follows:

%IFDEF variable_or_proc_name %THEN ... [%ELSE ...] %ENDIF

or

%IF boolean_expression %THEN ... [%ELSE ...] %ENDIF

If you use the %IFDEF structure, specify variable_or_proc_name as the name of
a DECTPU procedure or variable. IFDEF is a statement that says ‘‘if a variable
or procedure with this name is defined.’’ If the name is defined, the compiler
compiles the code marked by %THEN. If the name is not defined, the compiler
compiles the code marked by %ELSE.

If you use the %IF structure, specify boolean_expression as either a numeric
constant or a defined global variable whose value is an integer. Any odd value
is true and any even value is false. If the variable or constant contains a value
that is odd, the compiler compiles the code marked by %THEN. If the variable or
constant contains a value that is even, the compiler compiles the code marked by
%ELSE.

You do not have to put conditional compilation lexical keywords at the beginning
of a line. You can nest conditional statements to a depth of 2**32-1. For example:

ON_ERROR

[TPU$_CREATEFAIL]:

%IF eve$x_option_decwindows
%THEN

IF eve$x_decwindows_active
THEN

eve$popup_message (MESSAGE_TEXT (EVE$_CANTCREADCL, 1));

ELSE

eve$message (EVE$_CANTCREADCL);

ENDIF;

%ELSE

eve$message (EVE$_CANTCREADCL);

%ENDIF

eve$learn_abort;
RETURN (FALSE);

[OTHERWISE]:

ENDON_ERROR;

This ON_ERROR procedure determines whether a pop-up message widget or a
simple message is used, depending on whether the code is being compiled by a
DECwindows version of DECTPU.

Lexical Elements of the DEC Text Processing Utility Language 4–33