VGRIND(1) | FreeBSD General Commands Manual | VGRIND(1) |
名称
vgrind — プログラムのソースを清書する書式
vgrind | [ -][ -W][ -d file][ -f][ -h header][ -llanguage][ -n][ -p postproc][ -s pointsize][ -t][ -x] name ... |
解説
vgrind ユーティリティは、コマンドラインの引数として指定されたプログラムソースを troff(1) を使用して良いスタイルに清書します。コメントはイタリック体で、キーワードはボールド体で、現在印刷中の関数名は、各ページの余白部分に列挙されます。vgrind ユーティリティには 2 つの基本的なモード、フィルタモード ( -f オプションの項を参照) と標準モードがあります。フィルタモードでは、 vgrind は tbl(1) と同様に振る舞います。すなわち、以下の troff ライク なマクロに囲まれた部分以外は素通しします。
- .vS
- 処理領域開始
- .vE
- 処理領域終了
マクロに囲まれた行は既に示したように清書されます。これからの出力を troff(1) に渡すことにより印刷することができます。 eqn(1) や tbl(1) との呼び出し順序には特別な制限はありません。
通常モードでは、 vgrind は入力ファイル全体を処理し、ポストプロセッサを起動して出力処理を行わせます。ポストプロセッサのデフォルトは psroff(1) です
どちらのモードでも、 vgrind はピリオドで開始する行は変更せずに出力します。
オプションは以下のとおりです。
- -
- 標準入力から読み込みます ( -f オプションが指定された場合はデフォルトです)。
- -W
- (ナロー) バリアン用ではなく、(ワイド) バーサテックプリンタの出力を行います。
- -d file
- プログラミング言語定義ファイルを指定します (デフォルトでは /usr/share/misc/vgrindefs を使用します)。
- -f
- フィルタモードで動作します。
- -h header
- 各ページのヘッダ文字列を指定します (デフォルトは入力ファイル名です)。
- -l
- 入力ファイルのプログラミング言語を指定します。現在使用可能なものは以下のとおりです: PASCAL ( -l p), MODEL ( -l m), C ( -l c もしくはデフォルト), C++ ( -l c++), CSH ( -l csh), SHELL ( -l sh), RATFOR ( -l r), MODULA2 ( -l mod2), YACC ( -l yacc), LISP ( -l isp), ICON ( -l I), PERL ( -l perl)。
- -n
- キーワードのボールド化を行いません。
- -p postproc
- postproc を出力のポストプロセッサとして使用します。 psroff(1) がデフォルトです。
- -s pointsize
- 出力文字のポイントサイズを指定します (troff の .ps と同じ引数です)。
- -t
- troff(1) の同一のオプションと同じく、フォーマット後、標準出力に書き込みます。
- -x
- インデックスファイルを清書します。 vgrind は、カレントディレクトリに index という名前のファイルがあればつねにインデックスを出力します。関数で定義されたインデックスを -x オプションと引数としてファイル index を vgrind に渡すことによって、清書することができます。
関連ファイル
- index
- インデックスファイル
- /usr/share/tmac/tmac.vgrind
- マクロパッケージ
- /usr/libexec/vfontedpr
- プリプロセッサ
- /usr/share/misc/vgrindefs
- 言語記述ファイル
歴史
vgrind コマンドは 3.0BSD で追加されました。バグ
vfontedpr プリプロセッサは、以下のプログラミングスタイルを仮定しています:C 言語-関数名は、空白またはアスタリスクのみからなる行の直後にあり、括弧でくくられた引数リストが同じ行にある。
PASCAL -関数名は、キーワード function または procedure と同じ行にある。
MODEL -関数名は、キーワード is beginproc と同じ行にある。
もし以上に従っていない場合、インデックスと余白への関数名印刷が不正確なものになります。
その他、いくつかのプログラミングスタイルはきれいに清書されません: ブランクによってソースコードの先頭などを揃えた場合、正しくフォーマットされません。 vgrind を使って清書する場合は、タブによってソースコードを揃えるようにします。これは vgrind が可変幅フォントを使用するからです。
ctags(1) が関数を検出する方式を採用すべきです。
フィルタモードは、 -me または -ms マクロを用いたドキュメントで、正しく動作しません。 (このモードは一体どこで使うのでしょう)
August 29, 2006 | FreeBSD |