Учитывая файл «правил» и «входной» файл, я хотел бы обработать входной файл с помощью m4, используя правила, определенные в файле правил.
Так, например, если файл правил содержит
define(FOO, BAR)dnl
и текстовый файл содержит
FOO FOO define(FOO,BAZ) BAR
я хотел бы получить
BAR BAR define(BAR,BAZ) BAR
вместо ожидаемого
BAR BAR BAZ
Я хотел бы использовать файл для определения макросов и обрабатывать другой файл, пропуская любые новые определения или изменения в поведении m4. Макросы должны быть просто расширены, а не изменены.
В основном это связано с тем, что в текстовом файле может быть некоторый текст, который выглядит как код M4, но это не так, и я должен его игнорировать.
Или, с другой точки зрения, мне нужно что-то вроде поиска и замены, но с возможностью определения «сложных» макросов с аргументами.
Это возможно?