m4 раскрыть макрос внутри слов

Я очень новичок в m4, но не могу найти эту простую вещь:

Можно ли раскрыть макрос в середине слова? (Я бы использовал его для счетчика, который будет использоваться в имени символа C в низкоуровневом коде)

Я имею в виду как:

define(`foo',`bar')
Happy fooday!

Ожидаемый результат будет следующим:

Happy barday!

Это даже нормально сделать так:

Happy expand(foo)day!

Извините, если это очень простой вопрос, но мои попытки поиска в Google не увенчались успехом в «расширении макроса m4 в слове, расширении подстроки m4» и т. д.

Спасибо

ИЗМЕНИТЬ 1:

StackOverflow рекомендовал это: Расширение макроса не работает в M4 ... именно это я и искал.

ИЗМЕНИТЬ 2:

Хорошо, это не так просто:

define(`foo',`bar')
Happy asdfoo()day!

Это не удается, что может быть нормальным. Однако в моих именах символов C я должен заменять эти макросы в середине слов. Каков был бы путь для этого?


person dennis90    schedule 13.02.2013    source источник


Ответы (1)


Я считаю, что вы ищете:

define(`foo',`bar')
Happy `'foo`'day!

То есть используйте кавычки m4 для обозначения границы слова. Или, точнее, используйте пустую строку по обе стороны от слова, которое вы хотите расширить, и укажите границы этой пустой строки в кавычках.

person William Pursell    schedule 28.02.2013