如何使用 m4 为每一行添加前缀

How to add a prefix to each line with m4

我用 m4 处理程序文件(实际上是汇编程序)。 我可以使用

抑制线条
changequote({,})dnl
define({_SUPPRESSED}, )dnl
_SUPPRESSED({
jan
piet
})

现在我想将行更改为汇编程序注释,而不仅仅是 压制他们:

; jan
; piet

m4 可以吗?使用 patsubst? 怎么做到的?

注意: 尽管做了很多实验,但我没有成功。例如。以下失败。

define({pie}, {patsubst(,{\n},{\n;})})
define(`pie',`patsubst(`',`^.*$',`; &')')
pie(`jan
piet')

注意 patsubst 周围的字符串分隔符(在 pie 的定义中)!如果没有它,m4 会在读取(而不是使用)pie 的定义时扩展 patsubst。使用分隔符它将是一个字符串,并且仅在调用 pie 宏时展开。

当然,您可以使用 {} 作为字符串分隔符。