我想定义一个可以定义更多宏的宏:
define(`master_macro',
`foreachq(`slave_macro', `$*',
define(`slave_macro', ...)'
然后我可以使用master_macro
将更多类似的slave_macro
定义为:
master_macro(m1, m2, m3, ...)
我需要这个的原因是当我编写M4宏时,slave_macro
的数量和名称是未知的。
答案 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
。