Язык процедур 2-REXX для OS-2


PROCEDURE - часть 2


Принцип расположения переменных в дополнительном списке тот же, что и для основного списка, однако скобки или пробелы в начале и конце списка не допускаются. Переменные, перечисленные в дополнительном списке, тоже проявляются слева направо.

Пример: j=1;k=6;m=9 a ='j k m' test:procedure expose (a) /* будут проявлены j, k и m */

Если в списке имен указана основа, то проявляются все возможные составные переменные, чьи имена начинаются с этой основы. (Основа - это символ, содержащий только одну точку в качестве последнего знака).

Пример: lucky7:Procedure Expose i j a. b. /* Проявляет "I", "J" и все переменные, чьи */ /* имена начинаются с "A." или "B." */ A.1='7' /* Назначит "A.1" для среды вызывающей */ /* программы, даже если эта переменная */ /* ранее не существовала. */

При необходимости переменные могут проявляться и после выполнения ряда программ, но при этом нужные переменные должны быть включены во все промежуточные инструкции PROCEDURE.

На каждом уровне вызова программы допускается только одна инструкция PROCEDURE; все остальные (и те, которые встретились за пределами внутренних программ) считаются ошибочными.

Примечания:

  1. Внутренняя программа может не содержать инструкцию PROCEDURE, в этом случае она будет работать с теми переменными, которые имеются в распоряжении вызывающей программы.

  2. Инструкция PROCEDURE должна быть первой инструкцией, выполняющейся после CALL или вызова функции, т.е. первой инструкцией, следующей за меткой.

Для получения более подробной информации о вызове программ смотрите описание инструкции CALL.




- Начало -  - Назад -  - Вперед -