Сводный справочник по REXX

Автор: Anrie Bertien

Источник: https://ablib.narod.ru/

От автора:

Добрый день, дорогой читатель. Некоторое время мне было совершенно нечего делать, и я решил соорудить в некотором роде Сводный справочник по rexx - для тех интерпретаторов, с которыми мне приходилось иметь дело. Все, что здесь написано для os2 rexx, точно так же работает в ibmobjrexxforwindows, это мне недавно представился случай проверить. В целом - нельзя сказать, что справочник закончен, ибо энтузиазмдавно иссяк, а кому всё это сегодня нужно - я не знаю. Толпа помешавшихся на не-языках "программистов" пишет нечто неудобопользуемое и неудобочитаемое, и большинство считает, что все так и должно быть - скучно. Но я буду рад, если сей текст кому-то ещё понадобится - и, в итоге, мой труд не пропадёт даром.

О любых замеченных ошибках просьба сообщать на e-mail: anrie_bertien@ukr.net, туда же - любые дополнения, которые Вы считаете необходимым внести в справочник. Меня несколько раз спрашивали об учебнике - его не будет, разве что какая-то организация (издательство или техническая фирма - всё равно) прилично заплатит за подобную работу. Материалы собраны, но сил на это нет.То же касается и учебника, и справочника по xedit/kedit.

 Лучший из известных мне учебниковпо языку rexx написан авторами, в ИБМ, и распространяется штатно в составе документации к VM/SP(VM/ESA).

 

Удачи вам всем.

 Sincerely yours,  Anrie Bertien

 

Оригинальный файл в формате MS WORD можно скачать здесь, он без оглавления.

Файл с оглавлением, так же в формате MS WORD можно скачать здесь.

Так справочнник можно скачать в формате txt.

Оглавление:

1.   Стандартный набор операторов языка REXX.

ADDRESS - передача команды (подкоманды) в указанную среду, установка значения имени среды, принимаемого по умолчанию.

ARG - получение значений входных параметров.

CALL - вызов подпрограмм.

DO - объединение операторов в логическую группу (обычно - с целью многократного выполнения).

DROP - отмена значений, присвоенных указанным переменным.

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

IF - выполнение указанного оператора в случае, когда выполняется заданное условие.

INTERPRET

ITERATE - пропустить все операторы до конца указанного цикла DO.

LEAVE - принудительное завершение указанного цикла DO.

NOP

NUMERIC - установка режимов выполнения арифметических операций (характеристик получаемых результатов).

OPTIONS - изменение некоторых режимов работы интерпретатора REXX.

PARSE - лексический анализ символьных строк различного происхождения.

PROCEDURE - оформление начала внутренних подпрограмм или функций.

PULL - ввод из программного стека и лексический анализ строки символов.

PUSH - занесение строки данных в программный стек в порядке LIFO (‘последним вошёл, первым вышел’).

QUEUE - занесение строки данных в программный стек в порядке FIFO (‘первым вошёл, первым вышел’).

RETURN - возврат из текущей REXX-программы в вызвавшую её программу или среду.

SAY - вывод строки данных на пульт (терминал).

SELECT - выбор одного из нескольких вариантов выполнения в соответствии с перечнем условий.

SIGNAL - изменение нормальной последовательности обработки строк программы при возникновении каких-либо особых ситуаций; управление режимами перехвата чрезвычайных ситуаций в программе.

TRACE - установка или изменение режимов трассировки программы.

UPPER - перекодирование значений одной или нескольких переменных в символы верхнего регистра.

2. Подпрограммы и функции.

2. 2       Обращения к функциям и подпрограммам.

Встроенные функции.

3.   Стандартный набор встроенных функций языка REXX.

ABBREV() - проверить, является ли данная подстрока символов допустимым усечением от указанной полной строки.

ABS() - получение абсолютного значения выражения.

ADDRESS() - получение имени текущей среды выполнения команд или подкоманд.

ARG() - получение входных параметров (аргументов) REXX-программы (или подпрограммы), определение количества строк этих аргументов.

B2C() - двоично-символьное преобразование.

B2X() - двоично-шестнадцатиричное преобразование.

