From ba8ff2b0c673eaf453c8e82f66a1104f8eb402f6 Mon Sep 17 00:00:00 2001 From: Al Date: Wed, 22 Jul 2015 02:16:22 -0400 Subject: [PATCH] [expansion] Language prefixed keys --- src/address_dictionary_builder.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/address_dictionary_builder.c b/src/address_dictionary_builder.c index ffd1b1a2..cb96cb00 100644 --- a/src/address_dictionary_builder.c +++ b/src/address_dictionary_builder.c @@ -4,8 +4,9 @@ #include "address_dictionary.h" #include "address_expansion_data.c" -#include "config.h" #include "collections.h" +#include "config.h" +#include "constants.h" #include "gazetteer_data.c" int main(int argc, char **argv) { @@ -34,6 +35,8 @@ int main(int argc, char **argv) { kh_value(dictionary_components, k) = (uint32_t) gazetteer.address_components; } + char_array *key = char_array_new(); + for (int i = 0; i < sizeof(expansion_languages) / sizeof(address_language_index_t); i++) { address_language_index_t lang_index = expansion_languages[i]; char *language = lang_index.language; @@ -55,7 +58,13 @@ int main(int argc, char **argv) { canonical = canonical_strings[expansion_rule.canonical_index]; } - if (!address_dictionary_add_expansion(address_dict, expansion_rule.phrase, canonical, language, dictionary_id, address_components)) { + char_array_clear(key); + char_array_cat(key, language); + char_array_cat(key, NAMESPACE_SEPARATOR_CHAR); + char_array_cat(key, expansion_rule.phrase); + char *token = char_array_get_string(key); + + if (!address_dictionary_add_expansion(address_dict, token, canonical, language, dictionary_id, address_components)) { log_error("Could not add expansion {%s, %s}\n", language, expansion_rule.phrase); exit(EXIT_FAILURE); } @@ -63,9 +72,10 @@ int main(int argc, char **argv) { } } - address_dictionary_save(output_file); + char_array_destroy(key); + kh_destroy(int_int, dictionary_components); address_dictionary_module_teardown();