Lines Matching defs:kt

45 cgen_keyword_lookup_name (CGEN_KEYWORD *kt, const char *name)
50 if (kt->name_hash_table == NULL)
51 build_keyword_hash_tables (kt);
53 ke = kt->name_hash_table[hash_keyword_name (kt, name, 0)];
75 if (kt->null_entry)
76 return kt->null_entry;
84 cgen_keyword_lookup_value (CGEN_KEYWORD *kt, int value)
88 if (kt->name_hash_table == NULL)
89 build_keyword_hash_tables (kt);
91 ke = kt->value_hash_table[hash_keyword_value (kt, value)];
106 cgen_keyword_add (CGEN_KEYWORD *kt, CGEN_KEYWORD_ENTRY *ke)
111 if (kt->name_hash_table == NULL)
112 build_keyword_hash_tables (kt);
114 hash = hash_keyword_name (kt, ke->name, 0);
115 ke->next_name = kt->name_hash_table[hash];
116 kt->name_hash_table[hash] = ke;
118 hash = hash_keyword_value (kt, ke->value);
119 ke->next_value = kt->value_hash_table[hash];
120 kt->value_hash_table[hash] = ke;
123 kt->null_entry = ke;
127 && ! strchr (kt->nonalpha_chars, ke->name[i]))
129 size_t idx = strlen (kt->nonalpha_chars);
134 if (idx >= sizeof (kt->nonalpha_chars) - 1)
136 kt->nonalpha_chars[idx] = ke->name[i];
137 kt->nonalpha_chars[idx+1] = 0;
152 cgen_keyword_search_init (CGEN_KEYWORD *kt, const char *spec)
160 if (kt->name_hash_table == NULL)
161 build_keyword_hash_tables (kt);
163 search.table = kt;
208 hash_keyword_name (const CGEN_KEYWORD *kt,
220 return hash % kt->hash_table_size;
226 hash_keyword_value (const CGEN_KEYWORD *kt, unsigned int value)
228 return value % kt->hash_table_size;
236 build_keyword_hash_tables (CGEN_KEYWORD *kt)
241 unsigned int size = KEYWORD_HASH_SIZE (kt->num_init_entries);
243 kt->hash_table_size = size;
244 kt->name_hash_table = (CGEN_KEYWORD_ENTRY **)
246 memset (kt->name_hash_table, 0, size * sizeof (CGEN_KEYWORD_ENTRY *));
247 kt->value_hash_table = (CGEN_KEYWORD_ENTRY **)
249 memset (kt->value_hash_table, 0, size * sizeof (CGEN_KEYWORD_ENTRY *));
253 for (i = kt->num_init_entries - 1; i >= 0; --i)
254 cgen_keyword_add (kt, &kt->init_entries[i]);