summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2020-08-17 12:35:35 +0800
committerPeng Wu <alexepico@gmail.com>2020-08-17 12:35:35 +0800
commit865dd14c83d9ad6fedb523181e2f066ed6b9dff3 (patch)
treeb033b264cc89dbde113ee937b73f208e1690a1e1
parentda26b217982ab096f0307e23b652ec5fdd627925 (diff)
downloadlibpinyin-865dd14c83d9ad6fedb523181e2f066ed6b9dff3.tar.gz
libpinyin-865dd14c83d9ad6fedb523181e2f066ed6b9dff3.tar.xz
libpinyin-865dd14c83d9ad6fedb523181e2f066ed6b9dff3.zip
improve full pinyin parser
-rw-r--r--src/storage/pinyin_parser2.cpp29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/storage/pinyin_parser2.cpp b/src/storage/pinyin_parser2.cpp
index 9e8d2f9..0ac9bc7 100644
--- a/src/storage/pinyin_parser2.cpp
+++ b/src/storage/pinyin_parser2.cpp
@@ -306,22 +306,25 @@ int FullPinyinParser2::parse (pinyin_option_t options, ChewingKeyVector & keys,
/* handle with the same pinyin length and the number of keys */
if (value.m_parsed_len == nextstep->m_parsed_len &&
value.m_num_keys == nextstep->m_num_keys &&
- value.m_distance < nextstep->m_distance) {
+ value.m_distance < nextstep->m_distance)
*nextstep = value;
-#if 0
- /* prefer the 'a' at the end of clause,
- * ex: "zheyanga$" -> "zhe'yang'a$".
- */
- if (value.m_parsed_len == len &&
- (nextstep->m_key.m_initial != CHEWING_ZERO_INITIAL &&
- nextstep->m_key.m_final == CHEWING_A) &&
- (value.m_key.m_initial == CHEWING_ZERO_INITIAL &&
- value.m_key.m_middle == CHEWING_ZERO_MIDDLE &&
- value.m_key.m_final == CHEWING_A))
- *nextstep = value;
+#if 1
+ /* prefer the 'a' at the end of clause,
+ * ex: "zheyanga$" -> "zhe'yang'a$".
+ */
+ if (value.m_parsed_len == len &&
+ (value.m_parsed_len == nextstep->m_parsed_len &&
+ value.m_num_keys == nextstep->m_num_keys &&
+ value.m_distance == nextstep->m_distance) &&
+ (nextstep->m_key.m_initial != CHEWING_ZERO_INITIAL &&
+ nextstep->m_key.m_middle == CHEWING_ZERO_MIDDLE &&
+ nextstep->m_key.m_final == CHEWING_A) &&
+ (value.m_key.m_initial == CHEWING_ZERO_INITIAL &&
+ value.m_key.m_middle == CHEWING_ZERO_MIDDLE &&
+ value.m_key.m_final == CHEWING_A))
+ *nextstep = value;
#endif
- }
}
}
}