BEEP - подача звукового сигнала.

BITAND - логическая операция 'И' над двумя аргументами.

BITOR - логическая операция 'ИЛИ' над двумя аргументами.

BITXOR - логическая операция 'исключающее ИЛИ' (XOR) над двумя аргументами.

C2B() - преобразование символьных данных (абсолютного кода) в двоичное представление.

C2D - преобразование символьных данных (абсолютного кода) в десятичное число.

С2Х() - 'распаковка' или получение шестнадцатиричного представления (шестнадцатиричного кода) строки-аргумента.

CENTER - амер. от 'CENTRE' - синоним для функции CENTRE (центрирование строки).

CENTRE (или CENTER) - центрирование строки.

CHARIN() - ввод символов из указанного потока (файла).

CHAROUT() - вывод группы символов в выходной поток (файл, терминал, etc.).

CHARS() - определение количества символов, оставшихся (ещё не прочитанных) в указанном входном потоке.

COMPARE - сравнение строк символов и указание различий.

Condition - получение информации об отслеживаемых событиях.

COPIES - многократное повторение строки.

D2С - получение символьной строки из её десятичного значения (функция, обратная C2D).

D2Х - Преобразование числа к шестнадцатиричному виду.

DATATYPE - Определение типа данных или проверка данных на соответствие указанному типу.

DATE - определение текущей даты.

DATECONV - преобразование формата даты

DELSTR - Удаление части строки.

DELWORD - Удаление слова (или группы слов) из строки символов.

DIGITS() - получение значения, установленного последним выполненным оператором NUMERIC DIGITS.

ERRORTEXT - получение текста сообщения интерпретатора об ошибке.

EXTERNALS - Определение числа строк во внешнем входном стеке пульта.

FIND - Поиск фразы в строке символов.

FORM() - получение значения, установленного последним выполненным оператором NUMERIC FORM.

FORMAT() - Округление и форматирование указанного числа.

FUZZ() - получение значения, установленного последним выполненным оператором     NUMERIC FUZZ.

INDEX - поиск подстроки в строке.

INSERT - вставка подстроки в строку, начиная с указанной позиции.

JUSTIFY - 'растяжка' строки до нужной длины путём вставки дополнительных пробелов между словами.

LASTPOS() - получение номера позиции последней обнаруженной в <строке> 52

LEFT() - получение левой части строки-аргумента в виде строки указанной длины.

LENGTH() - определение длины строки-аргумента.

LINEIN() - чтение строки из входного потока символов.

LINEOUT()- вывод строки данных в выходной поток символов.

LINES() - определение наличия данных в считываемом входном потоке.

LINESIZE() - получение текущего значения длины строки терминала виртуальной машины CMS.

LOWER - преобразование больших букв строки в соответствующие маленькие буквы.

MAX () - определение наибольшее из чисел, указанных в качестве аргументов.

MIN() - определение наименьшего из чисел, указанных в качестве аргументов.

OVERLAY() - получение результата перекрытия строки подстрокой.

POS() - определение  позиции подстроки в строке.

QUEUED() - определение числа строк в программном стеке.

RANDOM()- генерация случайных чисел.

REVERSE() - инвертирование строки символов.

RIGHT() - получение правой части строки аргумента в виде строки указанной длины.

RXQUEUE - управление именованными стеками в PC/DOS7 и в OS/2.

SIGN() - определение знака числа, указанного в качестве аргумента.

SOUND - подача звукового сигнала заданной частоты длительности.

SOURCELINE() - получение количества или содержимого строк исходного REXX-файла.

SPACE() - форматирование строки путём установления указанного количества пробелов между словами.

STREAM - операции над потоками данных в PC/DOS7 и в OS/2 и получение информации об этих потоках.

Strip() - 'раздевание' строки путём удаления начальных и/или хвостовых пробелов (или иных указанных символов).

Substr() - выделение части указанной строки.

SUBWORD() - выделение группы слов из предложения.

SYMBOL() - определение типа (состояния) указанного имени.

TIME() - определение времени суток или временного интервала.

TRACE - получение информации об установленных на текущий момент режимах трассировки.

