我想要类似下面的 gperf 输入文件:
%{
#include <keywords.h>
// the contents of which contain
// #define KEYWORD1_MACRO "keyword1"
// #define KEYWORD2_MACRO "keyword2"
%}
%%
KEYWORD1_MACRO
KEYWORD2_MACRO
%%
不幸的是,gperf 会将这些解释为“KEYWORD1_MACRO”等。
这样做的原因是我有另一方提供的协议规范作为头文件,其中包含这样#define
的 s. 所以我无法控制它们是如何定义的,我宁愿不必将另一个预处理工具写入#include
标头并将宏的扩展输出为带引号的字符串,然后才用作 gperf 输入文件。