"Анри Бертьен. Стандартный набор операторов языка REXX (для OS/2) " - читать интересную книгу автора


Для системных интерпретаторов PC/DOS и OS/2 допустима 'косвенная
адресация' переменных в операторе DROP:

A=23
B=44
D='A B'


F='RAM'

Drop (d) f /* отменим переменную 'F' и имена из списка, присвоенного
переменной 'D' (однако не саму переменную 'D'!) */
Say a b d f /* Выведет: 'A B a b F' */


EXIT - завершение выполнения программы.

Оператор EXIT вызывает немедленное и безусловное завершение
REXX-программы (текущего REXX-файла) в целом, даже если он (EXIT) был
выполнен во внутренней подпрограмме или внутренней функции. Вся внутренняя
информация интерпретатора о данной программе (режимы трассировок, значения
переменных, состояние циклов и т.п.) утрачивается (за ненадобностью). Если
вызов завершаемой программы осуществлялся из другой REXX-программы, то
интерпретатор актуализирует сохранённую ранее подобную информацию об этой
(вызывавшей) программе.

Формат:

Exit [<выражение>]

Если присутствует <выражение>, то его значение возвращается вызывающему
программному модулю, REXX-файлу или среде.
Если завершаемая программа была вызвана в качестве команды или
подкоманды, то возвращаемые данные будут интерпретироваться, как код
возврата в соответствующую командную среду, то есть должны быть целым
числом, не выходящим за допустимые пределы. Для PC/DOS и OS/2 это -
от -2**15 до 2**15, для CMS - от -2**31 до 2**31 (хотя в стандартном режиме
пульта CMS в сообщении о завершении отображаются только 5 знаков кода
возврата, включая знак '-' для отрицательных значений). Если возвращаемая
строка не удовлетворяет этим условиям, интерпретатор в промышленных
(профессиональных) системах фиксирует ошибку и снимает вызывающую программу,
во всех 'персоналочных' системах возвращается значение '0'. Если оператор
EXIT не имеет операндов - во всех системах подразумевается значение '0'.
Если завершаемая программа была вызвана в качестве внешней
подпрограммы, то возвращаемые данные, если указаны, будут присвоены
специальной переменной RESULT вызывавшей программы, в противном случае (если
оператор EXIT выдан без операндов) значение переменной RESULT будет
сброшено.
Если завершаемая программа была вызвана в качестве функции, то факт