VGRIND(1)

名称
vgrind - プログラムのソースを troff を用いて清書する

書式
vgrind [-] [-W] [-d file] [-f] [-h header] [-l language] [-n] [-sn] [-t] [-x] name ...

解説
vgrind は、プログラムのソースを troff(1) を使って清書します。コメントはイタリック体で、キーワードはボールド体で、 現在印刷中の関数名は、各ページの余白部分に列挙されます。

vgrind には 2 つの基本的なモード、フィルタモード (-f オプションの項を参照) と標準モードがあります。フィルタモードでは、 vgrind は tbl(1) と同様に振る舞います。すなわち、以下の troff ライク なマクロに囲まれた部分以外は素通しします。

.vS 処理領域開始

.vE 処理領域終了

vgrind からの出力を troff に渡すことにより印刷することができます。 eqn(1) 、 tbl(1) により の入出力を処理させることもできます。

通常モードでは、 vgrind は入力ファイル全体を処理し、 troff(1) を起動して出力処理を行わせます。

どちらのモードでも、 vgrind はピリオドで開始する行は変更せずに出力します。

オプションは以下のとおりです。

-   標準入力から読み込みます (-f オプションが指定された場合はデフォルトです)。

-d file
    プログラミング言語定義ファイルを指定します (デフォルトでは /usr/share/misc/vgrindefs を使用します)。

-f  フィルタモードで動作します。

-h header
    各ページのヘッダ文字列を指定します (デフォルトは入力ファイル名です)。

-l  入力ファイルのプログラミング言語を指定します。現在使用可能なものは 以下のとおりです: PASCAL (-lp), MODEL (-lm), C (-lc もしくはデフォルト), CSH (-lcsh), SHELL (-lsh), RATFOR (-lr), MODULA2 (-lmod2), YACC (-lyacc), LISP (-lisp), ICON (-lI) 。

-n  キーワードのボールド化を行いません。

-s  出力文字のポイントサイズを指定します (troff の .ps と同じ引数です)。

-t  フォーマット後、標準出力に書き出します。

-x  インデックスファイルを清書します。 vgrind は、カレ ントディレクトリに index という名前のファイルがあればつねにインデックスを出力します。 このインデックスファイルは vgrind に -x オプションとともに指定することで、清書することができます。

関連ファイル
index
    インデックスファイル
/usr/share/tmac/tmac.vgrind
    マクロパッケージ
/usr/libexec/vfontedpr
    プリプロセッサ
/usr/share/misc/vgrindefs
    言語記述ファイル

関連項目
lpr(1), troff(1), vgrindefs(5)

バグ
vgrind は、以下のプログラミングスタイルを仮定しています:

C 言語 - 関数名は、空白またはアスタリスクのみからなる行の直後にあり、 括弧でくくられた引数リストが同じ行にある。

PASCAL - 関数名は、キーワード function または procedure と同じ行にある。

MODEL - 関数名は、キーワード beginproc と同じ行にある。

もし以上に従っていない場合、インデックスと余白への関数名印刷が不正確な ものになります。

その他、いくつかのプログラミングスタイルはきれいに清書されません: ブランクによってソースコードの先頭などを揃えた場合、 正しくフォーマットされません。 vgrind を使って清書する場合は、タブによってソースコードを揃えるようにします。これは vgrind が可変幅フォントを使用するからです。

vgrind は、 ctags(1) が関数を検出する方式を採用すべきです。

フィルタモードは -me または -ms マクロを用いたドキュメントで、正しく動作しません。

歴史
vgrind は 3.0BSD で追加されました。