Как вложить определения макросов в M4?
Я хотел бы определить макрос, который может определить больше макросов как:
define(`master_macro',
`foreachq(`slave_macro', `$*',
define(`slave_macro', ...)'
тогда я могу использовать master_macro
определить больше похожих slave_macro
s как:
master_macro(m1, m2, m3, ...)
Причина, почему я нуждаюсь в этом, состоит в том, что число и имена slave_macro
неизвестно, когда я пишу макросы M4.
1 ответ
То, что вы просите, безусловно, может быть сделано. Вот пример:
$ 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
,