From 6d43fe4a24a2744f11c702eadc4f2d9f278d513a Mon Sep 17 00:00:00 2001 From: hashirama Date: Sat, 11 May 2024 16:35:34 -0400 Subject: [PATCH] add option to select the dictionary path --- a.out | Bin 0 -> 140200 bytes src/main.cc | 56 +++++++++++++++++++++++++++++++--------------------- 2 files changed, 33 insertions(+), 23 deletions(-) create mode 100755 a.out diff --git a/a.out b/a.out new file mode 100755 index 0000000000000000000000000000000000000000..7f2b06ab6023c2c72273f793f9406be0175be5d1 GIT binary patch literal 140200 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

u5T!~KHGzjXE^@Z}E)qH_Co;HPaAT>0mVz`uXF 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 literal 0 HcmV?d00001 diff --git a/src/main.cc b/src/main.cc index c5fc0ea..7ca1079 100644 --- a/src/main.cc +++ b/src/main.cc @@ -2,8 +2,12 @@ #include #include #include +#include +#include #include +// as this is in test phase, i recommend testing with the input being "特別協力組合理事" + struct Entry { std::string_view decoded_view; uint64_t id; @@ -12,42 +16,47 @@ struct Entry { int main(int argc, char* argv[]) { if (argc < 2) { - std::cerr << "Usage: " << argv[0] << " [--debug]" << std::endl; + std::cerr << "Usage: " << argv[0] << " [--debug] [--dict ]" << std::endl; return 1; } - const char* filename = "dict.bin"; - std::string search_string = argv[1]; - bool debug_mode = false; // Debug mode flag + std::string search_string; + bool debug_mode = false; + std::string dict_file = "dict.bin"; // Default dictionary file path - // Check if --debug is passed - if (argc == 3 && std::string(argv[2]) == "--debug") { - debug_mode = true; + // Parse command line arguments + for (int i = 1; i < argc; ++i) { + if (std::strcmp(argv[i], "--debug") == 0) { + debug_mode = true; + } else if (std::strcmp(argv[i], "--dict") == 0 && i + 1 < argc) { + dict_file = argv[i + 1]; + i++; // Skip the next argument as it's the dictionary file path + } else { + search_string = argv[i]; + } } - std::string raw_output; // To store raw output + if (search_string.empty()) { + std::cerr << "Search string not provided." << std::endl; + return 1; + } - // The trie dictionary type from the four types - using trie_type = xcdat::trie_15_type; - - // Load the trie dictionary from the hardcoded file. - const auto trie = xcdat::load(filename); + std::string raw_output; + const auto trie = xcdat::load(dict_file); std::vector substrings; - // Process the input string iteratively while (!search_string.empty()) { std::vector results; - - // Common prefix search auto itr = trie.make_prefix_iterator(search_string); + while (itr.next()) { results.emplace_back(itr.decoded_view(), itr.id()); } - // Find the smallest common prefix size_t min_length = std::numeric_limits::max(); std::string_view smallest_prefix; + for (const auto& entry : results) { if (entry.decoded_view.size() < min_length) { min_length = entry.decoded_view.size(); @@ -55,35 +64,36 @@ int main(int argc, char* argv[]) { } } - // Subtract the smallest common prefix from the input string if (min_length > 0) { std::string substring = search_string.substr(0, search_string.find(smallest_prefix)); if (!substring.empty()) { substrings.push_back(substring); } std::cout << search_string << " - " << smallest_prefix << " = "; + if (debug_mode) { - raw_output += search_string + " - " + smallest_prefix.data() + " = "; // Accumulate raw output + raw_output += search_string + " - " + std::string(smallest_prefix) + " = "; } + size_t pos = search_string.find(smallest_prefix); if (pos != std::string::npos) { search_string.erase(0, pos + smallest_prefix.length()); } + std::cout << search_string << std::endl; + if (debug_mode) { - raw_output += search_string + '\n'; // Add the result to raw output + raw_output += search_string + '\n'; } - // Remove leading whitespace, if any + while (!search_string.empty() && std::isspace(search_string.front())) { search_string.erase(0, 1); } } else { - // If no common prefix found, break the loop break; } } - // Print the stored raw output if debug mode is active if (debug_mode) { std::cout << "Stored raw output:" << std::endl << raw_output << std::endl; }