Tuesday, August 19, 2008

m4的一个例子

m4是一个general purpose macro processor
m4 stands for macro.

一个例子:

test.m4:
define(`H2_COUNT', 0)dnl
define(`H2', `define(`H2_COUNT', incr(H2_COUNT))'dnl
`<h2>H2_COUNT. $1</h2>')dnl
dnl
H2(First Section)
H2(Second Section)
H2(Conclusion)


使用 (GNU) m4 处理后,得到:
<h2>1. First Section</h2>
<h2>2. Second Section</h2>
<h2>3. Conclusion</h2>

很容易学习这种语言。

其中dnl的作用是删除到目前为止的空行,因为m4处理时会把define删除,从而得到一个空行。

No comments: