compile_et -
エラー表のコンパイラー
compile_et file
compile_et
は、エラーコードの名前と対応するメッセージをリストした表を、
com_err(3)
ライブラリで扱いやすい
C
ソース形式に変換する。
ソースファイルの名前は
``.et''
という拡張子で終わっている必要がある。
ファイルの先頭で、まずエラーコード表の名前
(名前は 4 文字まで)。
を与える宣言を行う。
続いて、エントリを次の形式で与える
(256 エントリまで)。
そして最後に表の末尾を
によって示す。
表の名前は、サブルーチンの名前をつくるときに
initialize_XXXX_error_table
の様に用いられる。
com_err
ライブラリにこのエラー表を認識させるには、
このサブルーチンを呼び出す必要がある。
各種エラーコードの定義は、ひとつずつ増える数値に割り当てられる
(先頭の数値は、表の名前をハッシュ関数に与えて計算された値になる)。
したがって互換性を保つためには、
新しいコードの追加は既存の表の末尾に行い、
表からコードの削除を行わないことである。
表で定義されている名前は、
C
のヘッダファイルにおいて、
それらの名前を 32
ビットまでの整数定数として定義する
プリプロセッサ指定になる。
C
ソースファイルも生成されるので、これをコンパイルして、
エラーコードを参照するオブジェクトファイルにリンクする。
C
ソースファイルには、メッセージのテキストと初期化サブルーチンとが含まれる。
C
のヘッダファイル・ソースファイル両者の名前は、
オリジナルのソースファイルの名前の
``.et'' 拡張子を、
それぞれ ``.h'', ``.c''
に置き換えたものになる。
ソースファイル中の ``#''
はコメント文字として扱われ、
その行の末尾までの残りのテキストは無視される。
オリジナルの
compile_et は
yacc(1)
を用いた非常に簡単なパーサーを使っていたし、
現在のバージョンの
compile_et は awk と sed
スクリプトを組み合わせて用いているので、
エラーリカバリは望ましい水準からはほど遠い。
com_err (3)
Ken Raeburn, "A Common Error Description Library for UNIX".