Сводный справочник по 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. Сообщения об ошибках.