TRANSLATE() - трансляция (замена, переподстановка) символов в строке.

TRUNC() - усечение дробной части числа.

UPPER() - замена в указанной строке маленьких букв большими (MSG).

USERID() - определение идентификатора пользователя виртуальной машины CMS.

VALUE() - определение значения указанной REXX-переменной.

VERIFY() - поиск недопустимых символов в указанной строке.

WORD() - выделение указанного слова из строки символов.

WORDINDEX() - определение позиции начала указанного слова в строке.

WORDLENGTH() - определение длины указанного слова в строке.

Wordpos() - определение положения фразы в строке.

WORDS() - определение количества слов в строке.

X2B() - преобразование из шестнадцатиричного в двоичное представление.

X2C() - преобразование из шестнадцатиричного представления в символьное.

X2D() - преобразование шестнадцатиричного представления числа в десятичное.

XRANGE() - получение строки байтов, содержащей все значения указанного диапазона.

4.   Специальные переменные

RC - код возврата последней выполненной команды (подкоманды) или код ошибки, перехваченной по 'SIGNAL ON SYNTAX'.

RESULT - значение последней функции, вызванной в виде подпрограммы.

SIGL - номер строки, в которой содержится оператор, вызвавший последний переход.

5. 1.  Системные интерфейсы.

6. 2.  Системные интерфейсы интерпретатора REXX CMS.

Вызовы интерпретатора и из него

Прямой интерфейс с текущими переменными (доступ к REXX-переменным текущей программы из вызванных из неё подпрограмм, функций, команд и подкоманд, написанных не на языке REXX).

7.   Функции интерпретатора PC/DOS7, входящие в комплект поставки.

RXCHDIR - изменение текущего каталога.

RXCHDRV - изменение текущего диска.

RXCLS - очистка экрана (с использованием указанного атрибута)

RXCREATE - создание файла.

RXCRSTAT() - изменение состояния курсора ('видимый' или 'невидимый').

RXDELETE - удаление указанного файла.

RXDINFO - получение информации о характеристиках диска.

RXDOSVER - определение версии операционной системы.

RXFINFO - получение информации о файле.

RXGETDIR - получение имени текущего каталога на текущем либо указанном диске.

RXGETDRV - получение идентификатора текущего диска DOS.

RXGETKEY - получение кода очередной нажатой клавиши из буфера клавиатуры.

RXGETMEM - определение размера свободной памяти DOS.

RXGETPOS() - определение координат курсора на экране.

RXISDIR - проверка, является ли указанное имя файлом или каталогом.

RXMKDIR() - 'Make Directory' (создание каталога).

RXNETDRV - проверка 'локальности' диска.

RXQSYS - определение конфигурации системы.

RXRMDIR - удаление каталога.

RXSCRSIZ() - определение размера экрана в текстовом режиме.

RXSETPOS() - изменение координат курсора на экране.

RXSLEEP - ожидание в течение указанного времени.

RXWRSCR - вывод данных на экран в полноэкранном режиме.

8.   Функции интерпретатора MSG, входящие в стандартный комплект поставки:

CURSOR() - определение и изменение координат курсора на экране.

CURSORTYPE() - Получение и переустановка типа (внешнего вида) курсора.

DELAY - ожидание в течение указанного времени.

DOSCD() - определение имени текущего каталога на текущем или на указанном диске.

DOSCHDIR() - изменение текущего каталога.

DOSCHMOD - переключение битов атрибутов файла на диске.

DOSCREATE - создание файла.

DOSDEL- удаление указанного файла.

DOSDIR() - получение информации об указанном файле.

DOSDIRPOS()

DOSDISK() - определение характеристик диска DOS.

DOSDRIVE() - получение или изменение идентификатора текущего диска.

DOSENV() - получение значения DOS-переменной.

DOSFNAME() - получение полного идентификатора указанного файла.

DOSMEM() - определение размера свободной памяти DOS.

DOSMKDIR() - 'Make Directory' (создание каталога).

DOSPATHFIND - поиск указанного файла по указанному перечню директорий  и получение полного идентификатора файла.

DOSRENAME() - переименование файла.

