本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 1 : ユーザーコマンド (A~M) > m

m4(1)

HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

m4 ― マクロプロセッサー

構文

m4 [options] [file ...]

説明

m4 は、Ratfor、C、および他の言語のフロントエンドとして意図されたマクロプロセッサーです。 引き数ファイルはそれぞれ順番に処理されます。 ファイルがない場合、またはファイル名が - である場合、標準入力から読み込まれます。 処理されたテキストは、標準出力に書き出されます。

オプション

m4 は以下のオプションを認識します。

-e 

対話的に動作します。 割り込みは無視され、出力はバッファーリングされません。 このモードは上級者向きと言えます。

-s 

C プリプロセッサー (#line ...) に対して行 sync 出力を許可します。

-Bint 

プッシュバックおよび引き数収集バッファのサイズをデフォルトの 4,096 から変更します。

-Hint 

シンボルテーブル ハッシュ配列のサイズをデフォルトの 199 から変更します。 サイズは素数となるようにしてください。

-Sint 

呼び出しスタックのサイズをデフォルトの 100 スロットから変更します。 マクロは 3 つのスロットをとり、非マクロの引き数は 1 つのスロットをとります。

-Tint 

トークンバッファのサイズをデフォルトの 512 バイトから変更します。

有効にするには、任意のファイル名の前、および任意の -D または -U オプションの前に、上記のオプションがなければなりません。

-Dname[=val] 

val がない場合、 nameval またはヌルに定義します。

-Uname 

name を定義しません。

マクロ呼び出し

マクロ呼び出しの形式は以下の通りです。

name(arg1arg2, ... ,argn) 

( はマクロの名前のすぐ後に続かなければなりません。 定義したマクロの名前に ( が続いていない場合、そのマクロを引き数なしで呼び出したと解釈されます。 潜在的なマクロ名は、アルファベットの英字、数字、およびアンダースコア (_) で構成されます。ただし、最初の文字は数字ではありません。

先行する引用符のない空白、タブ、および改行は引き数を取得する際に無視されます。 左および右一重引用符 (`') は、文字列を引用符で囲むのに使用します。 引用符で囲まれた文字列の値は、引用符を外した文字列です。

マクロ名が認識されると、その引き数は対応する右かっこを検索することによって取得されます。 マクロ定義で与えた引き数より少ない引き数を与えると、後続の引き数はヌルであると解釈されます。 マクロの評価は、引き数の取得の際正常に進み、偶然ネストした呼び出しの値の内部に現れるコンマまたは右小かっこは、元の入力テキストのものと同様に有効です。 引き数取得の後で、マクロの値は入力ストリームにプッシュバックされ、再スキャンされます。

組込みマクロ名

m4 により以下の組込みマクロが利用可能になります。 それらは再定義できますが、一度これが行われると、元の意味は失われます。 特に指定されない限り、それらの値はヌルです。

changecom 

デフォルトの # および改行から、左および右コメントマーカを変更します。 引き数なしで、コメントメカニズムは実際上、使用不可能になります。 1 つの引き数により、左マーカは引き数になり、右マーカは改行になります。 2 つの引き数により、両方のマーカが影響を受けます。 コメントマーカの長さは、最大 5 文字までが可能です。

changequote 

引用シンボルを最初のおよび 2 番目の引き数に変更します。 シンボルの長さは、最大 5 文字までが可能です。 引き数なしの changequote は、元の値 (つまり、 `') に戻します。

decr 

その引き数から 1 を引いた値を戻します。

define 

2 番目の引き数は、名前が最初の引き数であるマクロの値としてインストールされます。 n が数字である置換テキストにおける $n の各出現例は、 n 番目の引き数で置き換えられます。 引き数 0 はマクロの名前です。 欠落する引き数は、ヌル文字列で置き換えられます。 $# は引き数の番号で置き換えられます。 $* はコンマで区切られるすべての引き数のリストで置き換えられます。 $@$* と等価ですが、それぞれの引き数は (現在の引用符によって) 引用符で囲みます。

defn 

(単一または複数の) その引き数の引用符で囲まれた定義を戻します。 マクロ、特に内蔵マクロの名称変更に便利です。

divert 

m4 は、0〜9 の番号がついた 10 個の出力ストリームを保守します。 最終的な出力は、ストリームが番号順に連結されたもので、最初のストリームは番号 0 のストリームです。 divert マクロは、現在の出力ストリームを、その (数字列) 引き数に変更します。 0 から 9 以外のストリームに分岐した出力は、廃棄されます。

divnum 

現在の出力ストリームの値を戻します。

dnl 

次の改行までの文字および次の改行を含む文字を読み込み、廃棄します。

dumpdef 

指定した項目、または引き数を与えなければすべての項目に関して、現在の名前および定義をプリントします。

errprint 

診断出力ファイルにその引き数をプリントします。

eval 

32 ビット演算を使って、算術式としてその引き数を評価します。 演算子は +, -, *, /, %, ** (指数), ビットごとの&, |, ^, ~, 関係演算子、およびかっこを含みます。8 進数および 16 進数が、C において指定できるのと同じように指定できます。第 2 引き数は、結果として基数を指定します。 デフォルトは 10 です。 第 3 の引き数を使用して、結果の最小桁数を指定できます。

hpux 

ヌル値のある定義済みオブジェクトです。

ifdef 

最初の引き数を定義する場合、値は第 2 引き数です。 そうでなければ第 3 引き数です。 第 3 の引き数がない場合、値はヌルです。 ワード unixm4 の HP-UX システムバージョン上で事前定義されます。

ifelse 

3 つ以上の引き数があります。 最初の引き数が第 2 引き数と同じ文字列である場合、値は第 3 の引き数です。 そうでない場合および 4 つ以上の引き数がある場合、プロセスが引き数 4、5、6、および 7 で繰り返されます。 そうでなければ、値は第 4 の文字列かまたはそれが存在しなければヌルです。

include 

引き数で指定したファイルの内容を戻します。

incr 

引き数に 1 を足した値を戻します。 引き数の値は、初期数字列を 10 進数と解釈することによって計算されます。

index 

第 2 引き数が始まる (0 原点) その最初の引き数の位置、または第 2 引き数がなければ-1 を戻します。

len 

その引き数の文字数を戻します。

m4exit 

m4 を即座に終了します。 引き数 1 を与えた場合、引き数 1 が exit コードです。デフォルトは 0 です。

m4wrap 

引き数 1 は最後の EOF で戻されます。 例: m4wrap(`cleanup()')

maketemp 

現在のプロセス ID を、その引き数の XXXXX の文字列に記入します。

popdef 

(単一または複数の) その引き数の現在の定義を削除し、もしあれば前の定義を廃棄します。

pushdef 

define に類似していますが、任意の前の定義をセーブします。

shift 

その最初の引き数を除くすべての引き数を戻します。 他の引き数は引用符で囲み、間にカンマを入れて戻されます。 引用符で囲むと、続いて行われる追加スキャンの効果を無効にします。

sinclude 

ファイルがアクセス不能である場合に、何も通知しない場合を除いて、 include と同一です。

substr 

その最初の引き数の部分文字列を戻します。 第 2 引き数は、最初の文字を選択する 0 原点の数です。 第 3 引き数は、部分文字列の長さを示します。 第 3 の引き数がない場合、最初の文字列の終端に達するぐらい十分大きいと解釈されます。

syscmd 

最初の引き数で指定する HP-UX システムコマンドを実行します。 値は戻されません。

sysval 

syscmd への最後の呼び出しからのリターンコードです。

traceoff 

グローバルに、指定したマクロに対するトレースをオフにします。 traceon によって特にトレースするマクロは、 traceoff への特定の呼び出しによってのみトレースされないようにすることができます。

traceon 

引き数なしで、すべてのマクロのトレースをオンにします (組込みマクロを含む)。 そうでなければ、指定マクロのトレースをオンにします。

translit 

第 2 引き数で指定したセットから第 3 引き数で指定したセットへ、最初の引き数の文字を翻訳します。省略形は許されません。

undefine 

引き数で指定したマクロの定義を削除します。

undivert 

引き数として指定した分岐出力から、または引き数がなければすべての分岐出力からテキストを即座に出力します。 テキストは別の分岐出力に分岐させないことができます。 分岐解除は分岐したテキストを廃棄します。

(XPG4 の場合のみ) decr, divert, incr, m4exit, substr, undivert, および eval の組み込みマクロに、数値以外の文字を含む引き数を指定するとエラーになります。

参照

cc(1), cpp(1), ratfor(1)

標準準拠

m4: SVID2, SVID3, XPG2, XPG3, XPG4

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2004 Hewlett-Packard Development Company, L.P.