Skip to content

Commit 732e949

Browse files
committed
clean code & fix ん
1 parent db20524 commit 732e949

File tree

4 files changed

+44
-44
lines changed

4 files changed

+44
-44
lines changed

src/Kana.cpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ namespace Kana
182182
{u"", u"ro"},
183183
{u"", u"wa"},
184184
{u"", u"o"},
185-
{u"", u"N"},
185+
{u"", u"n"},
186186
{u"ゔぁ", u"va"},
187187
{u"ゔぃ", u"vi"},
188188
{u"", u"vu"},
@@ -360,17 +360,17 @@ namespace Kana
360360
{u"ro", u""},
361361
{u"wa", u""},
362362
{u"o", u""},
363-
{u"N", u""},
363+
{u"n", u""},
364364
{u"va", u"ゔぁ"},
365365
{u"vi", u"ゔぃ"},
366366
{u"vu", u""},
367367
{u"ve", u"ゔぇ"},
368368
{u"vo", u"ゔぉ"}};
369369

370-
static std::u16string convertKana(const std::u16string &kana, KanaType kanaType) {
370+
static std::u16string convertKana(const std::u16string &kana, const KanaType kanaType) {
371371
std::u16string convertedKana;
372372
for (const char32_t kanaChar : kana) {
373-
if (kanaType == KanaType::Hiragana) {
373+
if (kanaType == Hiragana) {
374374
// target is Hiragana
375375
if (kanaChar >= katakanaStart && kanaChar < katakanaStart + 0x5E) {
376376
// Katakana->Hiragana
@@ -392,10 +392,12 @@ namespace Kana
392392
}
393393

394394
// convert Hiragana to Katakana
395-
static std::vector<std::u16string> convertKana(const std::vector<std::u16string> &kanaList, KanaType kanaType) {
396-
std::vector<std::u16string> inputlist;
395+
static std::vector<std::u16string>
396+
convertKana(const std::vector<std::u16string> &kanaList, const KanaType kanaType) {
397+
std::vector<std::u16string> inputList;
398+
inputList.reserve(kanaList.size());
397399
for (const auto &kana : kanaList)
398-
inputlist.emplace_back(kana);
400+
inputList.emplace_back(kana);
399401

400402
std::vector<std::u16string> convertedList;
401403
const std::regex rx("[\u3040-\u309F\u30A0-\u30FF]+");
@@ -404,7 +406,7 @@ namespace Kana
404406
std::u16string convertedKana;
405407
if (std::regex_match(u16strToUtf8str(kana), rx)) {
406408
for (const char32_t kanaChar : kana) {
407-
if (kanaType == KanaType::Hiragana) {
409+
if (kanaType == Hiragana) {
408410
// target is Hiragana
409411
if (kanaChar >= katakanaStart && kanaChar < katakanaStart + 0x5E) {
410412
// Katakana->Hiragana
@@ -455,25 +457,23 @@ namespace Kana
455457
static RomajiResVector u8kanaToRomaji(const std::vector<std::u16string> &kanaList, const Error &error,
456458
const bool &doubleWrittenSokuon) {
457459
RomajiResVector res;
458-
const std::vector<std::u16string> inputList = convertKana(kanaList, KanaType::Hiragana);
460+
const std::vector<std::u16string> inputList = convertKana(kanaList, Hiragana);
459461
std::vector<std::u16string> romajiList;
460462

461463
// convert kana to romaji
462464
for (const std::u16string &kana : inputList) {
463465
if (kana != u"" && kana != u"") {
464-
const auto it = kanaToRomajiMap.find(kana);
465-
if (it != kanaToRomajiMap.end())
466+
if (const auto it = kanaToRomajiMap.find(kana); it != kanaToRomajiMap.end())
466467
res.emplace_back(RomajiRes{u16strToUtf8str(kana), u16strToUtf8str(it->second), false});
467-
else if (error == Error::Default)
468+
else if (error == Default)
468469
res.emplace_back(RomajiRes{u16strToUtf8str(kana), u16strToUtf8str(kana), true});
469470
}
470471
}
471472

472473
// double written sokuon
473474
for (int i = 0; i < res.size() - 1 && doubleWrittenSokuon; ++i) {
474475
char32_t nextChar = U' ';
475-
const auto it = romajiToKanaMap.find(utf8strToU16str(res[i].romaji));
476-
if (it != romajiToKanaMap.end())
476+
if (const auto it = romajiToKanaMap.find(utf8strToU16str(res[i].romaji)); it != romajiToKanaMap.end())
477477
nextChar = it->second.at(0);
478478
if (res[i].romaji == "cl" && isKana(nextChar) &&
479479
std::u32string(U"あいうえおアイウエオっんを").find(nextChar) == std::u32string::npos) {
@@ -485,12 +485,12 @@ namespace Kana
485485
return res;
486486
}
487487

488-
RomajiResVector kanaToRomaji(const std::string &kanaStr, const Error &error, bool doubleWrittenSokuon) {
488+
RomajiResVector kanaToRomaji(const std::string &kanaStr, const Error &error, const bool doubleWrittenSokuon) {
489489
return u8kanaToRomaji(splitString(utf8strToU16str(kanaStr)), error, doubleWrittenSokuon);
490490
}
491491

492492
RomajiResVector kanaToRomaji(const std::vector<std::string> &kanaList, const Error &error,
493-
bool doubleWrittenSokuon) {
493+
const bool doubleWrittenSokuon) {
494494
std::vector<std::u16string> inputList;
495495
inputList.reserve(kanaList.size());
496496
for (const auto &item : kanaList) {

src/KanaRes.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ namespace Kana
66
std::vector<std::string> KanaResVector::toStdVector() const {
77
std::vector<std::string> result;
88
result.reserve(this->size());
9-
for (const auto &res : *this) {
10-
result.emplace_back(res.error ? res.romaji : res.kana);
9+
for (const auto &[romaji, kana, error] : *this) {
10+
result.emplace_back(error ? romaji : kana);
1111
}
1212
return result;
1313
}
@@ -17,11 +17,11 @@ namespace Kana
1717
std::string result;
1818
bool first = true;
1919

20-
for (const auto &res : *this) {
20+
for (const auto &[romaji, kana, error] : *this) {
2121
if (!first) {
2222
result += delimiter;
2323
}
24-
result += res.error ? res.romaji : res.kana;
24+
result += error ? romaji : kana;
2525
first = false;
2626
}
2727

src/RomajiRes.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ namespace Kana
66
std::vector<std::string> RomajiResVector::toStdVector() const {
77
std::vector<std::string> result;
88
result.reserve(this->size());
9-
for (const auto &res : *this) {
10-
result.emplace_back(res.error ? res.kana : res.romaji);
9+
for (const auto &[kana, romaji, error] : *this) {
10+
result.emplace_back(error ? kana : romaji);
1111
}
1212
return result;
1313
}
@@ -17,11 +17,11 @@ namespace Kana
1717
std::string result;
1818
bool first = true;
1919

20-
for (const auto &res : *this) {
20+
for (const auto &[kana, romaji, error] : *this) {
2121
if (!first) {
2222
result += delimiter;
2323
}
24-
result += res.error ? res.kana : res.romaji;
24+
result += error ? kana : romaji;
2525
first = false;
2626
}
2727

src/U16Str.cpp

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ namespace Kana
1414
utf8str.push_back(static_cast<char>(ch16));
1515
} else if (ch16 <= 0x7FF) {
1616
// 2-byte UTF-8
17-
utf8str.push_back(static_cast<char>(0xC0 | ((ch16 >> 6) & 0x1F)));
18-
utf8str.push_back(static_cast<char>(0x80 | (ch16 & 0x3F)));
17+
utf8str.push_back(static_cast<char>(0xC0 | ch16 >> 6 & 0x1F));
18+
utf8str.push_back(static_cast<char>(0x80 | ch16 & 0x3F));
1919
} else {
2020
// 3-byte UTF-8
21-
utf8str.push_back(static_cast<char>(0xE0 | ((ch16 >> 12) & 0x0F)));
22-
utf8str.push_back(static_cast<char>(0x80 | ((ch16 >> 6) & 0x3F)));
23-
utf8str.push_back(static_cast<char>(0x80 | (ch16 & 0x3F)));
21+
utf8str.push_back(static_cast<char>(0xE0 | ch16 >> 12 & 0x0F));
22+
utf8str.push_back(static_cast<char>(0x80 | ch16 >> 6 & 0x3F));
23+
utf8str.push_back(static_cast<char>(0x80 | ch16 & 0x3F));
2424
}
2525
return utf8str;
2626
}
@@ -37,8 +37,8 @@ namespace Kana
3737
utf8str.push_back(static_cast<char>(ch));
3838
} else if (ch < 0x800) {
3939
// 2-byte sequence
40-
utf8str.push_back(static_cast<char>(0xC0 | (ch >> 6)));
41-
utf8str.push_back(static_cast<char>(0x80 | (ch & 0x3F)));
40+
utf8str.push_back(static_cast<char>(0xC0 | ch >> 6));
41+
utf8str.push_back(static_cast<char>(0x80 | ch & 0x3F));
4242
} else if (ch >= 0xD800 && ch <= 0xDBFF) {
4343
// High surrogate (part of a 4-byte UTF-16 character)
4444
if (i + 1 >= u16str.size())
@@ -49,16 +49,16 @@ namespace Kana
4949
throw std::invalid_argument("Invalid UTF-16 surrogate pair");
5050

5151
const uint32_t codepoint = ((ch - 0xD800) << 10) + (low - 0xDC00) + 0x10000;
52-
utf8str.push_back(static_cast<char>(0xF0 | (codepoint >> 18)));
53-
utf8str.push_back(static_cast<char>(0x80 | ((codepoint >> 12) & 0x3F)));
54-
utf8str.push_back(static_cast<char>(0x80 | ((codepoint >> 6) & 0x3F)));
55-
utf8str.push_back(static_cast<char>(0x80 | (codepoint & 0x3F)));
52+
utf8str.push_back(static_cast<char>(0xF0 | codepoint >> 18));
53+
utf8str.push_back(static_cast<char>(0x80 | codepoint >> 12 & 0x3F));
54+
utf8str.push_back(static_cast<char>(0x80 | codepoint >> 6 & 0x3F));
55+
utf8str.push_back(static_cast<char>(0x80 | codepoint & 0x3F));
5656
++i; // Skip next low surrogate
5757
} else {
5858
// 3-byte sequence
59-
utf8str.push_back(static_cast<char>(0xE0 | (ch >> 12)));
60-
utf8str.push_back(static_cast<char>(0x80 | ((ch >> 6) & 0x3F)));
61-
utf8str.push_back(static_cast<char>(0x80 | (ch & 0x3F)));
59+
utf8str.push_back(static_cast<char>(0xE0 | ch >> 12));
60+
utf8str.push_back(static_cast<char>(0x80 | ch >> 6 & 0x3F));
61+
utf8str.push_back(static_cast<char>(0x80 | ch & 0x3F));
6262
}
6363
}
6464

@@ -81,23 +81,23 @@ namespace Kana
8181
// 2-byte sequence
8282
if (i + 1 >= utf8str.size())
8383
throw std::invalid_argument("Invalid UTF-8 sequence");
84-
u16str.push_back(((c & 0x1F) << 6) | (utf8str[i + 1] & 0x3F));
84+
u16str.push_back((c & 0x1F) << 6 | utf8str[i + 1] & 0x3F);
8585
i += 2;
8686
} else if (c < 0xF0) {
8787
// 3-byte sequence
8888
if (i + 2 >= utf8str.size())
8989
throw std::invalid_argument("Invalid UTF-8 sequence");
90-
u16str.push_back(((c & 0x0F) << 12) | ((utf8str[i + 1] & 0x3F) << 6) | (utf8str[i + 2] & 0x3F));
90+
u16str.push_back((c & 0x0F) << 12 | (utf8str[i + 1] & 0x3F) << 6 | utf8str[i + 2] & 0x3F);
9191
i += 3;
9292
} else {
9393
// 4-byte sequence (assuming UTF-32 character, but storing in UTF-16)
9494
if (i + 3 >= utf8str.size())
9595
throw std::invalid_argument("Invalid UTF-8 sequence");
96-
uint32_t codepoint = ((c & 0x07) << 18) | ((utf8str[i + 1] & 0x3F) << 12) |
97-
((utf8str[i + 2] & 0x3F) << 6) | (utf8str[i + 3] & 0x3F);
96+
uint32_t codepoint = (c & 0x07) << 18 | (utf8str[i + 1] & 0x3F) << 12 |
97+
(utf8str[i + 2] & 0x3F) << 6 | utf8str[i + 3] & 0x3F;
9898
codepoint -= 0x10000;
99-
u16str.push_back(0xD800 | (codepoint >> 10)); // High surrogate
100-
u16str.push_back(0xDC00 | (codepoint & 0x3FF)); // Low surrogate
99+
u16str.push_back(0xD800 | codepoint >> 10); // High surrogate
100+
u16str.push_back(0xDC00 | codepoint & 0x3FF); // Low surrogate
101101
i += 4;
102102
}
103103
}

0 commit comments

Comments
 (0)