通用预处理器:如何用于任何类型的文件?

时间:2010-08-16 11:08:57

标签: preprocessor m4

我想知道是否有人使用通用预处理器来处理文本文件。

这个想法出现了,因为Java没有预处理器,但我想要条件代码编译等。

现在,进一步考虑这个想法,我不妨对需要频繁编辑的任何类型的文件使用通用预处理器,但所有编辑方式都类似。

现在,我想使用C <预处理器并且有 GPP ,但有一个很好的' m4 ,于2007年停止开发。

我想要一些预处理器更好的建议,如果可能的话,它应该采用与C预处理器相同的方式#define SOMETHING

由于m4不使用sigils或其他东西,它可能会与其他代码冲突,当m4是要走的路时,我需要建议如何为每个指令添加一个sigil或不同的前缀或其他东西。< / p>

2 个答案:

答案 0 :(得分:1)

大多数C / C ++编译器允许您只运行预处理器并保存输出,并可用于通用输入。 (对于Visual C ++,我看来选项是/ P)

但请记住,预处理器会导致尽可能多的问题。 C ++和Java的设计者都在努力消除使用预处理器的需要。例如,在Java中,代码如下:

if (true)
     CallThis();
else
     DoNotCallThis();

只会生成CallThis()调用的代码,而不会生成条件或else分支的代码。 (这不是实现问题的质量 - 它是Java语言定义的要求)。

答案 1 :(得分:0)

对于'sigil',使用m4的命令行选项-P将前缀m4_添加到所有内置m4宏。然后,您有m4_definem4_divert