3

私はautoconfコードで、dnlされているものとされていないものについて多く見ています。dnl'edとは何ですか?

4

2 に答える 2

7

GNU M4 1.4.13マクロプロセッサマニュアルから:

8.1入力の空白の削除

ビルトインdnlは「DiscardtoNextLine」の略です。

—組み込み:dnl

次の改行までのすべての文字は、マクロ展開を実行せずに破棄されます。ファイルの終わりが改行なしで検出された場合、警告が発行されます。

の拡張dnlは無効です。

defineの呼び出しに続く改行を削除するために、に関連してよく使用されますdefine。したがって

   define(`foo', `Macro `foo'.')dnl A very simple macro, indeed.
   foo
   ⇒Macro foo.

コメントの処理方法とは対照的に、次の改行までの入力は破棄されます(コメントを参照)。

[...]

于 2009-10-27T19:25:17.970 に答える
2

IIRCはdnlですdo-next-line。現在の行の残りをスキップするだけです。これが、M4ファイルにコメントを書き込む方法です。

dnl preprocessor will eat this
but not this dnl though this

結果ドキュメントが生成されます

but not this

(テストされていません。アイドルプロセスを強制終了したり、ハードディスクをクラッシュさせたりする可能性もあります)。

于 2009-10-27T19:18:27.327 に答える