Example 4–8 recursive procedure – Compaq DEC Text Processing Utility AA-PWCBD-TE User Manual
Page 85
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