DOSRMDIR - удаление каталога.

DOSVERSION - определение версии операционной системы.

DOSVOLUME() - Получение информации о метке диска.

EMSMEM() - Получение размера памяти EMS.

FCNPKG - проверка состояния пакета функций.

INKEY - получение следующей клавиши из буфера клавиатуры.

INP - считывание байта из указанного порта.

OUTP - вывод байта в указанный порт28.

PARSEFN() - получение составных частей полного идентификатора файла.

PCDISK() - получение информации о характеристиках дисков системы.

PCDISPLAY() - получение информации об установленном терминале и терминальном адаптере.

PCEQUIP() - получение битовой строки флажков BIOS equipment

PCFLOPPY() - определение количества FLOPPY-дисков в системе.

PCGAME() - проверка наличия GAME-порта.

PCPARALLEL() - определение количества параллельных портов.

PCRAM() - получение объёма памяти персонального компьютера.

PCROMDATE() - определение даты ROM BIOS.

PCSERIAL() - определение количества последовательных портов.

PCTYPE() - получение информации о типе PC.

PCVIDEO() - определение установленного видеорежима.

PEEK - получение значения указанного байта памяти PC.

POKE - запись значения в указанный байт памяти PC.

SCRCLEAR - очистка (части) экрана с использованием указанного атрибута.

SCRMETHOD() - определение и переустановка метода 'общения' REXX с терминалом.

SCRPUT() - вывод на экран данных в формате полного экрана.

SCRREAD - чтение указанного количества символов, начиная с заданной позиции экрана.

SCRSIZE() - определение размера экрана в текстовом режиме.

SCRWRITE() - вывод данных на экран в полноэкранном режиме.

STACKSTATUS() - Получение информации о состоянии стека.

9.   Оконные функции msgrexx

W_ATTR - установить атрибут для участка строки в указанном окне.

W_BORDER - определить символ-заполнитель рамки окна и атрибут рамки.

W_CLEAR - очистка указанной части окна с использованием указанного атрибута.

W_CLOSE - Закрыть окно.

W_FIELD - определить поименованное поле для ввода данных в указанном окне.

W_GET - чтение введённых оператором данных из указанного места указанного окна.

W_HIDE - временная приостановка отображения или обновления указанного окна.

W_KEYS - определение функции клавиш перемещения курсора, табуляции и клавиши 'Enter' во время выполнения операции W_READ.

W_MOVE - перемещение окна по экрану.

W_OPEN - открыть окно.

W_PUT - запись данных в указанное место окна.

W_READ - чтение данных из указанного поименованного поля указанного окна.

W_SCRPUT - вывод данных в указанное место указанного окна.

W_SCRREAD - чтение произвольного участка указанного окна.

W_SCRWRITE - запись данных в указанное место окна.

W_SIZE - определение размеров окна.

W_UNFIELD - удалить поименованную область ввода из указанного окна.

W_UNHIDE - отмена временного приостановления обновления или отображения указанного окна (отмена W_HIDE).

CONWAIT - введена для совместимости с CMS. Не вызывает никаких действий.

DESBUF - введена для совместимости с CMS. Вызывает команду DROPBUF с операндом '0'.

DISABLE - временное 'прикрытие' программного стека.

DROPBUF - удаление всех данных из программного стека, начиная с указанного уровня.

ENABLE - восстановление доступности программного стека.

EXECIO - осуществление операций ввода-вывода.

GLOBALV - обеспечение совместного использования общих переменных разными REXX-программами.

Сообщения об ошибках, выдаваемые командой GLOBALV:

GLVMGR - загрузить менеджер поддержки глобальных переменных.

LISTFILE - получение информации о файлах ДОС (построение списка файлов, удовлетворяющих указанным условиям).

MAKEBUF - создание нового уровня в программном стеке.

PRESS - помещение указанных данных в стек пульта.

RXWINDOW - загрузить пакет функций RXWINDOW.

SENTRIES - получение количества записей в программном стеке.

10. Функции интерпретатора OS/2, входящие в стандартный комплект поставки.

Directory - получение информации о текущей субдиректории и изменение её, если это необходимо.

