我會提出這個解決方案,雖然我不能保證它不包含引用錯誤。
define(`UL',`<ul>IT([email protected])<\ul>')dnl
define(`LI',`ifelse(`$1',`', `', `<li>`$1'<\li>')')dnl
define(`IT',`ifelse(`$#', `0',, `$#', `1',`LI(`$1')',
`LI(`$1')IT(shift([email protected]))')')dnl
dnl
UL(foo,bar,baz)
UL(`UL',`LI',`IT')
UL(``UL'',``LI'',``IT'')
對於後人,這是我原來的解決方案,這當然不包括引用錯誤:
define(`UL',`<ul>IT([email protected])<\ul>')dnl
define(`LI',`ifelse(`$1',`', `', `<li>$1<\li>')')dnl
define(`IT',`ifelse(`$#', `0',, `$#', `1',`LI(`$1')',
`LI(`$1')IT(shift($*))')')dnl
dnl
UL(foo,bar,baz)
UL(`UL',`LI',`IT')
UL(``UL'',``LI'',``IT'')
在第一解決方案中,UL
最終調用是不正是我期望的,但我m如此不確定的m4引用規則,我真的不知道會發生什麼,所以我懷疑是引用錯誤。幫助讚賞。
太棒了!關於這裏發生的事情的任何提示?謝謝一堆! – rebnoob
'UL'在參數列表的周圍放置'
'標籤,''LI'放置''標籤圍繞其參數,'IT'遍歷列表。 –