beautypg.com

Example 4–8 recursive procedure – Compaq DEC Text Processing Utility AA-PWCBD-TE User Manual

Page 85

background image

Lexical Elements of the DEC Text Processing Utility Language

4.9 Reserved Words

Example 4–8 Recursive Procedure

PROCEDURE user_reverse
LOCAL temp_string;

temp_string := READ_LINE("input>");

! Read a response

IF temp_string <> " "

! Quit if nothing entered
! but the RETURN key.

THEN

user_reverse

! Call user_reverse recursively

ELSE

RETURN

! All done, go to display lines

ENDIF;
MESSAGE (temp_string);

! Display lines typed in reverse order
! in the message window

ENDPROCEDURE;

4.9.4.7 Local Variables

The use of local variables in procedures is optional. If you use local variables,
they hold the values that you assign them only in the procedure in which you
declare them. The maximum number of local variables that you can use is 255.
Local variables are initialized to 0.

Syntax

LOCAL variable-name [[,...]];

If you declare a local variable in a procedure and, in the same procedure, use
the EXECUTE built-in to assign a value to a variable with the same name as
the local variable, the result of the EXECUTE built-in has no effect on the local
variable. Consider the following code fragment:

PROCEDURE test

LOCAL X;
EXECUTE ("X := 3");
MOVE_VERTICAL (X);

ENDPROCEDURE;

In this fragment, when the compiler evaluates the string

"

X := 3

"

, the compiler

assumes X is a global variable. The compiler creates a global variable X (if none
exists) and assigns the value 3 to the variable. When the MOVE_VERTICAL
built-in procedure uses the local variable X, the local variable has the value 0 and
the MOVE_VERTICAL built-in has no effect.

Local variables may also be declared in unbound code. See Section 4.9.5.2.

4.9.4.8 Constants

The use of constants in procedures is optional. The scope of a constant declared

within a procedure is limited to the procedure in which it is defined. See
Section 4.9.5.3 for more information on the CONSTANT declaration.

Syntax

CONSTANT constant-name := compile-time-constant-expression [[,...]];

4.9.4.9 ON_ERROR Statements

The use of ON_ERROR statements in procedures is optional. If you use an ON_
ERROR statement, you must place it at the top of the procedure just after any
LOCAL and CONSTANT declarations. The ON_ERROR statement specifies the
action or actions to be taken if an ERROR or WARNING status is returned. See
Section 4.9.4.14 for more information on ON_ERROR statements.

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