在SAS EG
中,有一个简洁的功能,允许人们在输入时查看宏功能的参数及其定义。
例如,如果我执行:
%macro test
(a /* this is a */
,b /* this is b */
);
%put a b;
%mend;
然后输入%test(
,弹出窗口会显示“a:this is 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
,它将遍历目录并执行每个存储的宏定义,但这非常难看,我不完全确定我是如何去做的。 ..
答案 0 :(得分:2)
听起来像是其中一个'的事情。
EG帮助"关于程序编辑" - "使用自动完成功能"规定:
程序编辑器还可以阅读您当前的程序并进行建议 这些程序元素的语法:
使用%LET语句或SYMPUT CALL例程定义的宏变量 使用%MACRO语句定义的宏例程 使用DATA步骤定义的数据集名称 声明
注意:程序编辑器不会自动列出宏 在当前之外定义的变量和例程 文档(例如,外部宏程序,%include文件和 autoexec文件)。