0

我想对文件进行编译时测试。设置如下。

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 中有一个带有父过程名称的预处理变量,以便在编译时调用不同的行为。

我试过的

/* incl.i */ &SCOPED-DEFINE procName {&FILE-NAME}

这不起作用 {&FILE-NAME} 计算为包含文件的名称。

现在,THIS-PROCEDURE:FILE-NAME 保存过程文件的名称,但在编译时不知道。

有任何想法吗?我不想向包含添加新的输入参数 - 因此更新 proc1.p...proc1000.p。

4

1 回答 1

3

预处理器是通往地狱的道路......但如果你坚持你可以在父过程中创建一个 &GLOBAL-DEFINE。像这样的东西:

/* parent.p
 */

&GLOBAL-DEFINE parentName {&FILE-NAME}

{include.i}


/* include.i
 */

display "{&parentName}".
于 2013-10-11T14:46:07.360 回答