次: , 前: Pushdef, 上: Definitions


4.7 マクロの間接的な呼び出し

indirを使うと、どんなマクロでも間接的に呼び出すことができます。

     indir(name, ...)

indirはマクロnameを残りの引数と共に呼び出します。 これを“不正な”名前を持つマクロを呼ぶのに使うことができます(define はそういう名前でも定義できます。)

     define(`$$internal$macro', `Internal macro (name `$0')')
     =>
     $$internal$macro
     =>$$internal$macro
     indir(`$$internal$macro')
     =>Internal macro (name $$internal$macro)

ここでの要点は、大きなマクロパッケージで、 間違って呼ばれてしまうことのないマクロを定義できるということです。 それらは組み込みマクロindirによってだけ呼びだすことができます。