A generic key-value blob reader, KeyValueBlobReader, is implemented to allow more flexibility in user-editable files. For example, this allows comments in the file, as well as tolerating leading or trailing spaces, tabs, or even Windows CR LF line endings. Unit tests are supplied for KeyValueBlobReader although they are not part of the Xcode project. A separate CMakeLists.txt is provided. UserPhrasesLM is refactored to use KeyValueBlobReader. A small stylistic change is appiled to reduce "using namespace" uses, but otherwise no major style changes were applied to UserPhrasesLM. Please note that McBopomofo's user phrase LM uses the value in a key-value pair as the reading, and the key as the actual "value". We don't plan to change that order so that we don't have to migrate data. std::string_view is used to allow efficient reference to char buffers and interop with std::string (and so no c_str() is needed). C++17 is now enabled for the project to enable the use of std::string_view. Copyright headers are added to McBopomofoLM and UserPhrasesLM. |
||
|---|---|---|
| .. | ||
| Gramambular | ||
| Mandarin | ||
| OpenVanilla | ||
| .gitignore | ||
| CMakeLists.txt | ||
| FastLM.cpp | ||
| FastLM.h | ||
| KeyValueBlobReader.cpp | ||
| KeyValueBlobReader.h | ||
| KeyValueBlobReaderTest.cpp | ||
| McBopomofoLM.cpp | ||
| McBopomofoLM.h | ||
| UserOverrideModel.cpp | ||
| UserOverrideModel.h | ||
| UserPhrasesLM.cpp | ||
| UserPhrasesLM.h | ||