包含用户定义的宏失败

包含用户定义的宏失败

我正在尝试使用gpp(通用预处理器)在 之前和之后添加一些附加信息#include。代码如下:

\define{\code{filename}}{PRE \include{\filename} POST} ==> \code{./t.txt} <==

输出结果如下:

$ gpp -T t.mkd -o t.out t.mkd:2: error: Requested include file not found

\filename我认为引用存在问题,\include因为\filename只会被评估一次,\code而元宏将在定义时存储它们的参数(如果我理解正确的话)。

我尝试了很多不同的东西,虽然这显然是一个 RTFM 类型的问题,但我对该工具的预期用途太有限,不值得花费大量时间学习该工具(而不仅仅是尝试另一个预处理器和另一个预处理器,直到一个工作得足够好 - 我开始用 gpp 测试,因为如果我们以后需要更多的话,它似乎很有能力)。

附言:抱歉,没有相关标签。我的声誉不够,无法创建标签,唯一弹出的标签是macro

答案1

您可能会在堆栈溢出比超级用户要好。

但与此同时,考虑到最新版本的通用进程于 2004 年发布,可能很难找到具备这方面的专业知识的人来帮助你。如果使用其他预处理器是一种选择,我建议米4,其 GNU 版本定期更新并被广泛使用——尤其是作为 GNUautoconf软件的一部分。在m4等效代码中(在文件中t.m4)将是:

define(`code',`PRE include(`$1') POST')dnl
code(`./t.txt')

给定一个文件,t.txt内容如下:

This is the content of the file t.txt.

...该命令m4 t.m4产生:

PRE This is the content of the file t.txt.
 POST

相关内容