我想对文件进行编译时测试。设置如下。
1. We have procedure files proc1.p, proc2.p, ... proc1000.p.
2. All procedure files proc1.p, proc2.p, ... proc1000.p have a common include file incl.i
我想在incl.i中有pre-process变量,它带有父过程的名称,以便在编译期间调用不同的行为。
我尝试了什么
/ * incl.i * / & SCOPED-DEFINE procName {& FILE-NAME}
这不起作用{& FILE-NAME}评估包含文件的名称。
现在,THIS-PROCEDURE:FILE-NAME保存过程文件的名称,但在编译时不知道。
有什么想法吗?我不想在include中添加新的输入参数 - 从而更新proc1.p ... proc1000.p。
答案 0 :(得分:3)
预处理器是走向地狱的道路......但如果你坚持你可以在父程序中创建一个& GLOBAL-DEFINE。像这样:
/* parent.p
*/
&GLOBAL-DEFINE parentName {&FILE-NAME}
{include.i}
/* include.i
*/
display "{&parentName}".