summaryrefslogtreecommitdiff
path: root/tests/test-6.exp
blob: dd6ea72f088eb20b3443a97697cbf13584d25ff3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
GNU 'gperf' generates perfect hash functions.

Usage: ../src/gperf [OPTION]... [INPUT-FILE]

If a long option shows an argument as mandatory, then it is mandatory
for the equivalent short option also.

Output file location:
      --output-file=FILE Write output to specified file.
The results are written to standard output if no output file is specified
or if it is -.

Input file interpretation:
  -e, --delimiters=DELIMITER-LIST
                         Allow user to provide a string containing delimiters
                         used to separate keywords from their attributes.
                         Default is ",".
  -t, --struct-type      Allows the user to include a structured type
                         declaration for generated code. Any text before %%
                         is considered part of the type declaration. Key
                         words and additional fields may follow this, one
                         group of fields per line.
      --ignore-case      Consider upper and lower case ASCII characters as
                         equivalent. Note that locale dependent case mappings
                         are ignored.

Language for the output code:
  -L, --language=LANGUAGE-NAME
                         Generates code in the specified language. Languages
                         handled are currently C++, ANSI-C, C, and KR-C. The
                         default is ANSI-C.

Details in the output code:
  -K, --slot-name=NAME   Select name of the keyword component in the keyword
                         structure.
  -F, --initializer-suffix=INITIALIZERS
                         Initializers for additional components in the keyword
                         structure.
  -H, --hash-function-name=NAME
                         Specify name of generated hash function. Default is
                         'hash'.
  -N, --lookup-function-name=NAME
                         Specify name of generated lookup function. Default
                         name is 'in_word_set'.
  -Z, --class-name=NAME  Specify name of generated C++ class. Default name is
                         'Perfect_Hash'.
  -7, --seven-bit        Assume 7-bit characters.
  -l, --compare-lengths  Compare key lengths before trying a string
                         comparison. This is necessary if the keywords
                         contain NUL bytes. It also helps cut down on the
                         number of string comparisons made during the lookup.
  -c, --compare-strncmp  Generate comparison code using strncmp rather than
                         strcmp.
  -C, --readonly-tables  Make the contents of generated lookup tables
                         constant, i.e., readonly.
  -E, --enum             Define constant values using an enum local to the
                         lookup function rather than with defines.
  -I, --includes         Include the necessary system include file <string.h>
                         at the beginning of the code.
  -G, --global-table     Generate the static table of keywords as a static
                         global variable, rather than hiding it inside of the
                         lookup function (which is the default behavior).
  -P, --pic              Optimize the generated table for inclusion in shared
                         libraries.  This reduces the startup time of programs
                         using a shared library containing the generated code.
  -Q, --string-pool-name=NAME
                         Specify name of string pool generated by option --pic.
                         Default name is 'stringpool'.
      --null-strings     Use NULL strings instead of empty strings for empty
                         keyword table entries.
      --constants-prefix=PREFIX
                         Specify prefix for the constants like TOTAL_KEYWORDS.
  -W, --word-array-name=NAME
                         Specify name of word list array. Default name is
                         'wordlist'.
      --length-table-name=NAME
                         Specify name of length table array. Default name is
                         'lengthtable'.
  -S, --switch=COUNT     Causes the generated C code to use a switch
                         statement scheme, rather than an array lookup table.
                         This can lead to a reduction in both time and space
                         requirements for some keyfiles. The COUNT argument
                         determines how many switch statements are generated.
                         A value of 1 generates 1 switch containing all the
                         elements, a value of 2 generates 2 tables with 1/2
                         the elements in each table, etc. If COUNT is very
                         large, say 1000000, the generated C code does a
                         binary search.
  -T, --omit-struct-type
                         Prevents the transfer of the type declaration to the
                         output file. Use this option if the type is already
                         defined elsewhere.

Algorithm employed by gperf:
  -k, --key-positions=KEYS
                         Select the key positions used in the hash function.
                         The allowable choices range between 1-255, inclusive.
                         The positions are separated by commas, ranges may be
                         used, and key positions may occur in any order.
                         Also, the meta-character '*' causes the generated
                         hash function to consider ALL key positions, and $
                         indicates the "final character" of a key, e.g.,
                         $,1,2,4,6-10.
  -D, --duplicates       Handle keywords that hash to duplicate values. This
                         is useful for certain highly redundant keyword sets.
  -m, --multiple-iterations=ITERATIONS
                         Perform multiple choices of the -i and -j values,
                         and choose the best results. This increases the
                         running time by a factor of ITERATIONS but does a
                         good job minimizing the generated table size.
  -i, --initial-asso=N   Provide an initial value for the associate values
                         array. Default is 0. Setting this value larger helps
                         inflate the size of the final table.
  -j, --jump=JUMP-VALUE  Affects the "jump value", i.e., how far to advance
                         the associated character value upon collisions. Must
                         be an odd number, default is 5.
  -n, --no-strlen        Do not include the length of the keyword when
                         computing the hash function.
  -r, --random           Utilizes randomness to initialize the associated
                         values table.
  -s, --size-multiple=N  Affects the size of the generated hash table. The
                         numeric argument N indicates "how many times larger
                         or smaller" the associated value range should be,
                         in relationship to the number of keys, e.g. a value
                         of 3 means "allow the maximum associated value to
                         be about 3 times larger than the number of input
                         keys". Conversely, a value of 1/3 means "make the
                         maximum associated value about 3 times smaller than
                         the number of input keys". A larger table should
                         decrease the time required for an unsuccessful
                         search, at the expense of extra table space. Default
                         value is 1.

Informative output:
  -h, --help             Print this message.
  -v, --version          Print the gperf version number.
  -d, --debug            Enables the debugging option (produces verbose
                         output to the standard error).

Report bugs to <bug-gperf@gnu.org>.