Python で m4 を使用するための適切な一般的な戦略はありますか? 具体的には、Python の空白要件により、m4 の使用はやや厄介になります。たとえば、次のプログラムです。
def foo():
pushdef(`X',` $1 = $2')
include(test01.def)
popdef(`X')
foo()
test01.def
として_
X(x,1)
X(y,2)
X(z,3)
Python プログラムを生成します。
def foo():
x = 1
y = 2
z = 3
foo()
そのため、インデントはオフです。確かに、これを修正できます
def foo():
pushdef(`X',` $1 = $2')
include(test01.def)
popdef(`X')
foo()
ただし、コード構成のインデントを追跡するのが難しくなるため、編集するファイルが見苦しくなります。本当に、私がやりたいことは、最初のプログラムを使用して、インクルードの前に m4 に先頭の空白を食べさせることです。m4 が先頭の空白を食べることが可能かどうかはわかりません。
さらに、Python 固有のマクロ ユーティリティがあることも認識しています。しかし、私はこれらを使用することに興味がありません。これらの X マクロを C や LaTeX などのさまざまな言語で使用する必要があります。m4 はすぐに利用でき、言語に依存しないため、これらの各ケースで m4 を使用するつもりです。そのため、可能な場合は m4 ソリューションを本当に探しています。