EndLocal - восстановление предварительно сохранённых характеристик среды.

FileSpec() - получение составных частей идентификатора указанного файла.

RxMessageBox - вывод сообщения в виде стандартного блока сообщения и ожидание ответа.

RxFuncAdd - активизация функции, являющейся составной частью пакета функций.

RxFuncDrop - деактивизация указанной функции, являющейся частью пакета функций.

RxFuncQuery - проверка наличия указанной функции в списке доступных функций.

11. Функции OS/2, поставляемые в составе пакета RexxUtil.

SysCreateObject - создание нового элемента в указанном классе объектов Workplace Shell (обращение к WinCreateObject).

SysDropFuncs - деактивизация всех функций пакета RexxUtil.

SysDriveInfo - получение информации о диске.

SysDriveMap - построение перечня дисковых устройств, находящихся в указанном состоянии.

SysDestroyObject - удаление указанного объекта Workplace Shell.

SysDeregisterObjectClass - удаление из системы описания указанного класса объектов ('дерегистрация').

SetLocal() - сохранение текущих характеристик среды.

SysFileDelete - удаление указанного файла.

SysFileSearch - контекстный поиск данных в указанном файле.

SysFileTree - получение информации о файлах (списках файлов).

SysGetEA - получение (из оглавления) именованного расширенного атрибута указанного файла.

SysGetKey - Получение следующей клавиши из буфера клавиатуры.

SysGetMessage - получить сообщение, соответствующее указанному номеру.

SysIni - 'ограниченное редактирование' (изменение значений переменных) в указанном файле .INI.

SysMkDir() - 'Make Directory' (создание каталога).

SysOS2Ver - определение версии операционной системы.

SysPutEA - запись (в оглавление) именованного расширенного атрибута указанного файла.

SysQueryClassList - получение полного списка зарегистрированных классов объектов системы OS/2.

SysRmDir - удаление каталога.

SysRegisterObjectClass - регистрация в системе нового класса объектов.

SysSetIcon - 'привешивание' иконки к указанному файлу.

SysSetObjectData - изменение характеристик указанного (существующего!) объекта.

SysSearchPath - поиск указанного файла по указанному пути и получение полного идентификатора файла.

SysTempFileName - создание уникального имени для временного рабочего файла или каталога.

SysTextScreenRead - чтение указанного количества символов, начиная с заданной позиции экрана.

SysTextScreenSize() - определение размера экрана в текстовом режиме.

SysCls() - очистка экрана терминала.

SysCurPos() - определение и изменение координат курсора на экране.

SysCurState() - изменение состояния курсора ('видимый' или 'невидимый').

SysSleep - ожидание в течение указанного времени.

SysWaitNamedPipe - ожидание именованного канала в течение указанного промежутка времени.

12. Некоторые дополнительные функции интерпретатора CMS.

ACIGROUP - получение параметра ACIGROUP указанной виртуальной машины.

CMSFLAG - получение информации о состоянии индикаторов в поле CMSFLAG в NUCON CMS.

DAYS - получение количества дней в указанном месяце указанного года.

DIAG или DIAGRC  - выдача виртуальной команды 'ДИАГНОСТИКА' с указанными операндами (ответ системы возвращается в виде строки символов).

STORAGE - доступ к оперативной памяти виртуальной машины.

TAPLABS* - чтение меток тома магнитной ленты, установленной на поддерживаемом в CMS устройстве (ТАР0-TAPF).

TAPVOL* - получение имени тома магнитной ленты, установленной на поддерживаемом в CMS устройстве (ТАР0-TAPF).

XCURFILE - получение идентификатора текущего файла в кольце файлов, редактируемых расширенным текстовым редактором CMS - XEDIT.

XCURLNM - получение номера текущей строки (CURLINE) любого файла в кольце файлов, редактируемых XEDIT.

XFLSIZE - получение размера любого редактируемого файла.

XINSERT - вставка записей в редактируемый файл.

XLINE - доступ к записям редактируемого файла.

Подкоманда XSTATE - проверка наличия файлов в памяти текстового редактора.

13. Сообщения об ошибках.