воскресенье, 3 апреля 2016 г.

Вырабатываем командный голос или zz-команды в Cache

Cache позволяет создавать пользовательские команды, получившие название zz-команды. Пользовательская команда - это команда, написанная пользователем и использующаяся интерпретатором Cache наравне с другими командами.

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



Для того, чтобы определить пользовательскую команду, следует придумать ее:
  1. имя
  2. прототип
Текст команды на M должен быть размещен в одной из рутин %ZLANGC00 - %ZLANGC08 по выбору пользователя. В выбранной рутине следует создать метку с выбранным именем команды. Например, создадим команду zzj, которая будет показывать список процессов и их активность. Тогда рутина %ZLANGC00.INT примет вид:

LANGZDEF ;Placeholder for customer written 'Z' language extensions
 ; Compiled July 18, 2000 20:43:58
 ; Used during installation if the corresponding %ZLANG* routine
 ; does not exist so we get  errors instead of 
 ; errors for illegal Zcommands, Zfunctions, etc...
 q
ZZJ     
 n ns s ns=$znspace
 zn "%SYS"
 d ^JOBEXAM
 zn ns
 q

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

USER>zzj

Для того, чтобы команда могла принимать значения аргументов, нужно метке в тексте определения команды добавить аргументы. При вызове команды скобки с аргументами указывать не нужно. Например, определим команду zzn с аргументом имя области для смены области.

ZZN(nspace)
   i $zcvt(nspace,"U")=$znspace w "???",!
   e  zn nspace
   q

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

Таким образом, можно обустроить свое рабочее место, составив набор команд и внеся в них часто употребимые действия. 

Комментариев нет:

Отправить комментарий