M4(1) FreeBSD 一般コマンドマニュアル M4(1)
名称
m4 − マクロ言語プロセッサ |
書式
m4 [−d flags] [−t name] [−gs] [−D name[=value]] [−U name] [−I dirname] [file ...] |
解説 |
m4 ユーティリティは、さまざまな言語 (たとえば C, ratfor, fortran, lex, yacc など) のフロントエンドとして利用できるマクロプロセッサです。 m4 ユー ティリティは、標準入力から読み込みます。また、処理結果のテキストを標準出 力へ書き出します。 マクロの呼び出しは name(argument1[, argument2, ..., argumentN]) の形式を 取っています。 マクロ名とそれに続く開き括弧 (‘(’) との間にはスペースがあってはいけませ ん。もしマクロ名の直後に開き括弧が続いていなければ引数なしのマクロ呼び出 しとして処理されます。 マクロ名として先頭はアルファベットまたはアンダスコアが、2 文字目以降は英 数字またはアンダスコアが使えます。よって正しいマクロ名にマッチする正規表 現は ‘‘[a-zA-Z_][a-zA-Z0-9_]*’’ となります。 マクロの引数のうちで、先頭のクォートされていない空白、タブ、改行文字 (‘\n’) は無視されます。文字列をクォートするためには、左、および右シングル クォートを使用してください (例: ‘ this is a string with a leading space’) 。組み込みマクロ changequote を使ってクォート文字を変更することができま す。 大抵の組み込みマクロは、引数がないと意味をなしませんので、開き括弧が後に 続かない場合、特別のものとして認識されません。 オプションは以下の通りです: |
−s
cpp(1) 用に、 #line ディレクティブを出力します。 −D name[=value] −U name −I dirname −d flags a デフォルトでは、トレースは eq にセットしています。 −t macro −g 文法 |
m4 ユーティリティには以下に示す組み込みマクロが実装されています。これらの マクロは再定義可能であり、その場合には元の定義は失われます。特に記述のな い限り戻り値は NULL です。 |
builtin
指定した組み込みマクロを呼び出します。名前が再定義されていた としても名前の持つ本来の機能を呼び出します。 changecom changequote decr define defn divert divnum dnl dumpdef errprint esyscmd eval expr ifdef ifelse include incr index indir len m4exit m4wrap maketemp paste patsubst popdef pushdef regexp shift sinclude spaste substr syscmd sysval traceon traceoff translit undefine undivert unix __line__ __file__ 診断 |
ユーティリティ m4 は、成功すると 0 で、エラーがあった場合は >0 で終了しま す。 入力ファイルから終了状態を変更するために、 m4exit マクロを使用することが できます。 |
互換性
m4 ユーティリティは、GNU-m4 から加えられた少々の拡張に加えて、 Version 2 of the Single UNIX Specification (‘‘SUSv2’’) に追従しています。フラグ −I, −d, −t は非標準です。 トレースと dumpdef の出力フォーマットは、どの標準でも規定されていませんの で変更される可能性があります。これらに依存するべきではありません。現在の トレース出力フォーマットは、 autoconf が機能できるよう GNU-m4 に基づいて 厳密に作成されています。 移植性のためには、 builtin, esyscmd, expr, indir, paste, patsubst, regexp, spaste, unix, __line__, および __file__ のマクロは、使用しないほ うがよいです。 他の多くの m4 の実装では、すべての組み込みマクロは引数なしでも展開されま す。 他の多くの m4 の実装は、バッファサイズに関して、きびしい制限があります。 |
規格
m4 ユーティリティは IEEE Std 1003.1-2001 (‘‘POSIX.1’’) に適合します。 |
歴史
m4 コマンドは、PWB UNIX から登場しました。 |
作者
Ozan Yigit 〈oz@sis.yorku.ca〉 および Richard A.
O’Keefe 〈ok@goanna.cs.rmit.OZ.AU〉. |
バグ
m4 ユーティリティは、マルチバイト文字を認識しません。 FreeBSD 10.0 July 3, 2004 FreeBSD 10.0 |