Lines Matching defs:kt

49 cgen_keyword_lookup_name (CGEN_KEYWORD *kt, const char *name)
54 if (kt->name_hash_table == NULL)
55 build_keyword_hash_tables (kt);
57 ke = kt->name_hash_table[hash_keyword_name (kt, name, 0)];
79 if (kt->null_entry)
80 return kt->null_entry;
88 cgen_keyword_lookup_value (CGEN_KEYWORD *kt, int value)
92 if (kt->name_hash_table == NULL)
93 build_keyword_hash_tables (kt);
95 ke = kt->value_hash_table[hash_keyword_value (kt, value)];
110 cgen_keyword_add (CGEN_KEYWORD *kt, CGEN_KEYWORD_ENTRY *ke)
115 if (kt->name_hash_table == NULL)
116 build_keyword_hash_tables (kt);
118 hash = hash_keyword_name (kt, ke->name, 0);
119 ke->next_name = kt->name_hash_table[hash];
120 kt->name_hash_table[hash] = ke;
122 hash = hash_keyword_value (kt, ke->value);
123 ke->next_value = kt->value_hash_table[hash];
124 kt->value_hash_table[hash] = ke;
127 kt->null_entry = ke;
131 && ! strchr (kt->nonalpha_chars, ke->name[i]))
133 size_t idx = strlen (kt->nonalpha_chars);
138 if (idx >= sizeof (kt->nonalpha_chars) - 1)
140 kt->nonalpha_chars[idx] = ke->name[i];
141 kt->nonalpha_chars[idx+1] = 0;
156 cgen_keyword_search_init (CGEN_KEYWORD *kt, const char *spec)
164 if (kt->name_hash_table == NULL)
165 build_keyword_hash_tables (kt);
167 search.table = kt;
212 hash_keyword_name (const CGEN_KEYWORD *kt,
224 return hash % kt->hash_table_size;
230 hash_keyword_value (const CGEN_KEYWORD *kt, unsigned int value)
232 return value % kt->hash_table_size;
240 build_keyword_hash_tables (CGEN_KEYWORD *kt)
245 unsigned int size = KEYWORD_HASH_SIZE (kt->num_init_entries);
247 kt->hash_table_size = size;
248 kt->name_hash_table = (CGEN_KEYWORD_ENTRY **)
250 memset (kt->name_hash_table, 0, size * sizeof (CGEN_KEYWORD_ENTRY *));
251 kt->value_hash_table = (CGEN_KEYWORD_ENTRY **)
253 memset (kt->value_hash_table, 0, size * sizeof (CGEN_KEYWORD_ENTRY *));
257 for (i = kt->num_init_entries - 1; i >= 0; --i)
258 cgen_keyword_add (kt, &kt->init_entries[i]);