Use C++ UTF-8 literals and remove MSVC escapes

This commit is contained in:
Lukhnos Liu 2022-01-31 22:27:21 -08:00
parent 385fd34476
commit 44f6167a38
1 changed files with 42 additions and 93 deletions

View File

@ -266,16 +266,9 @@ const BPMF BPMF::FromHanyuPinyin(const std::string& str) {
} else if (PinyinParseHelper::ConsumePrefix(pinyin, "ue")) { } else if (PinyinParseHelper::ConsumePrefix(pinyin, "ue")) {
secondComponent = BPMF::UE; secondComponent = BPMF::UE;
thirdComponent = BPMF::E; thirdComponent = BPMF::E;
} } else if (PinyinParseHelper::ConsumePrefix(pinyin, u8"ü")) {
#ifndef _MSC_VER
else if (PinyinParseHelper::ConsumePrefix(pinyin, "ü")) {
secondComponent = BPMF::UE; secondComponent = BPMF::UE;
} }
#else
else if (PinyinParseHelper::ConsumePrefix(pinyin, "\xc3\xbc")) {
secondComponent = BPMF::UE;
}
#endif
// then consume the middle component... // then consume the middle component...
if (0) { if (0) {
@ -954,91 +947,47 @@ const BopomofoCharacterMap& BopomofoCharacterMap::SharedInstance() {
} }
BopomofoCharacterMap::BopomofoCharacterMap() { BopomofoCharacterMap::BopomofoCharacterMap() {
#ifndef _MSC_VER characterToComponent[u8""] = BPMF::B;
characterToComponent[""] = BPMF::B; characterToComponent[u8""] = BPMF::P;
characterToComponent[""] = BPMF::P; characterToComponent[u8""] = BPMF::M;
characterToComponent[""] = BPMF::M; characterToComponent[u8""] = BPMF::F;
characterToComponent[""] = BPMF::F; characterToComponent[u8""] = BPMF::D;
characterToComponent[""] = BPMF::D; characterToComponent[u8""] = BPMF::T;
characterToComponent[""] = BPMF::T; characterToComponent[u8""] = BPMF::N;
characterToComponent[""] = BPMF::N; characterToComponent[u8""] = BPMF::L;
characterToComponent[""] = BPMF::L; characterToComponent[u8""] = BPMF::K;
characterToComponent[""] = BPMF::K; characterToComponent[u8""] = BPMF::G;
characterToComponent[""] = BPMF::G; characterToComponent[u8""] = BPMF::H;
characterToComponent[""] = BPMF::H; characterToComponent[u8""] = BPMF::J;
characterToComponent[""] = BPMF::J; characterToComponent[u8""] = BPMF::Q;
characterToComponent[""] = BPMF::Q; characterToComponent[u8""] = BPMF::X;
characterToComponent[""] = BPMF::X; characterToComponent[u8""] = BPMF::ZH;
characterToComponent[""] = BPMF::ZH; characterToComponent[u8""] = BPMF::CH;
characterToComponent[""] = BPMF::CH; characterToComponent[u8""] = BPMF::SH;
characterToComponent[""] = BPMF::SH; characterToComponent[u8""] = BPMF::R;
characterToComponent[""] = BPMF::R; characterToComponent[u8""] = BPMF::Z;
characterToComponent[""] = BPMF::Z; characterToComponent[u8""] = BPMF::C;
characterToComponent[""] = BPMF::C; characterToComponent[u8""] = BPMF::S;
characterToComponent[""] = BPMF::S; characterToComponent[u8""] = BPMF::I;
characterToComponent[""] = BPMF::I; characterToComponent[u8""] = BPMF::U;
characterToComponent[""] = BPMF::U; characterToComponent[u8""] = BPMF::UE;
characterToComponent[""] = BPMF::UE; characterToComponent[u8""] = BPMF::A;
characterToComponent[""] = BPMF::A; characterToComponent[u8""] = BPMF::O;
characterToComponent[""] = BPMF::O; characterToComponent[u8""] = BPMF::ER;
characterToComponent[""] = BPMF::ER; characterToComponent[u8""] = BPMF::E;
characterToComponent[""] = BPMF::E; characterToComponent[u8""] = BPMF::AI;
characterToComponent[""] = BPMF::AI; characterToComponent[u8""] = BPMF::EI;
characterToComponent[""] = BPMF::EI; characterToComponent[u8""] = BPMF::AO;
characterToComponent[""] = BPMF::AO; characterToComponent[u8""] = BPMF::OU;
characterToComponent[""] = BPMF::OU; characterToComponent[u8""] = BPMF::AN;
characterToComponent[""] = BPMF::AN; characterToComponent[u8""] = BPMF::EN;
characterToComponent[""] = BPMF::EN; characterToComponent[u8""] = BPMF::ANG;
characterToComponent[""] = BPMF::ANG; characterToComponent[u8""] = BPMF::ENG;
characterToComponent[""] = BPMF::ENG; characterToComponent[u8""] = BPMF::ERR;
characterToComponent[""] = BPMF::ERR; characterToComponent[u8"ˊ"] = BPMF::Tone2;
characterToComponent["ˊ"] = BPMF::Tone2; characterToComponent[u8"ˇ"] = BPMF::Tone3;
characterToComponent["ˇ"] = BPMF::Tone3; characterToComponent[u8"ˋ"] = BPMF::Tone4;
characterToComponent["ˋ"] = BPMF::Tone4; characterToComponent[u8"˙"] = BPMF::Tone5;
characterToComponent["˙"] = BPMF::Tone5;
#else
characterToComponent["\xe3\x84\x85"] = BPMF::B;
characterToComponent["\xe3\x84\x86"] = BPMF::P;
characterToComponent["\xe3\x84\x87"] = BPMF::M;
characterToComponent["\xe3\x84\x88"] = BPMF::F;
characterToComponent["\xe3\x84\x89"] = BPMF::D;
characterToComponent["\xe3\x84\x8a"] = BPMF::T;
characterToComponent["\xe3\x84\x8b"] = BPMF::N;
characterToComponent["\xe3\x84\x8c"] = BPMF::L;
characterToComponent["\xe3\x84\x8e"] = BPMF::K;
characterToComponent["\xe3\x84\x8d"] = BPMF::G;
characterToComponent["\xe3\x84\x8f"] = BPMF::H;
characterToComponent["\xe3\x84\x90"] = BPMF::J;
characterToComponent["\xe3\x84\x91"] = BPMF::Q;
characterToComponent["\xe3\x84\x92"] = BPMF::X;
characterToComponent["\xe3\x84\x93"] = BPMF::ZH;
characterToComponent["\xe3\x84\x94"] = BPMF::CH;
characterToComponent["\xe3\x84\x95"] = BPMF::SH;
characterToComponent["\xe3\x84\x96"] = BPMF::R;
characterToComponent["\xe3\x84\x97"] = BPMF::Z;
characterToComponent["\xe3\x84\x98"] = BPMF::C;
characterToComponent["\xe3\x84\x99"] = BPMF::S;
characterToComponent["\xe3\x84\xa7"] = BPMF::I;
characterToComponent["\xe3\x84\xa8"] = BPMF::U;
characterToComponent["\xe3\x84\xa9"] = BPMF::UE;
characterToComponent["\xe3\x84\x9a"] = BPMF::A;
characterToComponent["\xe3\x84\x9b"] = BPMF::O;
characterToComponent["\xe3\x84\x9c"] = BPMF::ER;
characterToComponent["\xe3\x84\x9d"] = BPMF::E;
characterToComponent["\xe3\x84\x9e"] = BPMF::AI;
characterToComponent["\xe3\x84\x9f"] = BPMF::EI;
characterToComponent["\xe3\x84\xa0"] = BPMF::AO;
characterToComponent["\xe3\x84\xa1"] = BPMF::OU;
characterToComponent["\xe3\x84\xa2"] = BPMF::AN;
characterToComponent["\xe3\x84\xa3"] = BPMF::EN;
characterToComponent["\xe3\x84\xa4"] = BPMF::ANG;
characterToComponent["\xe3\x84\xa5"] = BPMF::ENG;
characterToComponent["\xe3\x84\xa6"] = BPMF::ERR;
characterToComponent["\xcb\x8a"] = BPMF::Tone2;
characterToComponent["\xcb\x87"] = BPMF::Tone3;
characterToComponent["\xcb\x8b"] = BPMF::Tone4;
characterToComponent["\xcb\x99"] = BPMF::Tone5;
#endif
for (std::map<std::string, BPMF::Component>::iterator iter = for (std::map<std::string, BPMF::Component>::iterator iter =
characterToComponent.begin(); characterToComponent.begin();