如何在M4中嵌套宏定义?

时间:2012-11-29 08:42:08

标签: macros m4

我想定义一个可以定义更多宏的宏:

define(`master_macro',
`foreachq(`slave_macro', `$*',
define(`slave_macro', ...)'

然后我可以使用master_macro将更多类似的slave_macro定义为:

master_macro(m1, m2, m3, ...)

我需要这个的原因是当我编写M4宏时,slave_macro的数量和名称是未知的。

1 个答案:

答案 0 :(得分:0)

你所要求的当然可以做到。这是一个例子:

$ cat file
changequote(`[',`]')dnl
define([factory],[dnl
define($1,banana)dnl
define($2,split)dnl
])dnl
factory(hello,world)dnl
hello world
$ m4 file
banana split

我认为问题在于你使用未定义的宏foreachq