[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
この章では、これまでのどの章にも分類できない様々な組み込みマクロを説明します。
13.1 エラーメッセージを表示する | ||
13.2 m4 を終了させる | m4を終了させる |
エラーメッセージはerrprint
を使って表示することができます。
errprint(message, ...) |
このマクロが行うのはmessageと残りの引数を標準エラー出力に表示する ことだけです。
errprint
は展開されると消滅します。
errprint(`Illegal arguments to forloop ') error-->Illegal arguments to forloop ⇒ |
末尾の改行は自動的に印字されません。したがって例にあるように
引数の一部として与えなければなりません。
(BSDフレーバーのm4
はerrprint
呼び出しごとに改行を1つ末尾に
付加します。)
エラーの場所を特定するためには、組み込みユーティリティマクロが2つ用意 されています。
__file__ __line__ |
これらは現在の入力ファイルの名前をクォートしたものと そのファイル内での現在の入力行番号に展開されます。
errprint(`m4:'__file__:__line__: `Input error ') error-->m4:56.errprint:2: Input error ⇒ |
m4
を終了させる すべての入力を読み込んでしまう前にm4
を終了したいときは
m4exit
を使うことができます。
m4exit(opt code) |
このマクロはcodeを終了コード(exit code)としてm4
を終了させます。
codeを省略したときは終了コードは0になります。
define(`fatal_error', `errprint(`m4: '__file__: __line__`: fatal error: $* ')m4exit(1)') ⇒ fatal_error(`This is a BAD one, buster') error-->m4: 57.m4exit: 5: fatal error: This is a BAD one, buster |
この例ではfatal_errorマクロが呼び出された後、m4
は終了コード1で
終了します。このマクロはエラー終了だけを行うためのものです、なぜなら通常の
終了手続き、例えば出力切替え先のテキスト(diverted text)の逆切替え
(undivert)や保存されているテキスト(see section 入力の保存(save))の再読み込みなどが
行われないからです。
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Akihiro Sagawa on June, 15 2005 using texi2html 1.70.