.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.022. .\" $FreeBSD$ .TH GPERF "1" "September 2000" "GNU gperf 2.7.2" FSF .UC 4 .SH 名称 gperf \- キーの集合から完全なハッシュ関数を生成する .SH 書式 .B gperf [\fIOPTION\fR]... [\fIINPUT-FILE\fR] .SH 解説 GNU `gperf' \fIは\fR、完全なハッシュ関数を生成します。 .PP 長いオプションに引数が必須であると示している場合、 等価の短いオプションも引数は必須です。 .SS 入力ファイルの解釈 .TP \fB\-e\fR, \fB\-\-delimiters\fR=\fIDELIMITER\-LIST\fR デリミタを含む文字列を指定します。 デリミタは、キーワードと属性とを切り分けるために使用されます。 デフォルトは ",\en" です。 .TP \fB\-t\fR, \fB\-\-struct\-type\fR 構造体の型宣言を、生成コード中に含めます。 %% より前のすべてのテキストは、型宣言とみなされます。 キーワードと追加のフィールドを、ひとまとめに 1 行にして、 この後に続けます。 .SS 出力コード用言語 .TP \fB\-L\fR, \fB\-\-language\fR=\fILANGUAGE\-NAME\fR 指定した言語でコードを生成します。 現在使用可能な言語は、C++, ANSI-C, C, KR-C です。 デフォルトは C です。 .SS 出力コードの詳細 .TP \fB\-K\fR, \fB\-\-slot\-name\fR=\fINAME\fR キーワード構造体中のキーワード要素の名前を選択します。 .TP \fB\-F\fR, \fB\-\-initializer\-suffix\fR=\fIINITIALIZERS\fR キーワード構造体中の追加要素を、これで初期します。 .TP \fB\-H\fR, \fB\-\-hash\-fn\-name\fR=\fINAME\fR 生成されるハッシュ関数の名前を指定します。 デフォルトは `hash' です。 .TP \fB\-N\fR, \fB\-\-lookup\-fn\-name\fR=\fINAME\fR 生成される検索関数の名前を指定します。 デフォルトは `in_word_set' です。 .TP \fB\-Z\fR, \fB\-\-class\-name\fR=\fINAME\fR 生成される C++ クラスの名前を指定します。 デフォルト名は `Perfect_Hash' です。 .TP \fB\-7\fR, \fB\-\-seven\-bit\fR 7 ビット文字を仮定します。 .TP \fB\-c\fR, \fB\-\-compare\-strncmp\fR strcmp の代りに strncmp を使用する、比較コードを生成します。 .TP \fB\-C\fR, \fB\-\-readonly\-tables\fR 生成される検索表を定数、すなわち読み取り専用にします。 .TP \fB\-E\fR, \fB\-\-enum\fR define の代りに enum 型ローカルを使用して、 検索関数用の定数値を定義します。 .TP \fB\-I\fR, \fB\-\-includes\fR 必要なシステムインクルードファイル を、 コードの先頭でインクルードします。 .TP \fB\-G\fR, \fB\-\-global\fR キーワードの静的な表を、 検索関数中に隠す (これがデフォルト動作です) の代りに、 静的な大域変数として生成します。 .TP \fB\-W\fR, \fB\-\-word\-array\-name\fR=\fINAME\fR 単語一覧配列の名前を指定します。 デフォルト名は `wordlist' です。 .TP \fB\-S\fR, \fB\-\-switch\fR=\fICOUNT\fR 生成される C コードに、配列検索表の代りに、switch 文方式を使用させます。 キーファイルによっては、時間と空間の削減になります。 COUNT 引数は、生成される switch 文の数を指定します。 値 1 ではすべての要素を含む switch を 1 個生成し、 値 2 では表の半分の要素を含む switch を 2 個生成し、等となります。 COUNT が非常に大きい場合、例えば 1000000 の場合、 生成される C コードは二分検索を行います。 .TP \fB\-T\fR, \fB\-\-omit\-struct\-type\fR 型宣言が出力ファイルへ転送されることを防ぎます。 型が他のどこかで定義されている場合に、本オプションを使用します。 .SS gperf が使用するアルゴリズム .TP \fB\-k\fR, \fB\-\-key\-positions\fR=\fIKEYS\fR ハッシュ関数が使用するキーの場所を選択します。 選択が許される範囲は 1-126 の範囲で、両端を含みます。 位置はコンマで区切り、範囲を指定可能であり、キー位置の順序は任意です。 また、メタ文字 '*' は、生成されるハッシュ関数にすべての キー位置を考慮させ、$ は ``最後の文字'' を意味します。 例は $,1,2,4,6-10 です。 .TP \fB\-l\fR, \fB\-\-compare\-strlen\fR 文字列比較の前に、キーの長さを比較します。 これにより、検索中の文字列比較回数を削減します。 .TP \fB\-D\fR, \fB\-\-duplicates\fR 重複する値にハッシュされるキーワードを扱います。 非常に冗長なキーワード集合を扱う場合に有用です。 .TP \fB\-f\fR, \fB\-\-fast\fR=\fIITERATIONS\fR gen-perf.hash 関数を ``高速'' に生成します。 gperf の実行時間を削減しますが、 生成される表の大きさの最小化を犠牲にします。 数値引数は、衝突解決時の繰り返し数を表現します。 `0' は、``キーワード数だけ繰り返す'' ことを意味します。 .TP \fB\-i\fR, \fB\-\-initial\-asso\fR=\fIN\fR 関連付けられた値の配列に初期値を与えます。 デフォルト値は 0 です。 この値を大きくすると、最終的な表を大きくします。 .TP \fB\-j\fR, \fB\-\-jump\fR=\fIJUMP\-VALUE\fR ``ジャンプ値''、 すなわち文字の関連付けられた値を、衝突時にどれだけ進めるかを指定します。 奇数であることが必要であり、デフォルトは 5 です。 .TP \fB\-n\fR, \fB\-\-no\-strlen\fR ハッシュ関数の計算にキーワード長を含めません。 .TP \fB\-o\fR, \fB\-\-occurrence\-sort\fR キー集合中での出現頻度で、入力キーを並び換えます。 検索時間を劇的に削減するはずです。 .TP \fB\-r\fR, \fB\-\-random\fR 関連付けられた値の表の初期化にランダム性を利用します。 .TP \fB\-s\fR, \fB\-\-size\-multiple\fR=\fIN\fR 生成されるハッシュ表の大きさを変えます。 数値引数 N は、関連付けられた値の範囲が、 入力キーの数と比較して ``何倍大きいまたは小さい'' べきことを示します。 例えば、数値 3 は、 ``関連付けられた値の最大値は、入力キー数の約 3 倍の大きさを許す'' ことを意味します。 逆に、値 \fB\-3\fR は、 ``関連付けられた値の最大値を、入力キー数の約 1/3 に小さくする'' ことを意味します。 表が大きくなると、検索失敗時の時間を削減しますが、 表のための余計な空間が犠牲となります。 デフォルト値は 1 です。 .SS 情報としての出力 .TP \fB\-h\fR, \fB\-\-help\fR このメッセージを表示します。 .TP \fB\-v\fR, \fB\-\-version\fR gperf のバージョン番号を表示します。 .TP \fB\-d\fR, \fB\-\-debug\fR デバッグオプションを有効にします (冗長な出力を標準エラーへ生成します)。 .SH バグレポート バグは へ報告してください。 .SH 関連項目 .B gperf の完全な文書は Texinfo マニュアルで管理されています。 .B info および .B gperf のプログラムがあなたのサイトで適切にインストールされていれば、コマンド .IP .B info gperf .PP で完全なマニュアルにアクセス可能です。