[表紙] [目次] [索引] [検索] [上端 / 下端] [?]

GNU macro processor

このマニュアルをダウンロード

GNU m4はUNIXに古くからあるマクロプロセッサの実装です。 SVR4版とほぼ互換性がありますが、いくつかの機能が拡張がされています (たとえば、9個を超える位置パラメータをマクロで扱うことができます)。 m4にはマクロの展開機能に加え、ファイルのインクルード、 シェルコマンドの実行、計算、その他のための関数も組み込まれています。 Autoconfで`configure'スクリプトを生成するにはGNU m4が 必要ですが、そのスクリプトを実行するときには必要ありません。

René SeindalがGNU m4を最初に書きました。 続いて、Franc,ois Pinardやその他のインターネット上のボランティアたちが 変更を行ないました。これらの人たちの氏名および電子メールアドレスは、 GNU m4の配布用アーカイブファイルに含まれている`THANKS'ファイルに すべて記載されています。

本GNU m4はリリース1.4です。 現在すでに安定していることを考えると、 今後のリリースではバグの修正や速度の向上、ドキュメントの改善だけを するべきでしょう。しかし...

m4の実用性をさらに増す思われる、試験的なある機能(see 節 7.4 単語(word)の字句構造を変更する) を使うと、m4において何が単語(word)として 認識されるかを決めている規則を変更できるようになります。 この機能を試してみたい人は、

 
./configure --enable-changeword
としてコンパイル時にこの機能が組み込まれるようにしてください。 現在の実装ではm4の動作がかなり遅くなってしまうので、 これをそのまま採用するには抵抗があります。 したがって将来この機能が削除されるということも考えられるので、 まだこの機能に依存した使い方はしないでください。

1. 序論   
2. 字句・構文解析の規則   

3. マクロを呼び出す方法   
4. 新たにマクロを定義する方法   
5. 条件分岐、ループ、再帰   

6. マクロや入力をデバッグする方法   

7. 入力制御   
8. ファイルのインクルード   
9. 出力の切替え(divert)と逆切替え(undivert)   

10. テキスト操作用の組み込みマクロ   
11. 計算用の組み込みマクロ   
12. UNIXコマンド実行用の組み込みマクロ   
13. その他の組み込みマクロ   
14. 凍結状態(frozen state)の高速ロード   

15. 他の版のm4との互換性    他の版のm4との互換性
Concept index    さまざまな概念の索引
Macro index    m4マクロすべての索引

 -- The Detailed Node Listing ---

序論

1.1 m4序説   
1.2 m4の由来   

1.3 m4の起動(オプション一覧)   
1.4 問題やバグへの対処方法   
1.5 このマニュアルの読み方   

字句・構文解析の規則

2.1 入力トークン: マクロ名   
2.2 入力トークン: クォートされた文字列   
2.3 入力トークン: その他   
2.4 コメント    m4への入力中のコメント

マクロを呼び出す方法

3.1 マクロの呼び出し   
3.2 マクロの呼び出しを抑制する   
3.3 マクロの引数   
3.4 マクロの引数をクォートする   
3.5 マクロの展開   

新たにマクロを定義する方法

4.1 マクロの定義方法   
4.2 マクロの引数   
4.3 マクロの特殊な引数   
4.4 マクロの削除   
4.5 マクロ名の変更   
4.6 マクロの一時的な再定義   

4.7 マクロの間接的な呼び出し   
4.8 組み込みマクロの間接的な呼び出し   

条件分岐、ループ、再帰

5.1 マクロが定義済みかを判定する   
5.2 文字列の比較    If-else 構文と多重分岐
5.3 ループと再帰    m4におけるループと再帰

マクロや入力をデバッグする方法

6.1 マクロの定義を表示する   
6.2 マクロの呼び出しをトレースする   
6.3 デバッグ出力の制御   
6.4 デバッグ出力の保存   

入力制御

7.1 入力中の空白(whitespace)を削除する   
7.2 引用符(quote characters)を変更する   
7.3 コメントデリミタ(comment delimiters)を変更する   
7.4 単語(word)の字句構造を変更する   
7.5 入力の保存(save)   

ファイルのインクルード

8.1 名前を指定してファイルをインクルードする   
8.2 インクルードするファイルのサーチ   

出力の切替え(divert)と逆切替え(undivert)

9.1 出力を切替える(divert)   
9.2 出力を逆切替え(undivert)する   
9.3 出力切替え先番号(diversion number)   
9.4 出力切替え先のテキストを破棄する   

テキスト操作用の組み込みマクロ

10.1 文字列の長さを計算する   
10.2 部分文字列を検索する   
10.3 正規表現で検索する   
10.4 部分文字列を抽出する   
10.5 文字の置換   
10.6 正規表現でテキストの置換をする   
10.7 書式付き出力    文字列を(printf風に)フォーマットする

計算用の組み込みマクロ

11.1 インクリメント演算子とデクリメント演算子   
11.2 整数式を計算する   

UNIXコマンド実行用の組み込みマクロ

12.1 単一のコマンドを実行する   
12.2 コマンドの出力を読む   
12.3 終了コード   
12.4 一時ファイル用の名前を生成   

その他の組み込みマクロ

13.1 エラーメッセージを表示する   
13.2 m4を終了させる    m4を終了させる

他の版のm4との互換性

15.1 GNU m4で拡張された機能    GNU m4で拡張された機能
15.2 System V m4 にあってGNU m4にない機能    System V m4にあってGNU m4にない機能
15.3 その他の非互換性