Автоматическое отображение параметров и определений для макрофункций в SAS EG - PullRequest
0 голосов
/ 30 мая 2018

В SAS EG есть удобная функция, которая позволяет видеть параметры макро-функции и ее определения при наборе.

Например, если я выполню:

%macro test
(a /* this is a */
,b /* this is b */
);
%put a b;
%mend;

А затем введите %test(, всплывающее окно покажет мне «a: это a» и т. Д.

К сожалению, по какой-то причине он работает только в том случае, если в текущей программе была определена функция макроса (поэтомув основном в единственном месте, где оно вам действительно не нужно, так как в этом случае оно должно быть достаточно свежим в вашем уме).

  • Есть ли способ извлечь выгоду из этой функции вдругие программы и другие потоки процессов?

  • Что еще более важно, как я могу извлечь выгоду из этой функции для моих сохраненных скомпилированных макросов?

Скажите, например,Я определил в другом сеансе:

options mstored sasmstore=mylib;
%macro test2
(c /* this is c */
,d /* this is d */
) / store source des='show c and d';
%put c d;
%mend;

Я полагаю, что обходной путь должен был бы создать макрос %redefine_all, который прошел бы по каталогу и выполнил бы каждое сохраненное определение макроса, но это довольно уродливо, и я неполностью уверен, как япошел бы на это ...

1 Ответ

0 голосов
/ 30 мая 2018

Звучит как «одна из этих вещей».

Справка EG «О редакторе программ» - «Использование функции автозаполнения» гласит:

Редактор программтакже можете прочитать текущую программу и предложить синтаксис для следующих элементов программы:

макропеременные, которые определены с помощью оператора% LET или подпрограммы SYMPUT CALL макропрограммы, которые определены с помощью%Оператор MACRO имена наборов данных, определенные с помощью оператора шага DATA

Примечание. Редактор программ не выводит автоматически переменные макроса и процедуры, которые определены вне текущего документа (например, внешний макроспрограммы,% включают файлы и файлы autoexec).

...