- string_table = "";
-
- # The basic approach is to first generate a suffix-compressed string
- # table containing all the specifier strings (not a lot of overlap in
- # C specifiers, but there is (un)signed.
- count = bucketsort(sorted_specs, specs);
- for (i = 0; i < count; i++) {
- s = sorted_specs[i];
-
- if ((n = index(string_table, s "\1")) > 0) {
- offsets[rspecs[s]] = n - 1;
- } else {
- offsets[rspecs[s]] = length(string_table);
- string_table = string_table s "\1";
- }
- }
-
- # Next, we create the index table. The first 5 entries key off of bits 9
- # through 11, which is sufficient to distinguish the different specifier
- # kinds and is used to partition the rest of the index table.
+ # Create the token table. The first 5 entries key off of bits 9 through 11,
+ # which is sufficient to distinguish the different specifier kinds and is
+ # used to partition the rest of the token table.