From 0761df67ceccd827f01e8326e24e91697a29b367 Mon Sep 17 00:00:00 2001 From: Hiroshi Sumita Date: Mon, 11 Jun 2012 12:21:09 +0900 Subject: Removes PyZy prefix from filename. BUG=None TEST=Manual Review URL: https://codereview.appspot.com/6307059 --- configure.ac | 2 +- docs/Doxyfile.in | 6 +- src/Bopomofo.h | 81 + src/BopomofoContext.cc | 505 +++ src/BopomofoContext.h | 70 + src/BopomofoKeyboard.h | 204 + src/Config.h | 44 + src/Const.h | 96 + src/Database.cc | 742 ++++ src/Database.h | 114 + src/DoublePinyinContext.cc | 520 +++ src/DoublePinyinContext.h | 64 + src/DoublePinyinTable.h | 391 ++ src/DynamicSpecialPhrase.cc | 208 + src/DynamicSpecialPhrase.h | 57 + src/FullPinyinContext.cc | 256 ++ src/FullPinyinContext.h | 57 + src/InputContext.cc | 80 + src/InputContext.h | 481 +++ src/Makefile.am | 100 +- src/PhoneticContext.cc | 335 ++ src/PhoneticContext.h | 165 + src/Phrase.h | 75 + src/PhraseArray.h | 35 + src/PhraseEditor.cc | 174 + src/PhraseEditor.h | 133 + src/PinyinArray.h | 75 + src/PinyinContext.cc | 211 + src/PinyinContext.h | 42 + src/PinyinParser.cc | 356 ++ src/PinyinParser.h | 49 + src/PinyinParserTable.h | 8090 ++++++++++++++++++++++++++++++++++++++ src/PyZyBopomofo.h | 81 - src/PyZyBopomofoContext.cc | 504 --- src/PyZyBopomofoContext.h | 70 - src/PyZyBopomofoKeyboard.h | 204 - src/PyZyConfig.h | 44 - src/PyZyConst.h | 96 - src/PyZyDatabase.cc | 739 ---- src/PyZyDatabase.h | 114 - src/PyZyDoublePinyinContext.cc | 519 --- src/PyZyDoublePinyinContext.h | 64 - src/PyZyDoublePinyinTable.h | 391 -- src/PyZyDynamicSpecialPhrase.cc | 208 - src/PyZyDynamicSpecialPhrase.h | 57 - src/PyZyFullPinyinContext.cc | 254 -- src/PyZyFullPinyinContext.h | 57 - src/PyZyInputContext.cc | 80 - src/PyZyInputContext.h | 481 --- src/PyZyPhoneticContext.cc | 334 -- src/PyZyPhoneticContext.h | 164 - src/PyZyPhrase.h | 73 - src/PyZyPhraseArray.h | 34 - src/PyZyPhraseEditor.cc | 173 - src/PyZyPhraseEditor.h | 133 - src/PyZyPinyinArray.h | 74 - src/PyZyPinyinContext.cc | 211 - src/PyZyPinyinContext.h | 42 - src/PyZyPinyinParser.cc | 355 -- src/PyZyPinyinParser.h | 49 - src/PyZyPinyinParserTable.h | 8090 -------------------------------------- src/PyZySimpTradConverter.cc | 179 - src/PyZySimpTradConverter.h | 36 - src/PyZySimpTradConverterTable.h | 7427 ---------------------------------- src/PyZySpecialPhrase.cc | 31 - src/PyZySpecialPhrase.h | 47 - src/PyZySpecialPhraseTable.cc | 123 - src/PyZySpecialPhraseTable.h | 60 - src/PyZyString.h | 190 - src/PyZyTypes.h | 106 - src/PyZyUtil.h | 122 - src/PyZyVariant.cc | 72 - src/PyZyVariant.h | 99 - src/SimpTradConverter.cc | 179 + src/SimpTradConverter.h | 36 + src/SimpTradConverterTable.h | 7427 ++++++++++++++++++++++++++++++++++ src/SpecialPhrase.cc | 30 + src/SpecialPhrase.h | 47 + src/SpecialPhraseTable.cc | 125 + src/SpecialPhraseTable.h | 61 + src/String.h | 191 + src/Types.h | 108 + src/Util.h | 122 + src/Variant.cc | 72 + src/Variant.h | 99 + 85 files changed, 22261 insertions(+), 22241 deletions(-) create mode 100644 src/Bopomofo.h create mode 100644 src/BopomofoContext.cc create mode 100644 src/BopomofoContext.h create mode 100644 src/BopomofoKeyboard.h create mode 100644 src/Config.h create mode 100644 src/Const.h create mode 100644 src/Database.cc create mode 100644 src/Database.h create mode 100644 src/DoublePinyinContext.cc create mode 100644 src/DoublePinyinContext.h create mode 100644 src/DoublePinyinTable.h create mode 100644 src/DynamicSpecialPhrase.cc create mode 100644 src/DynamicSpecialPhrase.h create mode 100644 src/FullPinyinContext.cc create mode 100644 src/FullPinyinContext.h create mode 100644 src/InputContext.cc create mode 100644 src/InputContext.h create mode 100644 src/PhoneticContext.cc create mode 100644 src/PhoneticContext.h create mode 100644 src/Phrase.h create mode 100644 src/PhraseArray.h create mode 100644 src/PhraseEditor.cc create mode 100644 src/PhraseEditor.h create mode 100644 src/PinyinArray.h create mode 100644 src/PinyinContext.cc create mode 100644 src/PinyinContext.h create mode 100644 src/PinyinParser.cc create mode 100644 src/PinyinParser.h create mode 100644 src/PinyinParserTable.h delete mode 100644 src/PyZyBopomofo.h delete mode 100644 src/PyZyBopomofoContext.cc delete mode 100644 src/PyZyBopomofoContext.h delete mode 100644 src/PyZyBopomofoKeyboard.h delete mode 100644 src/PyZyConfig.h delete mode 100644 src/PyZyConst.h delete mode 100644 src/PyZyDatabase.cc delete mode 100644 src/PyZyDatabase.h delete mode 100644 src/PyZyDoublePinyinContext.cc delete mode 100644 src/PyZyDoublePinyinContext.h delete mode 100644 src/PyZyDoublePinyinTable.h delete mode 100644 src/PyZyDynamicSpecialPhrase.cc delete mode 100644 src/PyZyDynamicSpecialPhrase.h delete mode 100644 src/PyZyFullPinyinContext.cc delete mode 100644 src/PyZyFullPinyinContext.h delete mode 100644 src/PyZyInputContext.cc delete mode 100644 src/PyZyInputContext.h delete mode 100644 src/PyZyPhoneticContext.cc delete mode 100644 src/PyZyPhoneticContext.h delete mode 100644 src/PyZyPhrase.h delete mode 100644 src/PyZyPhraseArray.h delete mode 100644 src/PyZyPhraseEditor.cc delete mode 100644 src/PyZyPhraseEditor.h delete mode 100644 src/PyZyPinyinArray.h delete mode 100644 src/PyZyPinyinContext.cc delete mode 100644 src/PyZyPinyinContext.h delete mode 100644 src/PyZyPinyinParser.cc delete mode 100644 src/PyZyPinyinParser.h delete mode 100644 src/PyZyPinyinParserTable.h delete mode 100644 src/PyZySimpTradConverter.cc delete mode 100644 src/PyZySimpTradConverter.h delete mode 100644 src/PyZySimpTradConverterTable.h delete mode 100644 src/PyZySpecialPhrase.cc delete mode 100644 src/PyZySpecialPhrase.h delete mode 100644 src/PyZySpecialPhraseTable.cc delete mode 100644 src/PyZySpecialPhraseTable.h delete mode 100644 src/PyZyString.h delete mode 100644 src/PyZyTypes.h delete mode 100644 src/PyZyUtil.h delete mode 100644 src/PyZyVariant.cc delete mode 100644 src/PyZyVariant.h create mode 100644 src/SimpTradConverter.cc create mode 100644 src/SimpTradConverter.h create mode 100644 src/SimpTradConverterTable.h create mode 100644 src/SpecialPhrase.cc create mode 100644 src/SpecialPhrase.h create mode 100644 src/SpecialPhraseTable.cc create mode 100644 src/SpecialPhraseTable.h create mode 100644 src/String.h create mode 100644 src/Types.h create mode 100644 src/Util.h create mode 100644 src/Variant.cc create mode 100644 src/Variant.h diff --git a/configure.ac b/configure.ac index 97dbb1f..3e42f9f 100644 --- a/configure.ac +++ b/configure.ac @@ -24,7 +24,7 @@ m4_define([pyzy_released], [1]) m4_define([pyzy_major_version], [0]) m4_define([pyzy_minor_version], [0]) -m4_define([pyzy_micro_version], [7]) +m4_define([pyzy_micro_version], [8]) m4_define([pyzy_interface_age], [0]) m4_define([pyzy_binary_age], [m4_eval(100 * pyzy_minor_version + pyzy_micro_version)]) diff --git a/docs/Doxyfile.in b/docs/Doxyfile.in index 081bbb9..97860a5 100644 --- a/docs/Doxyfile.in +++ b/docs/Doxyfile.in @@ -574,9 +574,9 @@ WARN_LOGFILE = # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = @top_srcdir@/src/PyZyConst.h \ - @top_srcdir@/src/PyZyInputContext.h \ - @top_srcdir@/src/PyZyVariant.h +INPUT = @top_srcdir@/src/Const.h \ + @top_srcdir@/src/InputContext.h \ + @top_srcdir@/src/Variant.h # This tag can be used to specify the character encoding of the source files diff --git a/src/Bopomofo.h b/src/Bopomofo.h new file mode 100644 index 0000000..c376796 --- /dev/null +++ b/src/Bopomofo.h @@ -0,0 +1,81 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * Copyright (c) 2010 BYVoid + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_BOPOMOFO_H_ +#define __PYZY_BOPOMOFO_H_ + +#define MAX_BOPOMOFO_LEN (4) + +#define BOPOMOFO_ZERO (0) +#define BOPOMOFO_B (1) +#define BOPOMOFO_P (2) +#define BOPOMOFO_M (3) +#define BOPOMOFO_F (4) +#define BOPOMOFO_D (5) +#define BOPOMOFO_T (6) +#define BOPOMOFO_N (7) +#define BOPOMOFO_L (8) +#define BOPOMOFO_G (9) +#define BOPOMOFO_K (10) +#define BOPOMOFO_H (11) +#define BOPOMOFO_J (12) +#define BOPOMOFO_Q (13) +#define BOPOMOFO_X (14) +#define BOPOMOFO_ZH (15) +#define BOPOMOFO_CH (16) +#define BOPOMOFO_SH (17) +#define BOPOMOFO_R (18) +#define BOPOMOFO_Z (19) +#define BOPOMOFO_C (20) +#define BOPOMOFO_S (21) +#define BOPOMOFO_I (22) +#define BOPOMOFO_U (23) +#define BOPOMOFO_V (24) +#define BOPOMOFO_A (25) +#define BOPOMOFO_O (26) +#define BOPOMOFO_E (27) +#define BOPOMOFO_E2 (28) +#define BOPOMOFO_AI (29) +#define BOPOMOFO_EI (30) +#define BOPOMOFO_AO (31) +#define BOPOMOFO_OU (32) +#define BOPOMOFO_AN (33) +#define BOPOMOFO_EN (34) +#define BOPOMOFO_ANG (35) +#define BOPOMOFO_ENG (36) +#define BOPOMOFO_ER (37) +#define BOPOMOFO_TONE_2 (38) +#define BOPOMOFO_TONE_3 (39) +#define BOPOMOFO_TONE_4 (40) +#define BOPOMOFO_TONE_5 (41) + +const static wchar_t bopomofo_char[] = { + L'\0', L'ㄅ', L'ㄆ', L'ㄇ', L'ㄈ', L'ㄉ', L'ㄊ', L'ㄋ', L'ㄌ', L'ㄍ', L'ㄎ', + L'ㄏ', L'ㄐ', L'ㄑ', L'ㄒ', L'ㄓ', L'ㄔ', L'ㄕ', L'ㄖ', L'ㄗ', L'ㄘ', L'ㄙ', + + L'ㄧ', L'ㄨ', L'ㄩ', L'ㄚ', L'ㄛ', L'ㄜ', L'ㄝ', L'ㄞ', L'ㄟ', L'ㄠ', L'ㄡ', + L'ㄢ', L'ㄣ', L'ㄤ', L'ㄥ', L'ㄦ', + + L'ˊ', L'ˇ', L'ˋ', L'˙', +}; + +#endif /* __PYZY_BOPOMOFO_H_ */ diff --git a/src/BopomofoContext.cc b/src/BopomofoContext.cc new file mode 100644 index 0000000..0b8ff34 --- /dev/null +++ b/src/BopomofoContext.cc @@ -0,0 +1,505 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * Copyright (c) 2010 BYVoid + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#include "BopomofoContext.h" + +#include "Config.h" +#include "PinyinParser.h" +#include "SimpTradConverter.h" + +namespace PyZy { +#include "BopomofoKeyboard.h" + +const static char * bopomofo_select_keys[] = { + "1234567890", + "asdfghjkl;", + "1qaz2wsxed", + "asdfzxcvgb", + "1234qweras", + "aoeu;qjkix", + "aoeuhtnsid", + "aoeuidhtns", + "qweasdzxcr" +}; + +BopomofoContext::BopomofoContext (PhoneticContext::Observer *observer) + : PhoneticContext (observer), + m_bopomofo_schema (BOPOMOFO_KEYBOARD_STANDARD) +{ +} + +BopomofoContext::~BopomofoContext (void) +{ +} + +bool +BopomofoContext::insert (char ch) +{ + if (keyvalToBopomofo (ch) == BOPOMOFO_ZERO) { + return false; + } + + /* is full */ + if (G_UNLIKELY (m_text.length () >= MAX_PINYIN_LEN)) + return true; + + m_text.insert (m_cursor++, ch); + updateInputText (); + updateCursor (); + + if (G_UNLIKELY (!(m_config.option & PINYIN_INCOMPLETE_PINYIN))) { + updateSpecialPhrases (); + updatePinyin (); + } + else if (G_LIKELY (m_cursor <= m_pinyin_len + 2)) { + updateSpecialPhrases (); + updatePinyin (); + } + else { + if (updateSpecialPhrases ()) { + update (); + } + else { + updatePreeditText (); + updateAuxiliaryText (); + } + } + + return true; +} + +bool +BopomofoContext::removeCharBefore (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + m_cursor --; + m_text.erase (m_cursor, 1); + updateInputText (); + updateCursor (); + updateSpecialPhrases (); + updatePinyin (); + + return true; +} + +bool +BopomofoContext::removeCharAfter (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return false; + + m_text.erase (m_cursor, 1); + updateInputText (); + updatePreeditText (); + updateAuxiliaryText (); + + return true; +} + +bool +BopomofoContext::removeWordBefore (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + size_t cursor; + + if (G_UNLIKELY (m_cursor > m_pinyin_len)) { + cursor = m_pinyin_len; + } + else { + const Pinyin & p = *m_pinyin.back (); + cursor = m_cursor - p.len; + m_pinyin_len -= p.len; + m_pinyin.pop_back (); + } + + m_text.erase (cursor, m_cursor - cursor); + m_cursor = cursor; + updateInputText (); + updateCursor (); + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + return true; +} + +bool +BopomofoContext::removeWordAfter (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return false; + + m_text.erase (m_cursor, -1); + updateInputText (); + updatePreeditText (); + updateAuxiliaryText (); + return true; +} + +bool +BopomofoContext::moveCursorLeft (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + m_cursor --; + updateCursor (); + updateSpecialPhrases (); + updatePinyin (); + + return true; +} + +bool +BopomofoContext::moveCursorRight (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return false; + + m_cursor ++; + updateCursor (); + updateSpecialPhrases (); + updatePinyin (); + + return true; +} + +bool +BopomofoContext::moveCursorLeftByWord (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + if (G_UNLIKELY (m_cursor > m_pinyin_len)) { + m_cursor = m_pinyin_len; + return true; + } + + const Pinyin & p = *m_pinyin.back (); + m_cursor -= p.len; + m_pinyin_len -= p.len; + m_pinyin.pop_back (); + + updateCursor (); + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + + return true; +} + +bool +BopomofoContext::moveCursorRightByWord (void) +{ + return moveCursorToEnd (); +} + +bool +BopomofoContext::moveCursorToBegin (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + m_cursor = 0; + m_pinyin.clear (); + m_pinyin_len = 0; + + updateCursor (); + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + + return true; +} + +bool +BopomofoContext::moveCursorToEnd (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return false; + + m_cursor = m_text.length (); + updateCursor (); + updateSpecialPhrases (); + updatePinyin (); + + return true; +} + +void +BopomofoContext::updatePinyin (void) +{ + if (G_UNLIKELY (m_text.empty ())) { + m_pinyin.clear (); + m_pinyin_len = 0; + } + else { + std::wstring bopomofo; + for(String::iterator i = m_text.begin (); i != m_text.end (); ++i) { + bopomofo += bopomofo_char[keyvalToBopomofo (*i)]; + } + + m_pinyin_len = PinyinParser::parseBopomofo ( + bopomofo, // bopomofo + m_cursor, // text length + m_config.option, // option + m_pinyin, // result + MAX_PHRASE_LEN); // max result length + } + + updatePhraseEditor (); + update (); +} + +void +BopomofoContext::updateAuxiliaryText (void) +{ + if (G_UNLIKELY (m_text.empty () || !hasCandidate (0))) { + m_auxiliary_text = ""; + PhoneticContext::updateAuxiliaryText (); + return; + } + + m_buffer.clear (); + + if (m_selected_special_phrase.empty ()) { + size_t si = 0; + size_t m_text_len = m_text.length(); + for (size_t i = m_phrase_editor.cursor (); i < m_pinyin.size (); ++i) { + if (G_LIKELY (i != m_phrase_editor.cursor ())) + m_buffer << ','; + m_buffer << (unichar *)m_pinyin[i]->bopomofo; + for (size_t sj = 0; m_pinyin[i]->bopomofo[sj] == bopomofo_char[keyvalToBopomofo(m_text.c_str()[si])] ; si++,sj++); + + if (si < m_text_len) { + int ch = keyvalToBopomofo(m_text.c_str()[si]); + if (ch >= BOPOMOFO_TONE_2 && ch <= BOPOMOFO_TONE_5) { + m_buffer.appendUnichar(bopomofo_char[ch]); + ++si; + } + } + } + + for (String::iterator i = m_text.begin () + m_pinyin_len; i != m_text.end (); i++) { + if (m_cursor == (size_t)(i - m_text.begin ())) + m_buffer << '|'; + m_buffer.appendUnichar (bopomofo_char[keyvalToBopomofo (*i)]); + } + if (m_cursor == m_text.length ()) + m_buffer << '|'; + } + else { + if (m_cursor < m_text.size ()) { + m_buffer << '|' << textAfterCursor (); + } + } + + m_auxiliary_text = m_buffer; + PhoneticContext::updateAuxiliaryText (); +} + +void +BopomofoContext::commit (CommitType type) +{ + if (G_UNLIKELY (m_buffer.empty ())) + return; + + m_buffer.clear (); + + if (G_LIKELY (type == TYPE_CONVERTED)) { + m_buffer << m_phrase_editor.selectedString (); + + const char *p; + + if (m_selected_special_phrase.empty ()) { + p = textAfterPinyin (m_buffer.utf8Length ()); + } + else { + m_buffer << m_selected_special_phrase; + p = textAfterCursor (); + } + + while (*p != '\0') { + m_buffer.appendUnichar ((unichar)bopomofo_char[keyvalToBopomofo (*p++)]); + } + + m_phrase_editor.commit (); + } + else if (type == TYPE_PHONETIC) { + const char *p = m_text; + while (*p != '\0') { + m_buffer.appendUnichar ((unichar)bopomofo_char[keyvalToBopomofo (*p++)]); + } + } else { + m_buffer = m_text; + m_phrase_editor.reset (); + } + + resetContext (); + updateInputText (); + updateCursor (); + update (); + PhoneticContext::commitText (m_buffer); +} + +void +BopomofoContext::updatePreeditText (void) +{ + /* preedit text = selected phrases + highlight candidate + rest text */ + if (G_UNLIKELY (m_phrase_editor.empty () && m_text.empty ())) { + m_preedit_text.clear (); + PhoneticContext::updatePreeditText (); + return; + } + + size_t edit_begin_word = 0; + size_t edit_end_word = 0; + size_t edit_begin_byte = 0; + size_t edit_end_byte = 0; + + m_buffer.clear (); + m_preedit_text.clear (); + + /* add selected phrases */ + m_buffer << m_phrase_editor.selectedString (); + + if (G_UNLIKELY (! m_selected_special_phrase.empty ())) { + /* add selected special phrase */ + m_buffer << m_selected_special_phrase; + edit_begin_word = edit_end_word = m_buffer.utf8Length (); + edit_begin_byte = edit_end_byte = m_buffer.size (); + + /* append text after cursor */ + m_buffer << textAfterCursor (); + } + else { + edit_begin_word = m_buffer.utf8Length (); + edit_begin_byte = m_buffer.size (); + + if (hasCandidate (0)) { + size_t index = m_focused_candidate; + + if (index < m_special_phrases.size ()) { + m_buffer << m_special_phrases[index].c_str (); + edit_end_word = m_buffer.utf8Length (); + edit_end_byte = m_buffer.size (); + + /* append text after cursor */ + m_buffer << textAfterCursor (); + } + else { + const Phrase & candidate = m_phrase_editor.candidate (index - m_special_phrases.size ()); + if (m_text.size () == m_cursor) { + /* cursor at end */ + if (m_config.modeSimp) + m_buffer << candidate; + else + SimpTradConverter::simpToTrad (candidate, m_buffer); + edit_end_word = m_buffer.utf8Length (); + edit_end_byte = m_buffer.size (); + /* append rest text */ + for (const char *p=m_text.c_str() + m_pinyin_len; *p ;++p) { + m_buffer.appendUnichar(bopomofo_char[keyvalToBopomofo(*p)]); + } + } + else { + for (const char *p = m_text.c_str (); *p; ++p) { + if ((size_t) (p - m_text.c_str ()) == m_cursor) + m_buffer << ' '; + m_buffer.appendUnichar (bopomofo_char[keyvalToBopomofo (*p)]); + } + edit_end_word = m_buffer.utf8Length (); + edit_end_byte = m_buffer.size (); + } + } + } + else { + edit_end_word = m_buffer.utf8Length (); + edit_end_byte = m_buffer.size (); + for (const char *p=m_text.c_str () + m_pinyin_len; *p ; ++p) { + m_buffer.appendUnichar (bopomofo_char[keyvalToBopomofo (*p)]); + } + } + } + + m_preedit_text.selected_text = m_buffer.substr (0, edit_begin_byte); + m_preedit_text.candidate_text = m_buffer.substr (edit_begin_byte, edit_end_byte - edit_begin_byte); + m_preedit_text.rest_text = m_buffer.substr (edit_end_byte); + + PhoneticContext::updatePreeditText (); +} + +Variant +BopomofoContext::getProperty (PropertyName name) const +{ + if (name == PROPERTY_BOPOMOFO_SCHEMA) { + return Variant::fromUnsignedInt(m_bopomofo_schema); + } + return PhoneticContext::getProperty (name); +} + +bool +BopomofoContext::setProperty (PropertyName name, const Variant &variant) +{ + if (name == PROPERTY_BOPOMOFO_SCHEMA) { + if (variant.getType () != Variant::TYPE_UNSIGNED_INT) { + return false; + } + const unsigned int schema = variant.getUnsignedInt (); + if (schema >= BOPOMOFO_KEYBOARD_LAST) { + return false; + } + + m_bopomofo_schema = schema; + return true; + } + + return PhoneticContext::setProperty (name, variant); +} + +static int +keyboard_cmp (const void * p1, const void * p2) +{ + const int s1 = GPOINTER_TO_INT (p1); + const unsigned char *s2 = (const unsigned char *) p2; + return s1 - s2[0]; +} + +int +BopomofoContext::keyvalToBopomofo(int ch) +{ + const unsigned int keyboard = m_bopomofo_schema; + const unsigned char *brs; + brs = (const unsigned char *) std::bsearch (GINT_TO_POINTER (ch), + bopomofo_keyboard[keyboard], + G_N_ELEMENTS (bopomofo_keyboard[keyboard]), + sizeof(bopomofo_keyboard[keyboard][0]), + keyboard_cmp); + if (G_UNLIKELY (brs == NULL)) + return BOPOMOFO_ZERO; + return brs[1]; +} + +}; // namespace PyZy diff --git a/src/BopomofoContext.h b/src/BopomofoContext.h new file mode 100644 index 0000000..a6c3767 --- /dev/null +++ b/src/BopomofoContext.h @@ -0,0 +1,70 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * Copyright (c) 2010 BYVoid + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_BOPOMOFO_CONTEXT_H_ +#define __PYZY_BOPOMOFO_CONTEXT_H_ + +#include "PhoneticContext.h" + +namespace PyZy { + +class BopomofoContext : public PhoneticContext { + +public: + explicit BopomofoContext (PhoneticContext::Observer *observer); + virtual ~BopomofoContext (void); + + /* API of InputContext */ + virtual bool insert (char ch); + virtual void commit (CommitType type); + + virtual bool removeCharBefore (void); + virtual bool removeCharAfter (void); + virtual bool removeWordBefore (void); + virtual bool removeWordAfter (void); + + virtual bool moveCursorLeft (void); + virtual bool moveCursorRight (void); + virtual bool moveCursorLeftByWord (void); + virtual bool moveCursorRightByWord (void); + virtual bool moveCursorToBegin (void); + virtual bool moveCursorToEnd (void); + + virtual Variant getProperty (PropertyName name) const; + virtual bool setProperty (PropertyName name, const Variant &variant); + +protected: + virtual void updateAuxiliaryText (); + virtual void updatePinyin (); + virtual void updatePreeditText (); + + bool processBopomofo ( + unsigned int keyval, unsigned int keycode, unsigned int modifiers); + int keyvalToBopomofo(int ch); + +private: + unsigned int m_bopomofo_schema; +}; + +}; + +#endif // __PYZY_BOPOMOFO_CONTEXT_H_ diff --git a/src/BopomofoKeyboard.h b/src/BopomofoKeyboard.h new file mode 100644 index 0000000..99e2afd --- /dev/null +++ b/src/BopomofoKeyboard.h @@ -0,0 +1,204 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * Copyright (c) 2010 BYVoid + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_BOPOMOFO_KEYBOARD_H_ +#define __PYZY_BOPOMOFO_KEYBOARD_H_ + +#include "Bopomofo.h" + +static const unsigned char +bopomofo_keyboard[][41][2] = { + { + { ',' , BOPOMOFO_E2 }, + { '-' , BOPOMOFO_ER }, + { '.' , BOPOMOFO_OU }, + { '/' , BOPOMOFO_ENG }, + { '0' , BOPOMOFO_AN }, + { '1' , BOPOMOFO_B }, + { '2' , BOPOMOFO_D }, + { '3' , BOPOMOFO_TONE_3 }, + { '4' , BOPOMOFO_TONE_4 }, + { '5' , BOPOMOFO_ZH }, + { '6' , BOPOMOFO_TONE_2 }, + { '7' , BOPOMOFO_TONE_5 }, + { '8' , BOPOMOFO_A }, + { '9' , BOPOMOFO_AI }, + { ';' , BOPOMOFO_ANG }, + { 'a' , BOPOMOFO_M }, + { 'b' , BOPOMOFO_R }, + { 'c' , BOPOMOFO_H }, + { 'd' , BOPOMOFO_K }, + { 'e' , BOPOMOFO_G }, + { 'f' , BOPOMOFO_Q }, + { 'g' , BOPOMOFO_SH }, + { 'h' , BOPOMOFO_C }, + { 'i' , BOPOMOFO_O }, + { 'j' , BOPOMOFO_U }, + { 'k' , BOPOMOFO_E }, + { 'l' , BOPOMOFO_AO }, + { 'm' , BOPOMOFO_V }, + { 'n' , BOPOMOFO_S }, + { 'o' , BOPOMOFO_EI }, + { 'p' , BOPOMOFO_EN }, + { 'q' , BOPOMOFO_P }, + { 'r' , BOPOMOFO_J }, + { 's' , BOPOMOFO_N }, + { 't' , BOPOMOFO_CH }, + { 'u' , BOPOMOFO_I }, + { 'v' , BOPOMOFO_X }, + { 'w' , BOPOMOFO_T }, + { 'x' , BOPOMOFO_L }, + { 'y' , BOPOMOFO_Z }, + { 'z' , BOPOMOFO_F }, + }, + { + { '\'', BOPOMOFO_V }, + { ',' , BOPOMOFO_E2 }, + { '-' , BOPOMOFO_I }, + { '.' , BOPOMOFO_OU }, + { '/' , BOPOMOFO_ENG }, + { '0' , BOPOMOFO_AN }, + { '1' , BOPOMOFO_TONE_5 }, + { '2' , BOPOMOFO_B }, + { '3' , BOPOMOFO_D }, + { '6' , BOPOMOFO_ZH }, + { '8' , BOPOMOFO_A }, + { '9' , BOPOMOFO_AI }, + { ';' , BOPOMOFO_ANG }, + { '=' , BOPOMOFO_ER }, + { '[' , BOPOMOFO_U }, + { 'a' , BOPOMOFO_TONE_3 }, + { 'b' , BOPOMOFO_X }, + { 'c' , BOPOMOFO_L }, + { 'd' , BOPOMOFO_N }, + { 'e' , BOPOMOFO_T }, + { 'f' , BOPOMOFO_K }, + { 'g' , BOPOMOFO_Q }, + { 'h' , BOPOMOFO_SH }, + { 'i' , BOPOMOFO_O }, + { 'j' , BOPOMOFO_C }, + { 'k' , BOPOMOFO_E }, + { 'l' , BOPOMOFO_AO }, + { 'm' , BOPOMOFO_S }, + { 'n' , BOPOMOFO_R }, + { 'o' , BOPOMOFO_EI }, + { 'p' , BOPOMOFO_EN }, + { 'q' , BOPOMOFO_TONE_2 }, + { 'r' , BOPOMOFO_G }, + { 's' , BOPOMOFO_M }, + { 't' , BOPOMOFO_J }, + { 'u' , BOPOMOFO_Z }, + { 'v' , BOPOMOFO_H }, + { 'w' , BOPOMOFO_P }, + { 'x' , BOPOMOFO_F }, + { 'y' , BOPOMOFO_CH }, + { 'z' , BOPOMOFO_TONE_4 }, + }, + { + { '\'', BOPOMOFO_C }, + { ',' , BOPOMOFO_ZH }, + { '-' , BOPOMOFO_ENG }, + { '.' , BOPOMOFO_CH }, + { '/' , BOPOMOFO_SH }, + { '0' , BOPOMOFO_ANG }, + { '1' , BOPOMOFO_TONE_5 }, + { '2' , BOPOMOFO_TONE_2 }, + { '3' , BOPOMOFO_TONE_3 }, + { '4' , BOPOMOFO_TONE_4 }, + { '7' , BOPOMOFO_Q }, + { '8' , BOPOMOFO_AN }, + { '9' , BOPOMOFO_EN }, + { ';' , BOPOMOFO_Z }, + { '=' , BOPOMOFO_ER }, + { 'a' , BOPOMOFO_A }, + { 'b' , BOPOMOFO_B }, + { 'c' , BOPOMOFO_X }, + { 'd' , BOPOMOFO_D }, + { 'e' , BOPOMOFO_I }, + { 'f' , BOPOMOFO_F }, + { 'g' , BOPOMOFO_J }, + { 'h' , BOPOMOFO_H }, + { 'i' , BOPOMOFO_AI }, + { 'j' , BOPOMOFO_R }, + { 'k' , BOPOMOFO_K }, + { 'l' , BOPOMOFO_L }, + { 'm' , BOPOMOFO_M }, + { 'n' , BOPOMOFO_N }, + { 'o' , BOPOMOFO_O }, + { 'p' , BOPOMOFO_P }, + { 'q' , BOPOMOFO_EI }, + { 'r' , BOPOMOFO_E }, + { 's' , BOPOMOFO_S }, + { 't' , BOPOMOFO_T }, + { 'u' , BOPOMOFO_V }, + { 'v' , BOPOMOFO_G }, + { 'w' , BOPOMOFO_E2 }, + { 'x' , BOPOMOFO_U }, + { 'y' , BOPOMOFO_OU }, + { 'z' , BOPOMOFO_AO }, + }, + { + { ',' , BOPOMOFO_TONE_3 }, + { '-' , BOPOMOFO_H }, + { '.' , BOPOMOFO_TONE_4 }, + { '/' , BOPOMOFO_TONE_5 }, + { '0' , BOPOMOFO_K }, + { '1' , BOPOMOFO_B }, + { '2' , BOPOMOFO_P }, + { '3' , BOPOMOFO_M }, + { '4' , BOPOMOFO_F }, + { '5' , BOPOMOFO_D }, + { '6' , BOPOMOFO_T }, + { '7' , BOPOMOFO_N }, + { '8' , BOPOMOFO_L }, + { '9' , BOPOMOFO_G }, + { ';' , BOPOMOFO_AO }, + { 'a' , BOPOMOFO_I }, + { 'b' , BOPOMOFO_ENG }, + { 'c' , BOPOMOFO_EN }, + { 'd' , BOPOMOFO_V }, + { 'e' , BOPOMOFO_X }, + { 'f' , BOPOMOFO_A }, + { 'g' , BOPOMOFO_O }, + { 'h' , BOPOMOFO_E }, + { 'i' , BOPOMOFO_Z }, + { 'j' , BOPOMOFO_E2 }, + { 'k' , BOPOMOFO_AI }, + { 'l' , BOPOMOFO_EI }, + { 'm' , BOPOMOFO_TONE_2 }, + { 'n' , BOPOMOFO_ER }, + { 'o' , BOPOMOFO_C }, + { 'p' , BOPOMOFO_S }, + { 'q' , BOPOMOFO_J }, + { 'r' , BOPOMOFO_ZH }, + { 's' , BOPOMOFO_U }, + { 't' , BOPOMOFO_CH }, + { 'u' , BOPOMOFO_R }, + { 'v' , BOPOMOFO_ANG }, + { 'w' , BOPOMOFO_Q }, + { 'x' , BOPOMOFO_AN }, + { 'y' , BOPOMOFO_SH }, + { 'z' , BOPOMOFO_OU }, + }, +}; + +#endif // __PYZY_BOPOMOFO_KEYBOARD_H_ diff --git a/src/Config.h b/src/Config.h new file mode 100644 index 0000000..3738a5c --- /dev/null +++ b/src/Config.h @@ -0,0 +1,44 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_CONFIG_H_ +#define __PYZY_CONFIG_H_ + +#include "Const.h" + +namespace PyZy { + +struct Config { + Config (void) + : option (PINYIN_INCOMPLETE_PINYIN | + PINYIN_CORRECT_ALL | + PINYIN_FUZZY_ALL), + specialPhrases (true), + modeSimp (true) { } + + unsigned int option; + bool specialPhrases; + bool modeSimp; +}; + +}; // namespace PyZy + +#endif // __PYZY_CONFIG_H_ diff --git a/src/Const.h b/src/Const.h new file mode 100644 index 0000000..d8fb3cc --- /dev/null +++ b/src/Const.h @@ -0,0 +1,96 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_CONST_H_ +#define __PYZY_CONST_H_ + +/** + * PINYIN_INCOMPLETE_PINYIN + * + * Allows incomplete pinyin. + * If you enable it, you can get a candidate "你好"(nihao) from "nh" + */ +#define PINYIN_INCOMPLETE_PINYIN (1U << 0) + +#define PINYIN_CORRECT_GN_TO_NG (1U << 1) +#define PINYIN_CORRECT_MG_TO_NG (1U << 2) +#define PINYIN_CORRECT_IOU_TO_IU (1U << 3) +#define PINYIN_CORRECT_UEI_TO_UI (1U << 4) +#define PINYIN_CORRECT_UEN_TO_UN (1U << 5) +#define PINYIN_CORRECT_UE_TO_VE (1U << 6) +#define PINYIN_CORRECT_V_TO_U (1U << 7) +#define PINYIN_CORRECT_ON_TO_ONG (1U << 8) + +/** + * PINYIN_CORRECT_ALL + * + * Enables all typo correction rules which are supported by pyzy. + */ +#define PINYIN_CORRECT_ALL (0x000001fe) + +#define PINYIN_FUZZY_C_CH (1U << 9) +#define PINYIN_FUZZY_CH_C (1U << 10) +#define PINYIN_FUZZY_Z_ZH (1U << 11) +#define PINYIN_FUZZY_ZH_Z (1U << 12) +#define PINYIN_FUZZY_S_SH (1U << 13) +#define PINYIN_FUZZY_SH_S (1U << 14) +#define PINYIN_FUZZY_L_N (1U << 15) +#define PINYIN_FUZZY_N_L (1U << 16) +#define PINYIN_FUZZY_F_H (1U << 17) +#define PINYIN_FUZZY_H_F (1U << 18) +#define PINYIN_FUZZY_L_R (1U << 19) +#define PINYIN_FUZZY_R_L (1U << 20) +#define PINYIN_FUZZY_K_G (1U << 21) +#define PINYIN_FUZZY_G_K (1U << 22) + +#define PINYIN_FUZZY_AN_ANG (1U << 23) +#define PINYIN_FUZZY_ANG_AN (1U << 24) +#define PINYIN_FUZZY_EN_ENG (1U << 25) +#define PINYIN_FUZZY_ENG_EN (1U << 26) +#define PINYIN_FUZZY_IN_ING (1U << 27) +#define PINYIN_FUZZY_ING_IN (1U << 28) +#define PINYIN_FUZZY_IAN_IANG PINYIN_FUZZY_AN_ANG +#define PINYIN_FUZZY_IANG_IAN PINYIN_FUZZY_ANG_AN +#define PINYIN_FUZZY_UAN_UANG PINYIN_FUZZY_AN_ANG +#define PINYIN_FUZZY_UANG_UAN PINYIN_FUZZY_ANG_AN + +/** + * PINYIN_CORRECT_ALL + * + * Enables all pinyin correction rules which are supported by pyzy. + */ +#define PINYIN_FUZZY_ALL (0x1ffffe00) + +#define DOUBLE_PINYIN_KEYBOARD_MSPY (0) +#define DOUBLE_PINYIN_KEYBOARD_ZRM (1) +#define DOUBLE_PINYIN_KEYBOARD_ABC (2) +#define DOUBLE_PINYIN_KEYBOARD_ZGPY (3) +#define DOUBLE_PINYIN_KEYBOARD_PYJJ (4) +#define DOUBLE_PINYIN_KEYBOARD_XHE (5) +#define DOUBLE_PINYIN_KEYBOARD_LAST (6) /** Number of DoublePinyinSchema */ + +#define BOPOMOFO_KEYBOARD_STANDARD (0) +#define BOPOMOFO_KEYBOARD_CHING_YEAH (1) +#define BOPOMOFO_KEYBOARD_ETAN (2) +#define BOPOMOFO_KEYBOARD_IBM (3) +#define BOPOMOFO_KEYBOARD_LAST (4) /** Number of BopomofoSchema */ + +#endif // __PYZY_CONST_H_ diff --git a/src/Database.cc b/src/Database.cc new file mode 100644 index 0000000..436ca09 --- /dev/null +++ b/src/Database.cc @@ -0,0 +1,742 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#include "Database.h" + +#include +#include +#include + +#include "Config.h" +#include "PinyinArray.h" +#include "Util.h" + + +namespace PyZy { + +#define DB_CACHE_SIZE "5000" +#define DB_INDEX_SIZE (3) +/* define columns */ +#define DB_COLUMN_USER_FREQ (0) +#define DB_COLUMN_PHRASE (1) +#define DB_COLUMN_FREQ (2) +#define DB_COLUMN_S0 (3) + +#define DB_PREFETCH_LEN (6) +#define DB_BACKUP_TIMEOUT (60) + +#define USER_DICTIONARY_FILE "user-1.0.db" + + +std::unique_ptr Database::m_instance; + +class Conditions : public std::vector { +public: + Conditions (void) : std::vector (1) {} + + void double_ (void) { + size_t i = size (); + // To avoid a invalid referece caused by a memory reallocation, which + // may occur on push_back, we call reserve here. + reserve (i * 2); + do { + push_back (at (--i)); + } while (i > 0); + } + + void triple (void) { + size_t i = size (); + // To avoid a invalid referece caused by a memory reallocation, which + // may occur on push_back, we call reserve here. + reserve (i * 3); + do { + const std::string & value = at (--i); + push_back (value); + push_back (value); + } while (i > 0); + } + + void appendVPrintf (size_t begin, size_t end, const char *fmt, va_list args) { + char str[64]; + g_vsnprintf (str, sizeof(str), fmt, args); + for (size_t i = begin; i < end; i++) { + at (i) += str; + } + } + + void appendPrintf (size_t begin, size_t end, const char *fmt, ...) { + va_list args; + va_start (args, fmt); + appendVPrintf (begin, end, fmt, args); + va_end (args); + } +}; + +class SQLStmt { +public: + SQLStmt (sqlite3 *db) + : m_db (db), m_stmt (NULL) { + g_assert (m_db != NULL); + } + + ~SQLStmt () { + if (m_stmt != NULL) { + if (sqlite3_finalize (m_stmt) != SQLITE_OK) { + g_warning ("destroy sqlite stmt failed!"); + } + } + } + + bool prepare (const String &sql) { + if (sqlite3_prepare (m_db, + sql.c_str (), + sql.size (), + &m_stmt, + NULL) != SQLITE_OK) { + g_warning ("parse sql failed!\n %s", sql.c_str ()); + return false; + } + + return true; + } + + bool step (void) { + switch (sqlite3_step (m_stmt)) { + case SQLITE_ROW: + return true; + case SQLITE_DONE: + return false; + default: + g_warning ("sqlites step error!"); + return false; + } + } + + const char *columnText (int col) { + return (const char *) sqlite3_column_text (m_stmt, col); + } + + int columnInt (int col) { + return sqlite3_column_int (m_stmt, col); + } + +private: + sqlite3 *m_db; + sqlite3_stmt *m_stmt; +}; + +Query::Query (const PinyinArray & pinyin, + size_t pinyin_begin, + size_t pinyin_len, + unsigned int option) + : m_pinyin (pinyin), + m_pinyin_begin (pinyin_begin), + m_pinyin_len (pinyin_len), + m_option (option) +{ + g_assert (m_pinyin.size () >= pinyin_begin + pinyin_len); +} + +Query::~Query (void) +{ +} + +int +Query::fill (PhraseArray &phrases, int count) +{ + int row = 0; + + while (m_pinyin_len > 0) { + if (G_LIKELY (m_stmt.get () == NULL)) { + m_stmt = Database::instance ().query (m_pinyin, m_pinyin_begin, m_pinyin_len, -1, m_option); + g_assert (m_stmt.get () != NULL); + } + + while (m_stmt->step ()) { + Phrase phrase; + + g_strlcpy (phrase.phrase, + m_stmt->columnText (DB_COLUMN_PHRASE), + sizeof (phrase.phrase)); + phrase.freq = m_stmt->columnInt (DB_COLUMN_FREQ); + phrase.user_freq = m_stmt->columnInt (DB_COLUMN_USER_FREQ); + phrase.len = m_pinyin_len; + + for (size_t i = 0, column = DB_COLUMN_S0; i < m_pinyin_len; i++) { + phrase.pinyin_id[i].sheng = m_stmt->columnInt (column++); + phrase.pinyin_id[i].yun = m_stmt->columnInt (column++); + } + + phrases.push_back (phrase); + row ++; + if (G_UNLIKELY (row == count)) { + return row; + } + } + + m_stmt.reset (); + m_pinyin_len --; + } + + return row; +} + +Database::Database (const std::string &user_data_dir) + : m_db (NULL) + , m_timeout_id (0) + , m_timer (g_timer_new ()) + , m_user_data_dir (user_data_dir) +{ + open (); +} + +Database::~Database (void) +{ + g_timer_destroy (m_timer); + if (m_timeout_id != 0) { + saveUserDB (); + g_source_remove (m_timeout_id); + } + if (m_db) { + if (sqlite3_close (m_db) != SQLITE_OK) { + g_warning ("close sqlite database failed!"); + } + } +} + +inline bool +Database::executeSQL (const char *sql, sqlite3 *db) +{ + if (db == NULL) + db = m_db; + + char *errmsg = NULL; + if (sqlite3_exec (db, sql, NULL, NULL, &errmsg) != SQLITE_OK) { + g_warning ("%s: %s", errmsg, sql); + sqlite3_free (errmsg); + return false; + } + return true; +} + +bool +Database::open (void) +{ + do { +#if (SQLITE_VERSION_NUMBER >= 3006000) + sqlite3_initialize (); +#endif + static const char * maindb [] = { + PKGDATADIR"/db/local.db", + PKGDATADIR"/db/open-phrase.db", + PKGDATADIR"/db/android.db", + "main.db", + }; + + size_t i; + for (i = 0; i < G_N_ELEMENTS (maindb); i++) { + if (!g_file_test(maindb[i], G_FILE_TEST_IS_REGULAR)) + continue; + if (sqlite3_open_v2 (maindb[i], &m_db, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL) == SQLITE_OK) { + break; + } + } + + if (i == G_N_ELEMENTS (maindb)) { + g_warning ("can not open main database"); + break; + } + + m_sql.clear (); + + /* Set synchronous=OFF, write user database will become much faster. + * It will cause user database corrupted, if the operatering system + * crashes or computer loses power. + * */ + m_sql << "PRAGMA synchronous=OFF;\n"; + + /* Set the cache size for better performance */ + m_sql << "PRAGMA cache_size=" DB_CACHE_SIZE ";\n"; + + /* Using memory for temp store */ + // m_sql << "PRAGMA temp_store=MEMORY;\n"; + + /* Set journal mode */ + // m_sql << "PRAGMA journal_mode=PERSIST;\n"; + + /* Using EXCLUSIVE locking mode on databases + * for better performance */ + m_sql << "PRAGMA locking_mode=EXCLUSIVE;\n"; + if (!executeSQL (m_sql)) + break; + + loadUserDB (); +#if 0 + /* Attach user database */ + + g_mkdir_with_parents (m_user_data_dir, 0750); + m_buffer.clear (); + m_buffer << m_user_data_dir << G_DIR_SEPARATOR_S << USER_DICTIONARY_FILE; + + retval = openUserDB (m_buffer); + if (!retval) { + g_warning ("Can not open user database %s", m_buffer.c_str ()); + if (!openUserDB (":memory:")) + goto _failed; + } +#endif + + /* prefetch some tables */ + // prefetch (); + + return true; + } while (0); + + if (m_db) { + sqlite3_close (m_db); + m_db = NULL; + } + return false; +} + +bool +Database::loadUserDB (void) +{ + sqlite3 *userdb = NULL; + do { + /* Attach user database */ + m_sql.printf ("ATTACH DATABASE \":memory:\" AS userdb;"); + if (!executeSQL (m_sql)) + break; + + g_mkdir_with_parents (m_user_data_dir, 0750); + m_buffer.clear (); + m_buffer << m_user_data_dir << G_DIR_SEPARATOR_S << USER_DICTIONARY_FILE; + + unsigned int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE; + if (sqlite3_open_v2 (m_buffer, &userdb, flags, NULL) != SQLITE_OK && + sqlite3_open_v2 (":memory:", &userdb, flags, NULL) != SQLITE_OK) + break; + + m_sql = "BEGIN TRANSACTION;\n"; + /* create desc table*/ + m_sql << "CREATE TABLE IF NOT EXISTS desc (name PRIMARY KEY, value TEXT);\n"; + m_sql << "INSERT OR IGNORE INTO desc VALUES " << "('version', '1.2.0');\n" + << "INSERT OR IGNORE INTO desc VALUES " << "('uuid', '" << UUID () << "');\n" + << "INSERT OR IGNORE INTO desc VALUES " << "('hostname', '" << Hostname () << "');\n" + << "INSERT OR IGNORE INTO desc VALUES " << "('username', '" << Env ("USERNAME") << "');\n" + << "INSERT OR IGNORE INTO desc VALUES " << "('create-time', datetime());\n" + << "INSERT OR IGNORE INTO desc VALUES " << "('attach-time', datetime());\n"; + + /* create phrase tables */ + for (size_t i = 0; i < MAX_PHRASE_LEN; i++) { + m_sql.appendPrintf ("CREATE TABLE IF NOT EXISTS py_phrase_%d (user_freq, phrase TEXT, freq INTEGER ", i); + for (size_t j = 0; j <= i; j++) + m_sql.appendPrintf (",s%d INTEGER, y%d INTEGER", j, j); + m_sql << ");\n"; + } + + /* create index */ + m_sql << "CREATE UNIQUE INDEX IF NOT EXISTS " << "index_0_0 ON py_phrase_0(s0,y0,phrase);\n"; + m_sql << "CREATE UNIQUE INDEX IF NOT EXISTS " << "index_1_0 ON py_phrase_1(s0,y0,s1,y1,phrase);\n"; + m_sql << "CREATE INDEX IF NOT EXISTS " << "index_1_1 ON py_phrase_1(s0,s1,y1);\n"; + for (size_t i = 2; i < MAX_PHRASE_LEN; i++) { + m_sql << "CREATE UNIQUE INDEX IF NOT EXISTS " << "index_" << i << "_0 ON py_phrase_" << i + << "(s0,y0"; + for (size_t j = 1; j <= i; j++) + m_sql << ",s" << j << ",y" << j; + m_sql << ",phrase);\n"; + m_sql << "CREATE INDEX IF NOT EXISTS " << "index_" << i << "_1 ON py_phrase_" << i << "(s0,s1,s2,y2);\n"; + } + m_sql << "COMMIT;"; + + if (!executeSQL (m_sql, userdb)) + break; + + sqlite3_backup *backup = sqlite3_backup_init (m_db, "userdb", userdb, "main"); + + if (backup) { + sqlite3_backup_step (backup, -1); + sqlite3_backup_finish (backup); + } + + sqlite3_close (userdb); + return true; + } while (0); + + if (userdb) + sqlite3_close (userdb); + return false; +} + +bool +Database::saveUserDB (void) +{ + g_mkdir_with_parents (m_user_data_dir, 0750); + m_buffer.clear (); + m_buffer << m_user_data_dir << G_DIR_SEPARATOR_S << USER_DICTIONARY_FILE; + + String tmpfile = m_buffer + "-tmp"; + sqlite3 *userdb = NULL; + do { + /* remove tmpfile if it exist */ + g_unlink (tmpfile); + + unsigned int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE; + if (sqlite3_open_v2 (tmpfile, &userdb, flags, NULL) != SQLITE_OK) + break; + + sqlite3_backup *backup = sqlite3_backup_init (userdb, "main", m_db, "userdb"); + + if (backup == NULL) + break; + + sqlite3_backup_step (backup, -1); + sqlite3_backup_finish (backup); + sqlite3_close (userdb); + + g_rename (tmpfile, m_buffer); + + return true; + } while (0); + + if (userdb != NULL) + sqlite3_close (userdb); + g_unlink (tmpfile); + + return false; +} + +void +Database::prefetch (void) +{ + m_sql.clear (); + for (size_t i = 0; i < DB_PREFETCH_LEN; i++) + m_sql << "SELECT * FROM py_phrase_" << i << ";\n"; + + // g_debug ("prefetching ..."); + executeSQL (m_sql); + // g_debug ("done"); +} + +// This function should be return gboolean because g_timeout_add_seconds requires it. +gboolean +Database::timeoutCallback (void * data) +{ + Database *self = static_cast (data); + + /* Get elapsed time since last modification of database. */ + unsigned int elapsed = (unsigned int)g_timer_elapsed (self->m_timer, NULL); + + if (elapsed >= DB_BACKUP_TIMEOUT && + self->saveUserDB ()) { + self->m_timeout_id = 0; + return false; + } + + return true; +} + +void +Database::modified (void) +{ + /* Restart the timer */ + g_timer_start (m_timer); + + if (m_timeout_id != 0) + return; + + m_timeout_id = g_timeout_add_seconds (DB_BACKUP_TIMEOUT, + Database::timeoutCallback, + static_cast (this)); +} + +inline static bool +pinyin_option_check_sheng (unsigned int option, unsigned int id, unsigned int fid) +{ + switch ((id << 16) | fid) { + case (PINYIN_ID_C << 16) | PINYIN_ID_CH: + return (option & PINYIN_FUZZY_C_CH); + case (PINYIN_ID_CH << 16) | PINYIN_ID_C: + return (option & PINYIN_FUZZY_CH_C); + case (PINYIN_ID_Z << 16) | PINYIN_ID_ZH: + return (option & PINYIN_FUZZY_Z_ZH); + case (PINYIN_ID_ZH << 16) | PINYIN_ID_Z: + return (option & PINYIN_FUZZY_ZH_Z); + case (PINYIN_ID_S << 16) | PINYIN_ID_SH: + return (option & PINYIN_FUZZY_S_SH); + case (PINYIN_ID_SH << 16) | PINYIN_ID_S: + return (option & PINYIN_FUZZY_SH_S); + case (PINYIN_ID_L << 16) | PINYIN_ID_N: + return (option & PINYIN_FUZZY_L_N); + case (PINYIN_ID_N << 16) | PINYIN_ID_L: + return (option & PINYIN_FUZZY_N_L); + case (PINYIN_ID_F << 16) | PINYIN_ID_H: + return (option & PINYIN_FUZZY_F_H); + case (PINYIN_ID_H << 16) | PINYIN_ID_F: + return (option & PINYIN_FUZZY_H_F); + case (PINYIN_ID_L << 16) | PINYIN_ID_R: + return (option & PINYIN_FUZZY_L_R); + case (PINYIN_ID_R << 16) | PINYIN_ID_L: + return (option & PINYIN_FUZZY_R_L); + case (PINYIN_ID_K << 16) | PINYIN_ID_G: + return (option & PINYIN_FUZZY_K_G); + case (PINYIN_ID_G << 16) | PINYIN_ID_K: + return (option & PINYIN_FUZZY_G_K); + default: return false; + } +} + +inline static bool +pinyin_option_check_yun (unsigned int option, unsigned int id, unsigned int fid) +{ + switch ((id << 16) | fid) { + case (PINYIN_ID_AN << 16) | PINYIN_ID_ANG: + return (option & PINYIN_FUZZY_AN_ANG); + case (PINYIN_ID_ANG << 16) | PINYIN_ID_AN: + return (option & PINYIN_FUZZY_ANG_AN); + case (PINYIN_ID_EN << 16) | PINYIN_ID_ENG: + return (option & PINYIN_FUZZY_EN_ENG); + case (PINYIN_ID_ENG << 16) | PINYIN_ID_EN: + return (option & PINYIN_FUZZY_ENG_EN); + case (PINYIN_ID_IN << 16) | PINYIN_ID_ING: + return (option & PINYIN_FUZZY_IN_ING); + case (PINYIN_ID_ING << 16) | PINYIN_ID_IN: + return (option & PINYIN_FUZZY_ING_IN); + case (PINYIN_ID_IAN << 16) | PINYIN_ID_IANG: + return (option & PINYIN_FUZZY_IAN_IANG); + case (PINYIN_ID_IANG << 16) | PINYIN_ID_IAN: + return (option & PINYIN_FUZZY_IANG_IAN); + case (PINYIN_ID_UAN << 16) | PINYIN_ID_UANG: + return (option & PINYIN_FUZZY_UAN_UANG); + case (PINYIN_ID_UANG << 16) | PINYIN_ID_UAN: + return (option & PINYIN_FUZZY_UANG_UAN); + default: return false; + } +} + +SQLStmtPtr +Database::query (const PinyinArray &pinyin, + size_t pinyin_begin, + size_t pinyin_len, + int m, + unsigned int option) +{ + g_assert (pinyin_begin < pinyin.size ()); + g_assert (pinyin_len <= pinyin.size () - pinyin_begin); + g_assert (pinyin_len <= MAX_PHRASE_LEN); + + /* prepare sql */ + Conditions conditions; + + for (size_t i = 0; i < pinyin_len; i++) { + const Pinyin *p; + bool fs1, fs2; + p = pinyin[i + pinyin_begin]; + + fs1 = pinyin_option_check_sheng (option, p->pinyin_id[0].sheng, p->pinyin_id[1].sheng); + fs2 = pinyin_option_check_sheng (option, p->pinyin_id[0].sheng, p->pinyin_id[2].sheng); + + if (G_LIKELY (i > 0)) + conditions.appendPrintf (0, conditions.size (), + " AND "); + + if (G_UNLIKELY (fs1 || fs2)) { + if (G_LIKELY (i < DB_INDEX_SIZE)) { + if (fs1 && fs2 == 0) { + conditions.double_ (); + conditions.appendPrintf (0, conditions.size () >> 1, + "s%d=%d", i, p->pinyin_id[0].sheng); + conditions.appendPrintf (conditions.size () >> 1, conditions.size (), + "s%d=%d", i, p->pinyin_id[1].sheng); + } + else if (fs1 == 0 && fs2) { + conditions.double_ (); + conditions.appendPrintf (0, conditions.size () >> 1, + "s%d=%d", i, p->pinyin_id[0].sheng); + conditions.appendPrintf (conditions.size () >> 1, conditions.size (), + "s%d=%d", i, p->pinyin_id[2].sheng); + } + else { + size_t len = conditions.size (); + conditions.triple (); + conditions.appendPrintf (0, len, + "s%d=%d", i, p->pinyin_id[0].sheng); + conditions.appendPrintf (len, len << 1, + "s%d=%d", i, p->pinyin_id[1].sheng); + conditions.appendPrintf (len << 1, conditions.size (), + "s%d=%d", i, p->pinyin_id[2].sheng); + } + } + else { + if (fs1 && fs2 == 0) { + conditions.appendPrintf (0, conditions.size (), + "s%d IN (%d,%d)", i, p->pinyin_id[0].sheng, p->pinyin_id[1].sheng); + } + else if (fs1 == 0 && fs2) { + conditions.appendPrintf (0, conditions.size (), + "s%d IN (%d,%d)", i, p->pinyin_id[0].sheng, p->pinyin_id[2].sheng); + } + else { + conditions.appendPrintf (0, conditions.size (), + "s%d IN (%d,%d,%d)", i, p->pinyin_id[0].sheng, p->pinyin_id[1].sheng, p->pinyin_id[2].sheng); + } + } + } + else { + conditions.appendPrintf (0, conditions.size (), + "s%d=%d", i, p->pinyin_id[0].sheng); + } + + if (p->pinyin_id[0].yun != PINYIN_ID_ZERO) { + if (pinyin_option_check_yun (option, p->pinyin_id[0].yun, p->pinyin_id[1].yun)) { + if (G_LIKELY (i < DB_INDEX_SIZE)) { + conditions.double_ (); + conditions.appendPrintf (0, conditions.size () >> 1, + " AND y%d=%d", i, p->pinyin_id[0].yun); + conditions.appendPrintf (conditions.size () >> 1, conditions.size (), + " and y%d=%d", i, p->pinyin_id[1].yun); + } + else { + conditions.appendPrintf (0, conditions.size (), + " AND y%d IN (%d,%d)", i, p->pinyin_id[0].yun, p->pinyin_id[1].yun); + } + } + else { + conditions.appendPrintf (0, conditions.size (), + " AND y%d=%d", i, p->pinyin_id[0].yun); + } + } + } + + + m_buffer.clear (); + for (size_t i = 0; i < conditions.size (); i++) { + if (G_UNLIKELY (i == 0)) + m_buffer << " (" << conditions[i] << ")\n"; + else + m_buffer << " OR (" << conditions[i] << ")\n"; + } + + m_sql.clear (); + int id = pinyin_len - 1; + m_sql << "SELECT * FROM (" + "SELECT 0 AS user_freq, * FROM main.py_phrase_" << id << " WHERE " << m_buffer << " UNION ALL " + "SELECT * FROM userdb.py_phrase_" << id << " WHERE " << m_buffer << ") " + "GROUP BY phrase ORDER BY user_freq DESC, freq DESC"; + if (m > 0) + m_sql << " LIMIT " << m; +#if 0 + g_debug ("sql =\n%s", m_sql.c_str ()); +#endif + + /* query database */ + SQLStmtPtr stmt (new SQLStmt (m_db)); + + if (!stmt->prepare (m_sql)) { + stmt.reset (); + } + + return stmt; +} + +inline void +Database::phraseWhereSql (const Phrase & p, String & sql) +{ + sql << " WHERE"; + sql << " s0=" << p.pinyin_id[0].sheng + << " AND y0=" << p.pinyin_id[0].yun; + for (size_t i = 1; i < p.len; i++) { + sql << " AND s" << i << '=' << p.pinyin_id[i].sheng + << " AND y" << i << '=' << p.pinyin_id[i].yun; + } + sql << " AND phrase=\"" << p.phrase << "\""; + +} + +inline void +Database::phraseSql (const Phrase & p, String & sql) +{ + sql << "INSERT OR IGNORE INTO userdb.py_phrase_" << p.len - 1 + << " VALUES(" << 0 /* user_freq */ + << ",\"" << p.phrase << '"' /* phrase */ + << ',' << p.freq; /* freq */ + + for (size_t i = 0; i < p.len; i++) { + sql << ',' << p.pinyin_id[i].sheng << ',' << p.pinyin_id[i].yun; + } + + sql << ");\n"; + + sql << "UPDATE userdb.py_phrase_" << p.len - 1 + << " SET user_freq=user_freq+1"; + + phraseWhereSql (p, sql); + sql << ";\n"; +} + +void +Database::commit (const PhraseArray &phrases) +{ + Phrase phrase = {""}; + + m_sql = "BEGIN TRANSACTION;\n"; + for (size_t i = 0; i < phrases.size (); i++) { + phrase += phrases[i]; + phraseSql (phrases[i], m_sql); + } + if (phrases.size () > 1) + phraseSql (phrase, m_sql); + m_sql << "COMMIT;\n"; + + executeSQL (m_sql); + modified (); +} + +void +Database::remove (const Phrase & phrase) +{ + m_sql = "BEGIN TRANSACTION;\n"; + m_sql << "DELETE FROM userdb.py_phrase_" << phrase.len - 1; + phraseWhereSql (phrase, m_sql); + m_sql << ";\n"; + m_sql << "COMMIT;\n"; + + executeSQL (m_sql); + modified (); +} + +void +Database::init (const std::string & user_data_dir) +{ + if (m_instance.get () == NULL) { + m_instance.reset (new Database (user_data_dir)); + } +} + +void +Database::finalize (void) +{ + m_instance.reset (NULL); +} + +}; // namespace PyZy diff --git a/src/Database.h b/src/Database.h new file mode 100644 index 0000000..95d7841 --- /dev/null +++ b/src/Database.h @@ -0,0 +1,114 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_DATABASE_H_ +#define __PYZY_DATABASE_H_ + +#include "PhraseArray.h" +#include "String.h" +#include "Types.h" +#include "Util.h" + +typedef struct sqlite3 sqlite3; + +namespace PyZy { + +class PinyinArray; +struct Phrase; + +class SQLStmt; +typedef std::shared_ptr SQLStmtPtr; + +class Database; + +class Query { +public: + Query (const PinyinArray & pinyin, + size_t pinyin_begin, + size_t pinyin_len, + unsigned int option); + ~Query (void); + int fill (PhraseArray &phrases, int count); + +private: + const PinyinArray & m_pinyin; + size_t m_pinyin_begin; + size_t m_pinyin_len; + unsigned int m_option; + SQLStmtPtr m_stmt; +}; + +class Database { +public: + ~Database (); +protected: + Database (const std::string & user_data_dir); + +public: + static void init (const std::string & data_dir); + + SQLStmtPtr query (const PinyinArray & pinyin, + size_t pinyin_begin, + size_t pinyin_len, + int m, + unsigned int option); + void commit (const PhraseArray & phrases); + void remove (const Phrase & phrase); + + void conditionsDouble (void); + void conditionsTriple (void); + + static void finalize (void); + static Database & instance (void) + { + if (m_instance == NULL) { + g_error ("Error: Please call InputContext::init () !"); + } + return *m_instance; + } + +private: + bool open (void); + bool loadUserDB (void); + bool saveUserDB (void); + void prefetch (void); + void phraseSql (const Phrase & p, String & sql); + void phraseWhereSql (const Phrase & p, String & sql); + bool executeSQL (const char *sql, sqlite3 *db = NULL); + void modified (void); + static gboolean timeoutCallback (void * data); + +private: + sqlite3 *m_db; /* sqlite3 database */ + + String m_sql; /* sql stmt */ + String m_buffer; /* temp buffer */ + unsigned int m_timeout_id; + GTimer *m_timer; + String m_user_data_dir; + +private: + static std::unique_ptr m_instance; +}; + +}; // namespace PyZy + +#endif // __PYZY_DATABASE_H_ diff --git a/src/DoublePinyinContext.cc b/src/DoublePinyinContext.cc new file mode 100644 index 0000000..662a5bb --- /dev/null +++ b/src/DoublePinyinContext.cc @@ -0,0 +1,520 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#include "DoublePinyinContext.h" + +#include "Config.h" +#include "PinyinParser.h" + +namespace PyZy { + +#define DEFINE_DOUBLE_PINYIN_TABLES +#include "DoublePinyinTable.h" + +/* + * c in 'a' ... 'z' => id = c - 'a' + * c == ';' => id = 26 + * else => id = -1 + */ +#define ID(c) \ + ((c >= 'a' && c <= 'z') ? c - 'a' : (c == ';' ? 26 : -1)) + +#define ID_TO_SHENG(id) \ + (double_pinyin_map[m_double_pinyin_schema].sheng[id]) +#define ID_TO_YUNS(id) \ + (double_pinyin_map[m_double_pinyin_schema].yun[id]) + +#define IS_ALPHA(c) \ + ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) + +DoublePinyinContext::DoublePinyinContext (PhoneticContext::Observer *observer) + : PinyinContext (observer), + m_double_pinyin_schema (DOUBLE_PINYIN_KEYBOARD_MSPY) +{ +} + +DoublePinyinContext::~DoublePinyinContext () +{ +} + +bool +DoublePinyinContext::insert (char ch) +{ + const int id = ID (ch); + + if (id == -1) { + /* it is not available ch */ + return false; + } + + if (G_UNLIKELY (m_text.empty () && + ID_TO_SHENG (id) == PINYIN_ID_VOID)) { + return false; + } + + /* is full */ + if (G_UNLIKELY (m_text.length () >= MAX_PINYIN_LEN)) + return true; + + m_text.insert (m_cursor++, ch); + + if (m_cursor > m_pinyin_len + 2 || updatePinyin (false) == false) { + if (!IS_ALPHA (ch)) { + m_text.erase (--m_cursor, 1); + return false; + } + else { + updateInputText (); + updateCursor (); + if (updateSpecialPhrases ()) { + update (); + } + else { + updatePreeditText (); + updateAuxiliaryText (); + } + return true; + } + } + else { + updateInputText (); + updateCursor (); + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + return true; + } +} + +bool +DoublePinyinContext::removeCharBefore (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + m_cursor --; + m_text.erase (m_cursor, 1); + updateInputText (); + updateCursor (); + + if (updatePinyin (false)) { + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + } + else { + if (updateSpecialPhrases ()) { + update (); + } + else { + updatePreeditText (); + updateAuxiliaryText (); + } + } + return true; +} + +bool +DoublePinyinContext::removeCharAfter (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return false; + + m_text.erase (m_cursor, 1); + updateInputText (); + + if (updateSpecialPhrases ()) { + update (); + } + else { + updatePreeditText (); + updateAuxiliaryText (); + } + return true; +} + +bool +DoublePinyinContext::removeWordBefore (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + if (G_UNLIKELY (m_cursor > m_pinyin_len)) { + m_text.erase (m_pinyin_len, m_cursor - m_pinyin_len); + m_cursor = m_pinyin_len; + updateInputText (); + updateCursor (); + if (updateSpecialPhrases ()) { + update (); + } + else { + updatePreeditText (); + updateAuxiliaryText (); + } + } + else { + m_pinyin_len = m_pinyin.back ().begin; + m_pinyin.pop_back (); + m_text.erase (m_pinyin_len, m_cursor - m_pinyin_len); + m_cursor = m_pinyin_len; + updateInputText (); + updateCursor (); + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + } + + return true; +} + +bool +DoublePinyinContext::removeWordAfter (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return false; + + m_text.erase (m_cursor); + updateInputText (); + + if (updateSpecialPhrases ()) { + update (); + } + else { + updatePreeditText (); + updateAuxiliaryText (); + } + return true; +} + +bool +DoublePinyinContext::moveCursorLeft (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + m_cursor --; + updateCursor (); + + if (m_cursor >= m_pinyin_len) { + if (updateSpecialPhrases ()) { + update (); + } + else { + updatePreeditText (); + updateAuxiliaryText (); + } + } + else { + if (updatePinyin (false)) { + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + } + else { + if (updateSpecialPhrases ()) { + update (); + } + else { + updatePreeditText (); + updateAuxiliaryText (); + } + } + } + + return true; +} + +bool +DoublePinyinContext::moveCursorRight (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return false; + + m_cursor ++; + updateCursor (); + if (updatePinyin (false)) { + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + } + else { + if (updateSpecialPhrases ()) { + update (); + } + else { + updatePreeditText (); + updateAuxiliaryText (); + } + } + return true; +} + +bool +DoublePinyinContext::moveCursorLeftByWord (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + if (G_UNLIKELY (m_cursor > m_pinyin_len)) { + m_cursor = m_pinyin_len; + updateCursor (); + if (updateSpecialPhrases ()) { + update (); + } + else { + updatePreeditText (); + updateAuxiliaryText (); + } + } + else { + m_cursor = m_pinyin_len = m_pinyin.back ().begin; + m_pinyin.pop_back (); + updateCursor (); + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + } + + return true; +} + +bool +DoublePinyinContext::moveCursorRightByWord (void) +{ + return moveCursorToEnd (); +} + +bool +DoublePinyinContext::moveCursorToBegin (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + m_cursor = 0; + m_pinyin.clear (); + m_pinyin_len = 0; + updateCursor (); + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + + return true; +} + +bool +DoublePinyinContext::moveCursorToEnd (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return false; + + m_cursor = m_text.length (); + updateCursor (); + + if (updatePinyin (false)) { + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + } + else { + if (updateSpecialPhrases ()) { + update (); + } + else { + updatePreeditText (); + updateAuxiliaryText (); + } + } + return true; +} + +inline const Pinyin * +DoublePinyinContext::isPinyin (int i) +{ + if ((m_config.option & PINYIN_INCOMPLETE_PINYIN) == 0) { + return NULL; + } + + char sheng = ID_TO_SHENG (i); + + if (sheng == PINYIN_ID_VOID) { + return NULL; + } + + return PinyinParser::isPinyin (sheng, 0, PINYIN_INCOMPLETE_PINYIN); +} + +inline const Pinyin * +DoublePinyinContext::isPinyin (int i, int j) +{ + const Pinyin *pinyin = NULL; + char sheng = ID_TO_SHENG (i); + const char *yun = ID_TO_YUNS (j); + + do { + if (sheng == PINYIN_ID_VOID || yun[0] == PINYIN_ID_VOID) + break; + + if (sheng == PINYIN_ID_ZERO && yun[0] == PINYIN_ID_ZERO) + break; + + if (yun[1] == PINYIN_ID_VOID) { + pinyin = PinyinParser::isPinyin ( + sheng, yun[0], + m_config.option & (PINYIN_FUZZY_ALL | PINYIN_CORRECT_V_TO_U)); + break; + } + + // Check sheng + yun[0] without all fuzzy pinyin options + pinyin = PinyinParser::isPinyin(sheng, yun[0], 0); + if (pinyin != NULL) + break; + + // Check sheng + yun[1] without all fuzzy pinyin options + pinyin = PinyinParser::isPinyin(sheng, yun[1], 0); + if (pinyin != NULL) + break; + + pinyin = PinyinParser::isPinyin ( + sheng, yun[0], m_config.option & (PINYIN_FUZZY_ALL)); + if (pinyin != NULL) + break; + + pinyin = PinyinParser::isPinyin ( + sheng, yun[1], m_config.option & (PINYIN_FUZZY_ALL)); + if (pinyin != NULL) + break; + + /* if sheng == j q x y and yun == v, try to correct v to u */ + if ((m_config.option & PINYIN_CORRECT_V_TO_U) == 0) + break; + + if (yun[0] == PINYIN_ID_V || yun[1] == PINYIN_ID_V) { + switch (sheng) { + case PINYIN_ID_J: + case PINYIN_ID_Q: + case PINYIN_ID_X: + case PINYIN_ID_Y: + pinyin = PinyinParser::isPinyin ( + sheng, PINYIN_ID_V, + m_config.option & ( + PINYIN_FUZZY_ALL | PINYIN_CORRECT_V_TO_U)); + } + } + } while (false); + + return pinyin; +} + +inline bool +DoublePinyinContext::updatePinyin (bool all) +{ + bool retval = false; + + if (all && + (m_pinyin_len != 0 || !m_pinyin.empty ())) { + m_pinyin.clear (); + m_pinyin_len = 0; + retval = true; + } + + if (m_pinyin_len > m_cursor) { + retval = true; + while (m_pinyin_len > m_cursor) { + m_pinyin_len = m_pinyin.back ().begin; + m_pinyin.pop_back (); + } + } + + if (m_pinyin_len == m_cursor) { + return retval; + } + + if (m_pinyin_len < m_cursor) { + size_t len = m_pinyin_len; + if (m_pinyin.empty () == false && + m_pinyin.back ()->flags & PINYIN_INCOMPLETE_PINYIN) { + const Pinyin *pinyin = isPinyin ( + ID (m_text[m_pinyin_len -1]),ID (m_text[m_pinyin_len])); + if (pinyin) { + m_pinyin.pop_back (); + m_pinyin.append (pinyin, m_pinyin_len - 1, 2); + m_pinyin_len += 1; + } + } + while (m_pinyin_len < m_cursor && m_pinyin.size () < MAX_PHRASE_LEN) { + const Pinyin *pinyin = NULL; + if (m_pinyin_len == m_cursor - 1) { + pinyin = isPinyin (ID (m_text[m_pinyin_len])); + } + else { + pinyin = isPinyin ( + ID (m_text[m_pinyin_len]), ID (m_text[m_pinyin_len + 1])); + if (pinyin == NULL) + pinyin = isPinyin (ID (m_text[m_pinyin_len])); + } + if (pinyin == NULL) + break; + if (pinyin->flags & PINYIN_INCOMPLETE_PINYIN) { + m_pinyin.append (pinyin, m_pinyin_len, 1); + m_pinyin_len += 1; + } + else { + m_pinyin.append (pinyin, m_pinyin_len, 2); + m_pinyin_len += 2; + } + } + if (len == m_pinyin_len) + return retval; + return true; + } + return retval; +} + +Variant +DoublePinyinContext::getProperty (PropertyName name) const +{ + if (name == PROPERTY_DOUBLE_PINYIN_SCHEMA) { + return Variant::fromUnsignedInt (m_double_pinyin_schema); + } + + return PhoneticContext::getProperty (name); +} + +bool +DoublePinyinContext::setProperty (PropertyName name, const Variant &variant) +{ + if (name == PROPERTY_DOUBLE_PINYIN_SCHEMA) { + if (variant.getType () != Variant::TYPE_UNSIGNED_INT) { + return false; + } + const unsigned int schema = variant.getUnsignedInt (); + if (schema >= DOUBLE_PINYIN_KEYBOARD_LAST) { + return false; + } + + m_double_pinyin_schema = schema; + return true; + } + + return PhoneticContext::setProperty (name, variant); +} + +}; // namespace PyZy diff --git a/src/DoublePinyinContext.h b/src/DoublePinyinContext.h new file mode 100644 index 0000000..9a8d00b --- /dev/null +++ b/src/DoublePinyinContext.h @@ -0,0 +1,64 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_DOUBLE_PINYIN_CONTEXT_H_ +#define __PYZY_DOUBLE_PINYIN_CONTEXT_H_ + +#include "PinyinContext.h" + +namespace PyZy { + +class DoublePinyinContext : public PinyinContext { + +public: + explicit DoublePinyinContext (PhoneticContext::Observer *observer); + virtual ~DoublePinyinContext (); + + virtual bool insert (char ch); + + virtual bool removeCharBefore (void); + virtual bool removeCharAfter (void); + virtual bool removeWordBefore (void); + virtual bool removeWordAfter (void); + + virtual bool moveCursorLeft (void); + virtual bool moveCursorRight (void); + virtual bool moveCursorLeftByWord (void); + virtual bool moveCursorRightByWord (void); + virtual bool moveCursorToBegin (void); + virtual bool moveCursorToEnd (void); + + virtual Variant getProperty (PropertyName name) const; + virtual bool setProperty (PropertyName name, const Variant &variant); + +protected: + virtual bool updatePinyin (bool all); + +private: + const Pinyin *isPinyin (int i, int j); + const Pinyin *isPinyin (int i); + + unsigned int m_double_pinyin_schema; +}; + +}; // namespace PyZy + +#endif // __PYZY_DOUBLE_PINYIN_CONTEXT_H_ diff --git a/src/DoublePinyinTable.h b/src/DoublePinyinTable.h new file mode 100644 index 0000000..68081ba --- /dev/null +++ b/src/DoublePinyinTable.h @@ -0,0 +1,391 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_DOUBLE_PINYIN_TABLE_H_ +#define __PYZY_DOUBLE_PINYIN_TABLE_H_ + +#ifdef DEFINE_DOUBLE_PINYIN_TABLES + +#define PINYIN_ID_AEO PINYIN_ID_ZERO + +static const char double_pinyin_mspy_sheng[] = { + PINYIN_ID_AEO, // A + PINYIN_ID_B, // B + PINYIN_ID_C, // C + PINYIN_ID_D, // D + PINYIN_ID_AEO, // E + PINYIN_ID_F, // F + PINYIN_ID_G, // G + PINYIN_ID_H, // H + PINYIN_ID_CH, // I + PINYIN_ID_J, // J + PINYIN_ID_K, // K + PINYIN_ID_L, // L + PINYIN_ID_M, // M + PINYIN_ID_N, // N + PINYIN_ID_ZERO, // O + PINYIN_ID_P, // P + PINYIN_ID_Q, // Q + PINYIN_ID_R, // R + PINYIN_ID_S, // S + PINYIN_ID_T, // T + PINYIN_ID_SH, // U + PINYIN_ID_ZH, // V + PINYIN_ID_W, // W + PINYIN_ID_X, // X + PINYIN_ID_Y, // Y + PINYIN_ID_Z, // Z + PINYIN_ID_VOID, // ; +}; +static const char double_pinyin_mspy_yun[][2] = { + { PINYIN_ID_A, PINYIN_ID_VOID }, // A + { PINYIN_ID_OU, PINYIN_ID_VOID }, // B + { PINYIN_ID_IAO, PINYIN_ID_VOID }, // C + { PINYIN_ID_UANG, PINYIN_ID_IANG }, // D + { PINYIN_ID_E, PINYIN_ID_VOID }, // E + { PINYIN_ID_EN, PINYIN_ID_VOID }, // F + { PINYIN_ID_ENG, PINYIN_ID_NG }, // G + { PINYIN_ID_ANG, PINYIN_ID_VOID }, // H + { PINYIN_ID_I, PINYIN_ID_VOID }, // I + { PINYIN_ID_AN, PINYIN_ID_VOID }, // J + { PINYIN_ID_AO, PINYIN_ID_VOID }, // K + { PINYIN_ID_AI, PINYIN_ID_VOID }, // L + { PINYIN_ID_IAN, PINYIN_ID_VOID }, // M + { PINYIN_ID_IN, PINYIN_ID_VOID }, // N + { PINYIN_ID_UO, PINYIN_ID_O }, // O + { PINYIN_ID_UN, PINYIN_ID_VOID }, // P + { PINYIN_ID_IU, PINYIN_ID_VOID }, // Q + { PINYIN_ID_UAN, PINYIN_ID_ER }, // R + { PINYIN_ID_ONG, PINYIN_ID_IONG }, // S + { PINYIN_ID_UE, PINYIN_ID_VOID }, // T + { PINYIN_ID_U, PINYIN_ID_VOID }, // U + { PINYIN_ID_UI, PINYIN_ID_UE }, // V + { PINYIN_ID_IA, PINYIN_ID_UA }, // W + { PINYIN_ID_IE, PINYIN_ID_VOID }, // X + { PINYIN_ID_UAI, PINYIN_ID_V }, // Y + { PINYIN_ID_EI, PINYIN_ID_VOID }, // Z + { PINYIN_ID_ING, PINYIN_ID_VOID }, // ; +}; +static const char double_pinyin_zrm_sheng[] = { + PINYIN_ID_AEO, // A + PINYIN_ID_B, // B + PINYIN_ID_C, // C + PINYIN_ID_D, // D + PINYIN_ID_AEO, // E + PINYIN_ID_F, // F + PINYIN_ID_G, // G + PINYIN_ID_H, // H + PINYIN_ID_CH, // I + PINYIN_ID_J, // J + PINYIN_ID_K, // K + PINYIN_ID_L, // L + PINYIN_ID_M, // M + PINYIN_ID_N, // N + PINYIN_ID_ZERO, // O + PINYIN_ID_P, // P + PINYIN_ID_Q, // Q + PINYIN_ID_R, // R + PINYIN_ID_S, // S + PINYIN_ID_T, // T + PINYIN_ID_SH, // U + PINYIN_ID_ZH, // V + PINYIN_ID_W, // W + PINYIN_ID_X, // X + PINYIN_ID_Y, // Y + PINYIN_ID_Z, // Z + PINYIN_ID_VOID, // ; +}; +static const char double_pinyin_zrm_yun[][2] = { + { PINYIN_ID_A, PINYIN_ID_VOID }, // A + { PINYIN_ID_OU, PINYIN_ID_VOID }, // B + { PINYIN_ID_IAO, PINYIN_ID_VOID }, // C + { PINYIN_ID_UANG, PINYIN_ID_IANG }, // D + { PINYIN_ID_E, PINYIN_ID_VOID }, // E + { PINYIN_ID_EN, PINYIN_ID_VOID }, // F + { PINYIN_ID_ENG, PINYIN_ID_NG }, // G + { PINYIN_ID_ANG, PINYIN_ID_VOID }, // H + { PINYIN_ID_I, PINYIN_ID_VOID }, // I + { PINYIN_ID_AN, PINYIN_ID_VOID }, // J + { PINYIN_ID_AO, PINYIN_ID_VOID }, // K + { PINYIN_ID_AI, PINYIN_ID_VOID }, // L + { PINYIN_ID_IAN, PINYIN_ID_VOID }, // M + { PINYIN_ID_IN, PINYIN_ID_VOID }, // N + { PINYIN_ID_UO, PINYIN_ID_O }, // O + { PINYIN_ID_UN, PINYIN_ID_VOID }, // P + { PINYIN_ID_IU, PINYIN_ID_VOID }, // Q + { PINYIN_ID_UAN, PINYIN_ID_ER }, // R + { PINYIN_ID_ONG, PINYIN_ID_IONG }, // S + { PINYIN_ID_UE, PINYIN_ID_VOID }, // T + { PINYIN_ID_U, PINYIN_ID_VOID }, // U + { PINYIN_ID_UI, PINYIN_ID_V }, // V + { PINYIN_ID_IA, PINYIN_ID_UA }, // W + { PINYIN_ID_IE, PINYIN_ID_VOID }, // X + { PINYIN_ID_UAI, PINYIN_ID_ING }, // Y + { PINYIN_ID_EI, PINYIN_ID_VOID }, // Z + { PINYIN_ID_VOID, PINYIN_ID_VOID }, // ; +}; +static const char double_pinyin_abc_sheng[] = { + PINYIN_ID_ZH, // A + PINYIN_ID_B, // B + PINYIN_ID_C, // C + PINYIN_ID_D, // D + PINYIN_ID_CH, // E + PINYIN_ID_F, // F + PINYIN_ID_G, // G + PINYIN_ID_H, // H + PINYIN_ID_VOID, // I + PINYIN_ID_J, // J + PINYIN_ID_K, // K + PINYIN_ID_L, // L + PINYIN_ID_M, // M + PINYIN_ID_N, // N + PINYIN_ID_ZERO, // O + PINYIN_ID_P, // P + PINYIN_ID_Q, // Q + PINYIN_ID_R, // R + PINYIN_ID_S, // S + PINYIN_ID_T, // T + PINYIN_ID_VOID, // U + PINYIN_ID_SH, // V + PINYIN_ID_W, // W + PINYIN_ID_X, // X + PINYIN_ID_Y, // Y + PINYIN_ID_Z, // Z + PINYIN_ID_VOID, // ; +}; +static const char double_pinyin_abc_yun[][2] = { + { PINYIN_ID_A, PINYIN_ID_VOID }, // A + { PINYIN_ID_OU, PINYIN_ID_VOID }, // B + { PINYIN_ID_IN, PINYIN_ID_UAI }, // C + { PINYIN_ID_IA, PINYIN_ID_UA }, // D + { PINYIN_ID_E, PINYIN_ID_VOID }, // E + { PINYIN_ID_EN, PINYIN_ID_VOID }, // F + { PINYIN_ID_ENG, PINYIN_ID_NG }, // G + { PINYIN_ID_ANG, PINYIN_ID_VOID }, // H + { PINYIN_ID_I, PINYIN_ID_VOID }, // I + { PINYIN_ID_AN, PINYIN_ID_VOID }, // J + { PINYIN_ID_AO, PINYIN_ID_VOID }, // K + { PINYIN_ID_AI, PINYIN_ID_VOID }, // L + { PINYIN_ID_UE, PINYIN_ID_UI }, // M + { PINYIN_ID_UN, PINYIN_ID_VOID }, // N + { PINYIN_ID_UO, PINYIN_ID_O }, // O + { PINYIN_ID_UAN, PINYIN_ID_VOID }, // P + { PINYIN_ID_EI, PINYIN_ID_VOID }, // Q + { PINYIN_ID_ER, PINYIN_ID_IU }, // R + { PINYIN_ID_ONG, PINYIN_ID_IONG }, // S + { PINYIN_ID_IANG, PINYIN_ID_UANG }, // T + { PINYIN_ID_U, PINYIN_ID_VOID }, // U + { PINYIN_ID_V, PINYIN_ID_UE }, // V + { PINYIN_ID_IAN, PINYIN_ID_VOID }, // W + { PINYIN_ID_IE, PINYIN_ID_VOID }, // X + { PINYIN_ID_ING, PINYIN_ID_VOID }, // Y + { PINYIN_ID_IAO, PINYIN_ID_VOID }, // Z + { PINYIN_ID_VOID, PINYIN_ID_VOID }, // ; +}; +static const char double_pinyin_zgpy_sheng[] = { + PINYIN_ID_CH, // A + PINYIN_ID_B, // B + PINYIN_ID_C, // C + PINYIN_ID_D, // D + PINYIN_ID_AEO, // E + PINYIN_ID_F, // F + PINYIN_ID_G, // G + PINYIN_ID_H, // H + PINYIN_ID_SH, // I + PINYIN_ID_J, // J + PINYIN_ID_K, // K + PINYIN_ID_L, // L + PINYIN_ID_M, // M + PINYIN_ID_N, // N + PINYIN_ID_ZERO, // O + PINYIN_ID_P, // P + PINYIN_ID_Q, // Q + PINYIN_ID_R, // R + PINYIN_ID_S, // S + PINYIN_ID_T, // T + PINYIN_ID_ZH, // U + PINYIN_ID_VOID, // V + PINYIN_ID_W, // W + PINYIN_ID_X, // X + PINYIN_ID_Y, // Y + PINYIN_ID_Z, // Z + PINYIN_ID_VOID, // ; +}; +static const char double_pinyin_zgpy_yun[][2] = { + { PINYIN_ID_A, PINYIN_ID_VOID }, // A + { PINYIN_ID_IAO, PINYIN_ID_VOID }, // B + { PINYIN_ID_VOID, PINYIN_ID_VOID }, // C + { PINYIN_ID_IE, PINYIN_ID_VOID }, // D + { PINYIN_ID_E, PINYIN_ID_VOID }, // E + { PINYIN_ID_IAN, PINYIN_ID_VOID }, // F + { PINYIN_ID_IANG, PINYIN_ID_UANG }, // G + { PINYIN_ID_ONG, PINYIN_ID_IONG }, // H + { PINYIN_ID_I, PINYIN_ID_VOID }, // I + { PINYIN_ID_ER, PINYIN_ID_IU }, // J + { PINYIN_ID_EI, PINYIN_ID_VOID }, // K + { PINYIN_ID_UAN, PINYIN_ID_VOID }, // L + { PINYIN_ID_UN, PINYIN_ID_VOID }, // M + { PINYIN_ID_UE, PINYIN_ID_UI }, // N + { PINYIN_ID_UO, PINYIN_ID_O }, // O + { PINYIN_ID_AI, PINYIN_ID_VOID }, // P + { PINYIN_ID_AO, PINYIN_ID_VOID }, // Q + { PINYIN_ID_AN, PINYIN_ID_VOID }, // R + { PINYIN_ID_ANG, PINYIN_ID_VOID }, // S + { PINYIN_ID_ENG, PINYIN_ID_NG }, // T + { PINYIN_ID_U, PINYIN_ID_VOID }, // U + { PINYIN_ID_V, PINYIN_ID_VOID }, // V + { PINYIN_ID_EN, PINYIN_ID_VOID }, // W + { PINYIN_ID_IA, PINYIN_ID_UA }, // X + { PINYIN_ID_IN, PINYIN_ID_UAI }, // Y + { PINYIN_ID_OU, PINYIN_ID_VOID }, // Z + { PINYIN_ID_ING, PINYIN_ID_VOID }, // ; +}; +static const char double_pinyin_pyjj_sheng[] = { + PINYIN_ID_ZERO, // A + PINYIN_ID_B, // B + PINYIN_ID_C, // C + PINYIN_ID_D, // D + PINYIN_ID_AEO, // E + PINYIN_ID_F, // F + PINYIN_ID_G, // G + PINYIN_ID_H, // H + PINYIN_ID_SH, // I + PINYIN_ID_J, // J + PINYIN_ID_K, // K + PINYIN_ID_L, // L + PINYIN_ID_M, // M + PINYIN_ID_N, // N + PINYIN_ID_ZERO, // O + PINYIN_ID_P, // P + PINYIN_ID_Q, // Q + PINYIN_ID_R, // R + PINYIN_ID_S, // S + PINYIN_ID_T, // T + PINYIN_ID_CH, // U + PINYIN_ID_ZH, // V + PINYIN_ID_W, // W + PINYIN_ID_X, // X + PINYIN_ID_Y, // Y + PINYIN_ID_Z, // Z + PINYIN_ID_VOID, // ; +}; +static const char double_pinyin_pyjj_yun[][2] = { + { PINYIN_ID_A, PINYIN_ID_VOID }, // A + { PINYIN_ID_IA, PINYIN_ID_UA }, // B + { PINYIN_ID_UAN, PINYIN_ID_VOID }, // C + { PINYIN_ID_AO, PINYIN_ID_VOID }, // D + { PINYIN_ID_E, PINYIN_ID_VOID }, // E + { PINYIN_ID_AN, PINYIN_ID_VOID }, // F + { PINYIN_ID_ANG, PINYIN_ID_VOID }, // G + { PINYIN_ID_IANG, PINYIN_ID_UANG }, // H + { PINYIN_ID_I, PINYIN_ID_VOID }, // I + { PINYIN_ID_IAN, PINYIN_ID_VOID }, // J + { PINYIN_ID_IAO, PINYIN_ID_VOID }, // K + { PINYIN_ID_IN, PINYIN_ID_VOID }, // L + { PINYIN_ID_IE, PINYIN_ID_VOID }, // M + { PINYIN_ID_IU, PINYIN_ID_VOID }, // N + { PINYIN_ID_UO, PINYIN_ID_O }, // O + { PINYIN_ID_OU, PINYIN_ID_VOID }, // P + { PINYIN_ID_ER, PINYIN_ID_ING }, // Q + { PINYIN_ID_EN, PINYIN_ID_VOID }, // R + { PINYIN_ID_AI, PINYIN_ID_VOID }, // S + { PINYIN_ID_ENG, PINYIN_ID_NG }, // T + { PINYIN_ID_U, PINYIN_ID_VOID }, // U + { PINYIN_ID_V, PINYIN_ID_UI }, // V + { PINYIN_ID_EI, PINYIN_ID_VOID }, // W + { PINYIN_ID_UAI, PINYIN_ID_UE }, // X + { PINYIN_ID_ONG, PINYIN_ID_IONG }, // Y + { PINYIN_ID_UN, PINYIN_ID_VOID }, // Z + { PINYIN_ID_VOID, PINYIN_ID_VOID }, // ; +}; +static const char double_pinyin_xhe_sheng[] = { + PINYIN_ID_AEO, // A + PINYIN_ID_B, // B + PINYIN_ID_C, // C + PINYIN_ID_D, // D + PINYIN_ID_AEO, // E + PINYIN_ID_F, // F + PINYIN_ID_G, // G + PINYIN_ID_H, // H + PINYIN_ID_CH, // I + PINYIN_ID_J, // J + PINYIN_ID_K, // K + PINYIN_ID_L, // L + PINYIN_ID_M, // M + PINYIN_ID_N, // N + PINYIN_ID_ZERO, // O + PINYIN_ID_P, // P + PINYIN_ID_Q, // Q + PINYIN_ID_R, // R + PINYIN_ID_S, // S + PINYIN_ID_T, // T + PINYIN_ID_SH, // U + PINYIN_ID_ZH, // V + PINYIN_ID_W, // W + PINYIN_ID_X, // X + PINYIN_ID_Y, // Y + PINYIN_ID_Z, // Z + PINYIN_ID_VOID, // ; +}; +static const char double_pinyin_xhe_yun[][2] = { + { PINYIN_ID_A, PINYIN_ID_VOID }, // A + { PINYIN_ID_IN, PINYIN_ID_VOID }, // B + { PINYIN_ID_AO, PINYIN_ID_VOID }, // C + { PINYIN_ID_AI, PINYIN_ID_VOID }, // D + { PINYIN_ID_E, PINYIN_ID_VOID }, // E + { PINYIN_ID_EN, PINYIN_ID_VOID }, // F + { PINYIN_ID_ENG, PINYIN_ID_NG }, // G + { PINYIN_ID_ANG, PINYIN_ID_VOID }, // H + { PINYIN_ID_I, PINYIN_ID_VOID }, // I + { PINYIN_ID_AN, PINYIN_ID_VOID }, // J + { PINYIN_ID_UAI, PINYIN_ID_ING }, // K + { PINYIN_ID_IANG, PINYIN_ID_UANG }, // L + { PINYIN_ID_IAN, PINYIN_ID_VOID }, // M + { PINYIN_ID_IAO, PINYIN_ID_VOID }, // N + { PINYIN_ID_UO, PINYIN_ID_O }, // O + { PINYIN_ID_IE, PINYIN_ID_VOID }, // P + { PINYIN_ID_IU, PINYIN_ID_VOID }, // Q + { PINYIN_ID_UAN, PINYIN_ID_ER }, // R + { PINYIN_ID_ONG, PINYIN_ID_IONG }, // S + { PINYIN_ID_UE, PINYIN_ID_VOID }, // T + { PINYIN_ID_U, PINYIN_ID_VOID }, // U + { PINYIN_ID_V, PINYIN_ID_UI }, // V + { PINYIN_ID_EI, PINYIN_ID_VOID }, // W + { PINYIN_ID_IA, PINYIN_ID_UA }, // X + { PINYIN_ID_UN, PINYIN_ID_VOID }, // Y + { PINYIN_ID_OU, PINYIN_ID_VOID }, // Z + { PINYIN_ID_VOID, PINYIN_ID_VOID }, // ; +}; + +static const struct { + const char (&sheng)[27]; + const char (&yun)[27][2]; +} double_pinyin_map [] = { + { double_pinyin_mspy_sheng, double_pinyin_mspy_yun }, + { double_pinyin_zrm_sheng, double_pinyin_zrm_yun }, + { double_pinyin_abc_sheng, double_pinyin_abc_yun }, + { double_pinyin_zgpy_sheng, double_pinyin_zgpy_yun }, + { double_pinyin_pyjj_sheng, double_pinyin_pyjj_yun }, + { double_pinyin_xhe_sheng, double_pinyin_xhe_yun }, +}; +#endif // DEFINE_DOUBLE_PINYIN_TABLE + +#endif // __PYZY_DOUBLE_PINYIN_TABLE_H_ diff --git a/src/DynamicSpecialPhrase.cc b/src/DynamicSpecialPhrase.cc new file mode 100644 index 0000000..bced460 --- /dev/null +++ b/src/DynamicSpecialPhrase.cc @@ -0,0 +1,208 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#include "DynamicSpecialPhrase.h" + +#include + +namespace PyZy { + +DynamicSpecialPhrase::~DynamicSpecialPhrase (void) +{ +} + +std::string +DynamicSpecialPhrase::text (void) +{ + /* get the current time */ + std::time_t rawtime; + std::time (&rawtime); + m_time = *std::localtime (&rawtime); + + std::string result; + + size_t pos = 0; + size_t pnext; + int s = 0; + while (s != 2) { + switch (s) { + case 0: // expect "${" + pnext = m_text.find ("${", pos); + if (pnext == m_text.npos) { + result += m_text.substr (pos); + s = 2; + } + else { + result += m_text.substr (pos, pnext - pos); + pos = pnext + 2; + s = 1; + } + break; + case 1: // expect "}" + pnext = m_text.find ("}", pos); + if (pnext == m_text.npos) { + result += "${"; + result += m_text.substr (pos); + s = 2; + } + else { + result += variable (m_text.substr(pos, pnext - pos)); + pos = pnext + 1; + s = 0; + } + break; + default: /* should not be reached */ + g_assert_not_reached (); + } + } + return result; +} + +inline const std::string +DynamicSpecialPhrase::dec (int d, const char *fmt) +{ + char string [32]; + g_snprintf (string, sizeof (string), fmt, d); + return string; +} + +inline const std::string +DynamicSpecialPhrase::year_cn (bool yy) +{ + static const char * const digits[] = { + "〇", "一", "二", "三", "四", + "五", "六", "七", "八", "九" + }; + + int year = m_time.tm_year + 1900; + int bit = 0; + if (yy) { + year %= 100; + bit = 2; + } + + std::string result; + while (year != 0 || bit > 0) { + result.insert(0, digits[year % 10]); + year /= 10; + bit -= 1; + } + return result; +} + +inline const std::string +DynamicSpecialPhrase::month_cn (void) +{ + static const char * const month_num[] = { + "一", "二", "三", "四", "五", "六", "七", "八", + "九", "十", "十一", "十二" + }; + return month_num[m_time.tm_mon]; +} + +inline const std::string +DynamicSpecialPhrase::weekday_cn (void) +{ + static const char * const week_num[] = { + "日", "一", "二", "三", "四", "五", "六" + }; + return week_num[m_time.tm_wday]; +} + +inline const std::string +DynamicSpecialPhrase::hour_cn (unsigned int i) +{ + static const char * const hour_num[] = { + "零", "一", "二", "三", "四", + "五", "六", "七", "八", "九", + "十", "十一", "十二", "十三", "十四", + "十五", "十六", "十七", "十八", "十九", + "二十", "二十一", "二十二", "二十三", + }; + return hour_num[i]; +} + +inline const std::string +DynamicSpecialPhrase::fullhour_cn (void) +{ + return hour_cn (m_time.tm_hour); +} + +inline const std::string +DynamicSpecialPhrase::halfhour_cn (void) +{ + return hour_cn (m_time.tm_hour % 12); +} + +inline const std::string +DynamicSpecialPhrase::day_cn (void) +{ + static const char * const day_num[] = { + "", "一", "二", "三", "四", + "五", "六", "七", "八", "九", + "", "十","二十", "三十" + }; + unsigned int day = m_time.tm_mday; + return std::string (day_num[day / 10 + 10]) + day_num[day % 10]; +} + +inline const std::string +DynamicSpecialPhrase::minsec_cn (unsigned int i) +{ + static const char * const num[] = { + "", "一", "二", "三", "四", + "五", "六", "七", "八", "九", + "零", "十","二十", "三十", "四十" + "五十", "六十" + }; + return std::string (num[i / 10 + 10]) + num[i % 10]; +} + +inline const std::string +DynamicSpecialPhrase::variable (const std::string &name) +{ + if (name == "year") return dec (m_time.tm_year + 1900); + if (name == "year_yy") return dec ((m_time.tm_year + 1900) % 100, "%02d"); + if (name == "month") return dec (m_time.tm_mon + 1); + if (name == "month_mm") return dec (m_time.tm_mon + 1, "%02d"); + if (name == "day") return dec (m_time.tm_mday); + if (name == "day_dd") return dec (m_time.tm_mday, "%02d"); + if (name == "weekday") return dec (m_time.tm_wday + 1); + if (name == "fullhour") return dec (m_time.tm_hour, "%02d"); + if (name == "falfhour") return dec (m_time.tm_hour % 12, "%02d"); + if (name == "ampm") return m_time.tm_hour < 12 ? "AM" : "PM"; + if (name == "minute") return dec (m_time.tm_min, "%02d"); + if (name == "second") return dec (m_time.tm_sec, "%02d"); + if (name == "year_cn") return year_cn (); + if (name == "year_yy_cn") return year_cn (true); + if (name == "month_cn") return month_cn (); + if (name == "day_cn") return day_cn (); + if (name == "weekday_cn") return weekday_cn (); + if (name == "fullhour_cn") return fullhour_cn (); + if (name == "halfhour_cn") return halfhour_cn (); + if (name == "ampm_cn") return m_time.tm_hour < 12 ? "上午" : "下午"; + if (name == "minute_cn") return minsec_cn (m_time.tm_min); + if (name == "second_cn") return minsec_cn (m_time.tm_sec); + + return "${" + name + "}"; +} + +}; // namespace PyZy diff --git a/src/DynamicSpecialPhrase.h b/src/DynamicSpecialPhrase.h new file mode 100644 index 0000000..0b8e06f --- /dev/null +++ b/src/DynamicSpecialPhrase.h @@ -0,0 +1,57 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_DYNAMIC_SPECIAL_PHRASE_H_ +#define __PYZY_DYNAMIC_SPECIAL_PHRASE_H_ + +#include +#include + +#include "SpecialPhrase.h" + +namespace PyZy { + +class DynamicSpecialPhrase : public SpecialPhrase { +public: + DynamicSpecialPhrase (const std::string &text, size_t pos) : + SpecialPhrase (pos), m_text (text) { } + ~DynamicSpecialPhrase (void); + + std::string text (void); + const std::string dec (int d, const char *fmt = "%d"); + const std::string year_cn (bool yy = false); + const std::string month_cn (void); + const std::string weekday_cn (void); + const std::string hour_cn (unsigned int i); + const std::string fullhour_cn (void); + const std::string halfhour_cn (void); + const std::string day_cn (void); + const std::string minsec_cn (unsigned int i); + const std::string variable (const std::string &name); + +private: + std::string m_text; + std::tm m_time; +}; + +}; // namespace PyZy + +#endif // __PYZY_DYNAMIC_SPECIAL_PHRASE_H_ diff --git a/src/FullPinyinContext.cc b/src/FullPinyinContext.cc new file mode 100644 index 0000000..e233cc0 --- /dev/null +++ b/src/FullPinyinContext.cc @@ -0,0 +1,256 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#include "FullPinyinContext.h" + +#include + +#include "Config.h" +#include "PinyinParser.h" + + +namespace PyZy { + +FullPinyinContext::FullPinyinContext (PhoneticContext::Observer *observer) + : PinyinContext (observer) +{ +} + +FullPinyinContext::~FullPinyinContext (void) +{ +} + +bool +FullPinyinContext::insert (char ch) +{ + if (!islower(ch) && ch != '\'') { + /* it is not available ch */ + return false; + } + + /* is full */ + if (G_UNLIKELY (m_text.length () >= MAX_PINYIN_LEN)) + return true; + + m_text.insert (m_cursor++, ch); + updateInputText (); + updateCursor (); + + if (G_UNLIKELY (!(m_config.option & PINYIN_INCOMPLETE_PINYIN))) { + updateSpecialPhrases (); + updatePinyin (); + } + else if (G_LIKELY (m_cursor <= m_pinyin_len + 2)) { + updateSpecialPhrases (); + updatePinyin (); + } + else { + if (updateSpecialPhrases ()) { + update (); + } + else { + updatePreeditText (); + updateAuxiliaryText (); + } + } + return true; +} + +bool +FullPinyinContext::removeCharBefore (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + m_cursor --; + m_text.erase (m_cursor, 1); + updateInputText (); + updateCursor (); + updateSpecialPhrases (); + updatePinyin (); + + return true; +} + +bool +FullPinyinContext::removeCharAfter (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return false; + + m_text.erase (m_cursor, 1); + updateInputText (); + updatePreeditText (); + updateAuxiliaryText (); + + return true; +} + +bool +FullPinyinContext::removeWordBefore (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + size_t cursor; + + if (G_UNLIKELY (m_cursor > m_pinyin_len)) { + cursor = m_pinyin_len; + } + else { + const Pinyin & p = *m_pinyin.back (); + cursor = m_cursor - p.len; + m_pinyin_len -= p.len; + m_pinyin.pop_back (); + } + + m_text.erase (cursor, m_cursor - cursor); + m_cursor = cursor; + updateInputText (); + updateCursor (); + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + return true; +} + +bool +FullPinyinContext::removeWordAfter (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return false; + + m_text.erase (m_cursor, -1); + updateInputText (); + updatePreeditText (); + updateAuxiliaryText (); + return true; +} + +bool +FullPinyinContext::moveCursorLeft (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + m_cursor --; + updateCursor (); + updateSpecialPhrases (); + updatePinyin (); + + return true; +} + +bool +FullPinyinContext::moveCursorRight (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return false; + + m_cursor ++; + updateCursor (); + updateSpecialPhrases (); + updatePinyin (); + + return true; +} + +bool +FullPinyinContext::moveCursorLeftByWord (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + if (G_UNLIKELY (m_cursor > m_pinyin_len)) { + m_cursor = m_pinyin_len; + return true; + } + + const Pinyin & p = *m_pinyin.back (); + m_cursor -= p.len; + m_pinyin_len -= p.len; + m_pinyin.pop_back (); + + updateCursor (); + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + return true; +} + +bool +FullPinyinContext::moveCursorRightByWord (void) +{ + return moveCursorToEnd (); +} + +bool +FullPinyinContext::moveCursorToBegin (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return false; + + m_cursor = 0; + m_pinyin.clear (); + m_pinyin_len = 0; + + updateCursor (); + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + return true; +} + +bool +FullPinyinContext::moveCursorToEnd (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return false; + + m_cursor = m_text.length (); + updateCursor (); + updateSpecialPhrases (); + updatePinyin (); + + return true; +} + +void +FullPinyinContext::updatePinyin (void) +{ + if (G_UNLIKELY (m_text.empty ())) { + m_pinyin.clear (); + m_pinyin_len = 0; + } + else { + m_pinyin_len = PinyinParser::parse ( + m_text, // text + m_cursor, // text length + m_config.option, // option + m_pinyin, // result + MAX_PHRASE_LEN); // max result length + } + + updatePhraseEditor (); + update (); +} + +}; // namespace PyZy diff --git a/src/FullPinyinContext.h b/src/FullPinyinContext.h new file mode 100644 index 0000000..1abe7d1 --- /dev/null +++ b/src/FullPinyinContext.h @@ -0,0 +1,57 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_FULL_PINYIN_CONTEXT_H_ +#define __PYZY_FULL_PINYIN_CONTEXT_H_ + +#include "PinyinContext.h" + +namespace PyZy { + +class FullPinyinContext : public PinyinContext { + +public: + explicit FullPinyinContext (PhoneticContext::Observer *observer); + virtual ~FullPinyinContext (void); + +public: + virtual bool insert (char ch); + + virtual bool removeCharBefore (void); + virtual bool removeCharAfter (void); + virtual bool removeWordBefore (void); + virtual bool removeWordAfter (void); + + virtual bool moveCursorLeft (void); + virtual bool moveCursorRight (void); + virtual bool moveCursorLeftByWord (void); + virtual bool moveCursorRightByWord (void); + virtual bool moveCursorToBegin (void); + virtual bool moveCursorToEnd (void); + +protected: + virtual void updatePinyin (void); + +}; + +}; // namespace PyZy + +#endif // __PYZY_FULL_PINYIN_CONTEXT_H_ diff --git a/src/InputContext.cc b/src/InputContext.cc new file mode 100644 index 0000000..d855cb4 --- /dev/null +++ b/src/InputContext.cc @@ -0,0 +1,80 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#include "PhoneticContext.h" + +#include +#include + +#include "BopomofoContext.h" +#include "Database.h" +#include "DoublePinyinContext.h" +#include "FullPinyinContext.h" + +namespace PyZy { + +void +InputContext::init () +{ + const std::string cache_dir = + g_build_filename (g_get_user_cache_dir (), "pyzy", NULL); + const std::string config_dir = + g_build_filename (g_get_user_config_dir (), "pyzy", NULL); + init (cache_dir, config_dir); +} +void +InputContext::init (const std::string & user_cache_dir, + const std::string & user_config_dir) +{ + if (user_cache_dir.empty ()) { + g_error ("Error: user_cache_dir should not be empty"); + } + if (user_config_dir.empty ()) { + g_error ("Error: user_config_dir should not be empty"); + } + + Database::init (user_cache_dir); + SpecialPhraseTable::init (user_config_dir); +} + +void +InputContext::finalize () +{ + Database::finalize (); +} + +InputContext * +InputContext::create (InputContext::InputType type, + InputContext::Observer * observer) { + switch (type) { + case FULL_PINYIN: + return new FullPinyinContext (observer); + case DOUBLE_PINYIN: + return new DoublePinyinContext (observer); + case BOPOMOFO: + return new BopomofoContext (observer); + default: + g_warning ("unknown context type.\n"); + return NULL; + } +} + +} // namespace PyZy diff --git a/src/InputContext.h b/src/InputContext.h new file mode 100644 index 0000000..325c8d6 --- /dev/null +++ b/src/InputContext.h @@ -0,0 +1,481 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +/** + * \brief Converts Pinyin / Bopomofo characters to phrases. + * + * Takes PinYin / Bopomofo characters and convert it to phrases. + * This class provides following methods. + * - Context manipulation methods like insert(), removeCharBefore(), ... + * - Getters of input / preedit / candidates / cursor / ... + * - Getters / Setters of some conversion options. + * + * To use this class, you should call InputContext::init() at first and + * InputContext::finalize() at last. + */ +#ifndef __PYZY_INPUT_CONTEXT_H_ +#define __PYZY_INPUT_CONTEXT_H_ + +#include +#include + +namespace PyZy { + +class Variant; + +/** + * \brief An enum to represent a candidate type. + */ +enum CandidateType { + /** Candidate from a system dictionary. */ + NORMAL_PHRASE, + /** Candidate from a user input. */ + USER_PHRASE, + /** Candidate from a special phrase. */ + SPECIAL_PHRASE, +}; + +/** + * \brief Contains a candidate data. + */ +struct Candidate { + /** Text of a candidate */ + std::string text; + /** Type of a candidate */ + CandidateType type; +}; + +/** + * \brief Pinyin / Bopomofo conversion class. + * + * This class is a factory class. You call a create() method and you get a + * pointer of the instance. You should delete it yourself. + * If some context are modified, you can get a nortification through Observer + * instance. + */ +class InputContext { +public: + /** + * \brief Virtual destructor. + */ + virtual ~InputContext (void) { } + + /** + * \brief Observer class of the InputContext. + * + * You override this class and pass it to InputContext::create, and you + * can get a nortification as a callback through this instance when some + * context are modified. + */ + class Observer { + public: + virtual ~Observer () { } + + + /** + * \brief Notifies a commit text. + * @param context InputContext instance which triggered this method. + * @param commit_text Commited text. + * + * This method is triggered by InputContext when conversion result + * is commited. + */ + virtual void commitText (const InputContext * context, + const std::string &commit_text) = 0; + + /** + * \brief Notifies input text is changed. + * @param context InputContext instance which triggered this method. + * + * This method is triggered by InputContext when input text is + * changed. + */ + virtual void inputTextChanged (const InputContext * context) = 0; + + /** + * \brief Notifies cursor is changed. + * @param context InputContext instance which triggered this method. + * + * This method is triggered by InputContext when cursor is changed. + */ + virtual void cursorChanged (const InputContext * context) = 0; + + /** + * \brief Notifies preedit text is changed. + * @param context InputContext instance which triggered this method. + * + * This method is triggered by InputContext when preedit text is + * changed. + */ + virtual void preeditTextChanged (const InputContext * context) = 0; + + /** + * \brief Notifies auxiliary text is changed. + * @param context InputContext instance which triggered this method. + * + * This method is triggered by InputContext when auxiliary text is + * changed. + */ + virtual void auxiliaryTextChanged (const InputContext * context) = 0; + + /** + * \brief Notifies candidates are changed. + * @param context InputContext instance which triggered this method. + * + * This method is triggered by InputContext when candidates are + * changed. + */ + virtual void candidatesChanged (const InputContext * context) = 0; + }; + + /** + * \brief Input text type. + */ + enum InputType { + /** Input text is full pinyin. */ + FULL_PINYIN, + /** Input text is double pinyin. */ + DOUBLE_PINYIN, + /** Input text is bopomofo. */ + BOPOMOFO, + }; + + /** + * \brief Commit type. + */ + enum CommitType { + /** Commits a input text directly. */ + TYPE_RAW, + /** Commits a selected text and rest input text. */ + TYPE_PHONETIC, + /** Commits a selected text, focused conversion text and rest text. */ + TYPE_CONVERTED, + }; + + /** + * \brief PropertyName + */ + enum PropertyName { + /** + * Conversion option + * @see Const.h + * + * Default value is PINYIN_INCORRECT_PINYIN | PINYIN_CORRECT_ALL | + * PYZY_FUZZY_ALL + */ + PROPERTY_CONVERSION_OPTION, + /** + * \brief Double pinyin schema + * @see Const.h + * + * Default value is DOUBLE_PINYIN_KEYBOARD_MSPY. + */ + PROPERTY_DOUBLE_PINYIN_SCHEMA, + /** + * \brief Bopomofo schema + * @see Const.h + * + * Default value is BOPOMOFO_KEYBOARD_STANDARD. + */ + PROPERTY_BOPOMOFO_SCHEMA, + /** + * \brief Uses special phrase. + * Default value is true. + */ + PROPERTY_SPECIAL_PHRASE, + /** + * \brief Uses simplified chinese character. + * Default value is true. + */ + PROPERTY_MODE_SIMP, + }; + + /** + * \brief Appends a new character on cursor position. + * @param ch Input character. It should be ASCII characters. + * @return true if succeed. + * + * Appends a new character. This method fails if there are too many + * characters or invalid character is input. + */ + virtual bool insert (char ch) = 0; + + /** + * \brief Fixes the conversion result. + * @param type Commit type. + * @see CommitType + * + * Fixes the conversion result according to CommitType and resets the + * context. + */ + virtual void commit (CommitType type = TYPE_CONVERTED) = 0; + + /** + * \brief Resets the context. + */ + virtual void reset (void) = 0; + + /** + * \brief Moves a cursor to right input character. + * @return true if cursor is moved. + */ + virtual bool moveCursorRight (void) = 0; + + /** + * \brief Moves a cursor to left input character. + * @return true if cursor is moved. + */ + virtual bool moveCursorLeft (void) = 0; + + /** + * \brief Moves a cursor to left chinese character. + * @return true if cursor is moved. + * @see moveCursorToEnd + * + * Currently text after a cursor is not converted and it is assumed as one + * chinese character. So this method is same as moveCursorToEnd. + */ + virtual bool moveCursorRightByWord (void) = 0; + + /** + * \brief Moves a cursor to right chinese character. + * @return true if cursor is moved. + */ + virtual bool moveCursorLeftByWord (void) = 0; + + /** + * \brief Moves a cursor to the beginning of the the input text. + * @return true if cursor is moved. + */ + virtual bool moveCursorToBegin (void) = 0; + + /** + * \brief Removes a input character before a cursor. + * @return true if a character is removed. + */ + virtual bool removeCharBefore (void) = 0; + + /** + * \brief Removes a input character after a cursor. + * @return true if a character is removed. + */ + virtual bool removeCharAfter (void) = 0; + + /** + * \brief Removes a chinese character before a cursor. + * @return true if a character is removed. + */ + virtual bool removeWordBefore (void) = 0; + + /** + * \brief Removes a chinese character after a cursor. + * @return true if a character is removed. + * + * Currently text after a cursor is not converted and it is assumed as one + * chinese character. So this method removes all text after a cursor. + */ + virtual bool removeWordAfter (void) = 0; + + /** + * \brief Moves a cursor to the end of the the input text. + * @return true if cursor is moved. + */ + virtual bool moveCursorToEnd (void) = 0; + + /** + * \brief Selects a candidate and converts a rest text. + * @param index Index of the candidate. (0-origin) + * @return true if it takes valid index. + * @see commit + * + * If there are no rest text after select, this method triggeres commit. + */ + virtual bool selectCandidate (size_t index) = 0; + + /** + * \brief Focuses a candidate. + * @param index Index of the candidate. (0-origin) + * @return true if it takes valid index. + */ + virtual bool focusCandidate (size_t index) = 0; + + /** + * \brief Focuses a previous candidate. + * @return true if focused index is changed. + */ + virtual bool focusCandidatePrevious (void) = 0; + + /** + * \brief Focuses a next candidate. + * @return true if there are some candidates after the focused candidate; + * false otherwise. + */ + virtual bool focusCandidateNext (void) = 0; + + /** + * \brief Resets a user input history of the candidate. + * @param index Index of the candidate. (0-origin) + * @return true if it takes valid index. + */ + virtual bool resetCandidate (size_t index) = 0; + + /** + * \brief Unselects a selected text. + * @return true if there are some selected text. + */ + virtual bool unselectCandidates () = 0; + + /** + * \brief Checks the candidate is exist or not. + * @param index Index of the candidate. (0-origin) + * @return true if the candidate is exist. + * @see getPreparedCandidatesSize + * + * This method may update prepared + * candidates size. + */ + virtual bool hasCandidate (size_t index) = 0; + + /** + * \brief Gets the candidate if exists. + * @param index Index of the candidate. (0-origin) + * @param output A candidate which is got. + * @return true if the candidate is exist. + * @see getPreparedCandidatesSize + * + * This method may update prepared + * candidates size. + */ + virtual bool getCandidate (size_t index, Candidate & output) = 0; + + /** + * \brief Gets a already prepared candidates size. + * @return Prepared candidates size. + * + * To avoid a performance issue, this library prepares candidates on demand. + * This method returns a size of candidates which are already prepared. + */ + virtual size_t getPreparedCandidatesSize () const = 0; + + /** + * \brief Initializes a InputContext class. + * + * This is a wrapper function of input (user_cache_dir, user_config_dir). + * Default values are set to user_cache_dir and user_config_dir. + * You should call this function at first. + */ + static void init (); + + /** + * \brief Initializes a InputContext class. + * @param user_cache_dir Directory which stores a user cache data. + * (input history, etc.) + * @param user_config_dir Directory which stores a user config data. + * If you want to use original special phrase table, please create + * "phrases.txt" under this directory. + * + * Specifies a directory to stores user data. + * You can set a same directory to user_cache_dir and user_config_dir. + * You should call this function at first. + */ + static void init (const std::string & user_cache_dir, + const std::string & user_config_dir); + + /** + * \brief Finalizes a InputContext class. + * + * You should call it at last. + */ + static void finalize (); + + /** + * \brief Creates a new InputContext instance. + * @param type The type of the input. + * @param observer Observer to get a notification from the InputContext + * instance. + * @return instance of the InputContext. + * + * You should take responsibility for deleting the instance. + */ + static InputContext * create (InputContext::InputType type, + InputContext::Observer * observer); + + /** + * \brief Returns a input text. + * @return input text. + */ + virtual const std::string & inputText () const = 0; + + /** + * \brief Returns a selected text. + * @return selected text. + */ + virtual const std::string & selectedText (void) const = 0; + + /** + * \brief Returns a conversion text. + * @return conversion text. + */ + virtual const std::string & conversionText (void) const = 0; + + /** + * \brief Returns a rest text. + * @return rest text. + */ + virtual const std::string & restText (void) const = 0; + + /** + * \brief Returns a auxiliary text. + * @return auxiliary text. + */ + virtual const std::string & auxiliaryText (void) const = 0; + + /** + * \brief Returns a cursor position from the beginning of the input text. + * @return cursor position. + */ + virtual unsigned int cursor () const = 0; + + /** + * \brief Returns a index of the focused candidate. + * @return index of the focused candidate. (0-origin) + */ + virtual unsigned int focusedCandidate () const = 0; + + /** + * \brief Gets property of the context. + * @param name you want to get. + * @return value of the property. + */ + virtual Variant getProperty (PropertyName name) const = 0; + + /** + * \brief Sets property of the context. + * @param name you want to get. + * @param variant value of the property. + * @return true if the value is set successfully. + */ + virtual bool setProperty (PropertyName name, const Variant &variant)= 0; +}; + +}; // namespace PyZy + +#endif // __PYZY_INPUT_CONTEXT_H_ diff --git a/src/Makefile.am b/src/Makefile.am index 29d5860..23ad8be 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -35,11 +35,11 @@ libpyzy=libpyzy-1.0.la -libpyzyincludedir = $(includedir)/pyzy-@PYZY_API_VERSION@ +libpyzyincludedir = $(includedir)/pyzy-@PYZY_API_VERSION@/PyZy libpyzyinclude_HEADERS = \ - PyZyConst.h \ - PyZyInputContext.h \ - PyZyVariant.h \ + Const.h \ + InputContext.h \ + Variant.h \ $(NULL) lib_LTLIBRARIES = $(libpyzy) @@ -47,51 +47,51 @@ lib_LTLIBRARIES = $(libpyzy) libpyzy_built_c_sources = \ $(NULL) libpyzy_built_h_sources = \ - PyZyBopomofoKeyboard.h \ - PyZyPinyinParserTable.h \ - PyZySimpTradConverterTable.h \ + BopomofoKeyboard.h \ + PinyinParserTable.h \ + SimpTradConverterTable.h \ $(NULL) libpyzy_c_sources = \ - PyZyBopomofoContext.cc \ - PyZyDatabase.cc \ - PyZyDoublePinyinContext.cc \ - PyZyDynamicSpecialPhrase.cc \ - PyZyFullPinyinContext.cc \ - PyZyInputContext.cc \ - PyZyPhoneticContext.cc \ - PyZyPhraseEditor.cc \ - PyZyPinyinContext.cc \ - PyZyPinyinParser.cc \ - PyZySimpTradConverter.cc \ - PyZySpecialPhraseTable.cc \ - PyZyVariant.cc \ + BopomofoContext.cc \ + Database.cc \ + DoublePinyinContext.cc \ + DynamicSpecialPhrase.cc \ + FullPinyinContext.cc \ + InputContext.cc \ + PhoneticContext.cc \ + PhraseEditor.cc \ + PinyinContext.cc \ + PinyinParser.cc \ + SimpTradConverter.cc \ + SpecialPhraseTable.cc \ + Variant.cc \ $(NULL) -# PyZyTest.cc +# Test.cc libpyzy_h_sources = \ - PyZyBopomofo.h \ - PyZyBopomofoContext.h \ - PyZyConfig.h \ - PyZyConst.h \ - PyZyDatabase.h \ - PyZyDoublePinyinContext.h \ - PyZyDoublePinyinTable.h \ - PyZyDynamicSpecialPhrase.h \ - PyZyFullPinyinContext.h \ - PyZyInputContext.h \ - PyZyPhoneticContext.h \ - PyZyPhrase.h \ - PyZyPhraseArray.h \ - PyZyPhraseEditor.h \ - PyZyPinyinArray.h \ - PyZyPinyinContext.h \ - PyZyPinyinParser.h \ - PyZySimpTradConverter.h \ - PyZySpecialPhrase.h \ - PyZySpecialPhraseTable.h \ - PyZyString.h \ - PyZyTypes.h \ - PyZyUtil.h \ - PyZyVariant.h \ + Bopomofo.h \ + BopomofoContext.h \ + Config.h \ + Const.h \ + Database.h \ + DoublePinyinContext.h \ + DoublePinyinTable.h \ + DynamicSpecialPhrase.h \ + FullPinyinContext.h \ + InputContext.h \ + PhoneticContext.h \ + Phrase.h \ + PhraseArray.h \ + PhraseEditor.h \ + PinyinArray.h \ + PinyinContext.h \ + PinyinParser.h \ + SimpTradConverter.h \ + SpecialPhrase.h \ + SpecialPhraseTable.h \ + String.h \ + Types.h \ + Util.h \ + Variant.h \ $(NULL) libpyzy_1_0_la_SOURCES = \ @@ -152,26 +152,26 @@ CLEANFILES = \ ZhConversion.* \ $(NULL) -PyZyBopomofoKeyboard.h: +BopomofoKeyboard.h: $(AM_V_GEN) \ $(PYTHON) $(top_srcdir)/scripts/genbopomofokeyboard.py > $@ || \ ( $(RM) $@; exit 1 ) -PyZyPinyinParserTable.h: +PinyinParserTable.h: $(AM_V_GEN) \ $(PYTHON) $(top_srcdir)/scripts/genpytable.py > $@ || \ ( $(RM) $@; exit 1 ) -PyZySimpTradConverterTable.h: +SimpTradConverterTable.h: $(AM_V_GEN) \ $(PYTHON) $(top_srcdir)/scripts/update-simptrad-table.py > $@ || \ ( $(RM) $@; exit 1 ) update-simptrad-table: - $(RM) ZhConversion.php ZhConversion.py PyZySimpTradConverterTable.h + $(RM) ZhConversion.php ZhConversion.py SimpTradConverterTable.h $(MAKE) ZhConversion.php $(MAKE) ZhConversion.py - $(MAKE) PyZySimpTradConverterTable.h + $(MAKE) SimpTradConverterTable.h ZhConversion.php: $(AM_V_GEN) \ diff --git a/src/PhoneticContext.cc b/src/PhoneticContext.cc new file mode 100644 index 0000000..3dfad8b --- /dev/null +++ b/src/PhoneticContext.cc @@ -0,0 +1,335 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#include "PhoneticContext.h" + +#include "Database.h" +#include "PhraseEditor.h" +#include "SimpTradConverter.h" + +namespace PyZy { + +PhoneticContext::PhoneticContext (PhoneticContext::Observer *observer) + : m_phrase_editor (m_config), + m_observer (observer) +{ + resetContext (); +} + +PhoneticContext::~PhoneticContext () +{ +} + +bool +PhoneticContext::updateSpecialPhrases (void) +{ + size_t size = m_special_phrases.size (); + m_special_phrases.clear (); + + if (!m_config.specialPhrases) + return false; + + if (!m_selected_special_phrase.empty ()) + return false; + + size_t begin = m_phrase_editor.cursorInChar (); + size_t end = m_cursor; + + if (begin < end) { + SpecialPhraseTable::instance ().lookup ( + m_text.substr (begin, m_cursor - begin), + m_special_phrases); + } + + return size != m_special_phrases.size () || size != 0; +} + +void +PhoneticContext::reset (void) +{ + resetContext (); + update (); + updateInputText (); +} + +void +PhoneticContext::commitText (const std::string & commit_text) +{ + m_observer->commitText (this, commit_text); +} + +void +PhoneticContext::updateInputText (void) +{ + m_observer->inputTextChanged (this); +} + +void +PhoneticContext::updateCursor (void) +{ + m_observer->cursorChanged (this); +} + +void +PhoneticContext::updateCandidates (void) +{ + m_focused_candidate = 0; + m_observer->candidatesChanged (this); +} + +void +PhoneticContext::updateAuxiliaryText (void) +{ + m_observer->auxiliaryTextChanged (this); +} + +void +PhoneticContext::updatePreeditText (void) +{ + m_observer->preeditTextChanged (this); +} + +void +PhoneticContext::resetContext (void) +{ + m_cursor = 0; + m_focused_candidate = 0; + m_pinyin.clear (); + m_pinyin_len = 0; + m_phrase_editor.reset (); + m_special_phrases.clear (); + m_selected_special_phrase.clear (); + m_text.clear (); + m_preedit_text.clear (); + m_auxiliary_text.clear (); +} + +bool +PhoneticContext::focusCandidatePrevious () +{ + if (G_UNLIKELY (m_focused_candidate == 0)) { + return false; + } + return focusCandidate (m_focused_candidate - 1); +} + +bool +PhoneticContext::focusCandidateNext () +{ + if (G_UNLIKELY (!hasCandidate (m_focused_candidate + 1))) { + return false; + } + return focusCandidate (m_focused_candidate + 1); +} + +bool +PhoneticContext::focusCandidate (size_t i) +{ + if (G_UNLIKELY (!hasCandidate (i))) { + g_warning ("Too big index. Can't focus to selected candidate."); + return false; + } + m_focused_candidate = i; + + updatePreeditText(); + + return true; +} + +void +PhoneticContext::update () +{ + updateCandidates (); + updatePreeditText (); + updateAuxiliaryText (); +} + +bool +PhoneticContext::selectCandidate (size_t i) +{ + if (!hasCandidate (i)) { + g_warning ("selectCandidate(%zd): Too big index!\n", i); + return false; + } + + if (i < m_special_phrases.size ()) { + // select a special phrase + m_selected_special_phrase = m_special_phrases[i]; + m_focused_candidate = 0; + if (m_cursor == m_text.size ()) { + commit (); + } + else { + updateSpecialPhrases (); + update (); + } + + return true; + } + + i -= m_special_phrases.size (); + if (m_phrase_editor.selectCandidate (i)) { + m_focused_candidate = 0; + if (m_phrase_editor.pinyinExistsAfterCursor () || + *textAfterPinyin () != '\0') { + updateSpecialPhrases (); + update (); + } + else { + commit (); + } + return true; + } + + return false; +} + +bool +PhoneticContext::resetCandidate (size_t i) +{ + if (i < m_special_phrases.size ()) { + return false; + } + i -= m_special_phrases.size (); + + if (m_phrase_editor.resetCandidate (i)) { + updateCandidates (); + } + + return true; +} + +bool +PhoneticContext::unselectCandidates () +{ + if (!m_phrase_editor.unselectCandidates ()) { + return false; + } + updateSpecialPhrases (); + update (); + return true; +} + +bool +PhoneticContext::hasCandidate (size_t i) +{ + if (G_UNLIKELY (!m_selected_special_phrase.empty())) { + return false; + } + + while (true) { + const size_t candidates_size = + m_special_phrases.size () + m_phrase_editor.candidates ().size (); + if (i < candidates_size) { + break; + } + if (G_UNLIKELY (!m_phrase_editor.fillCandidates ())) { + return false; + } + } + + return true; +} + +bool +PhoneticContext::getCandidate (size_t i, Candidate & candidate) +{ + if (G_UNLIKELY (!hasCandidate (i))) { + return false; + } + + if (i < m_special_phrases.size ()) { + candidate.text = m_special_phrases[i]; + candidate.type = SPECIAL_PHRASE; + return true; + } + + i -= m_special_phrases.size (); + if (m_config.modeSimp) { + candidate.text = m_phrase_editor.candidate (i).phrase; + } else { + String output; + SimpTradConverter::simpToTrad (m_phrase_editor.candidate (i).phrase, + output); + candidate.text = output; + } + candidate.type = m_phrase_editor.candidateIsUserPhrase (i) + ? USER_PHRASE : NORMAL_PHRASE; + return true; +} + +size_t +PhoneticContext::getPreparedCandidatesSize () const +{ + if (G_UNLIKELY (!m_selected_special_phrase.empty())) { + return 0; + } + + return m_special_phrases.size () + m_phrase_editor.candidates ().size (); +} + +Variant +PhoneticContext::getProperty (PropertyName name) const +{ + switch (name) { + case PROPERTY_CONVERSION_OPTION: + return Variant::fromUnsignedInt (m_config.option); + case PROPERTY_SPECIAL_PHRASE: + return Variant::fromBool (m_config.specialPhrases); + case PROPERTY_MODE_SIMP: + return Variant::fromBool (m_config.modeSimp); + default: + return Variant::nullVariant (); + } +} + +bool +PhoneticContext::setProperty (PropertyName name, const Variant &variant) +{ + if (variant.getType () == Variant::TYPE_UNSIGNED_INT) { + const unsigned int value = variant.getUnsignedInt (); + + switch (name) { + case PROPERTY_CONVERSION_OPTION: + m_config.option = value; + return true; + default: + return false; + } + } else if (variant.getType () == Variant::TYPE_BOOL) { + const bool value = variant.getBool (); + + switch (name) { + case PROPERTY_SPECIAL_PHRASE: + m_config.specialPhrases = value; + return true; + case PROPERTY_MODE_SIMP: + m_config.modeSimp = value; + return true; + default: + return false; + } + } + + return false; +} + +}; // namespace PyZy diff --git a/src/PhoneticContext.h b/src/PhoneticContext.h new file mode 100644 index 0000000..072f819 --- /dev/null +++ b/src/PhoneticContext.h @@ -0,0 +1,165 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_PHONETIC_CONTEXT_H_ +#define __PYZY_PHONETIC_CONTEXT_H_ + +#include +#include + +#include "Config.h" +#include "Const.h" +#include "InputContext.h" +#include "PhraseEditor.h" +#include "PinyinArray.h" +#include "SpecialPhraseTable.h" +#include "Variant.h" + +namespace PyZy { + +#define MAX_PINYIN_LEN 64 + +struct Preedit { + std::string selected_text; + std::string candidate_text; + std::string rest_text; + + void clear () { + selected_text.clear (); + candidate_text.clear (); + rest_text.clear (); + } +}; + +class PhoneticContext : public InputContext { +public: + explicit PhoneticContext (PhoneticContext::Observer *observer); + virtual ~PhoneticContext (void); + + /* API of InputContext */ + virtual void reset (void); + + bool selectCandidate (size_t i); + bool focusCandidate (size_t i); + bool focusCandidatePrevious (); + bool focusCandidateNext (); + bool resetCandidate (size_t i); + bool unselectCandidates (); + bool hasCandidate (size_t i); + bool getCandidate (size_t i, Candidate & output); + size_t getPreparedCandidatesSize () const; + + virtual Variant getProperty (PropertyName name) const; + virtual bool setProperty (PropertyName name, const Variant &variant); + + /* Accessors of InputContext. */ + virtual const std::string & inputText () const + { + return m_text; + } + + virtual const std::string & selectedText (void) const + { + return m_preedit_text.selected_text; + } + + virtual const std::string & conversionText (void) const + { + return m_preedit_text.candidate_text; + } + + virtual const std::string & restText (void) const + { + return m_preedit_text.rest_text; + } + + virtual const std::string & auxiliaryText (void) const + { + return m_auxiliary_text; + } + + virtual unsigned int cursor () const + { + return m_cursor; + } + + virtual unsigned int focusedCandidate () const + { + return m_focused_candidate; + } + +protected: + virtual void resetContext (void); + virtual void update (void); + virtual void commitText (const std::string & commit_text); + virtual void updateInputText (void); + virtual void updateCursor (void); + virtual void updateCandidates (void); + virtual void updateAuxiliaryText (void); + virtual void updatePreeditText (void); + virtual bool updateSpecialPhrases (void); + + /* inline functions */ + void updatePhraseEditor (void) + { + m_phrase_editor.update (m_pinyin); + } + + const char * textAfterPinyin () const + { + return (const char *)m_text + m_pinyin_len; + } + + const char * textAfterPinyin (size_t i) const + { + g_assert (i <= m_pinyin.size ()); + if ( G_UNLIKELY (i == 0)) + return m_text; + i--; + return (const char *)m_text + m_pinyin[i].begin + m_pinyin[i].len; + } + + const char * textAfterCursor () const + { + return (const char *)m_text + m_cursor; + } + + /* variables */ + Config m_config; + size_t m_cursor; + size_t m_focused_candidate; + PinyinArray m_pinyin; + size_t m_pinyin_len; + String m_buffer; + PhraseEditor m_phrase_editor; + std::vector m_special_phrases; + std::string m_selected_special_phrase; + String m_text; + Preedit m_preedit_text; + std::string m_auxiliary_text; + +private: + PhoneticContext::Observer *m_observer; +}; + +}; // namespace PyZy + +#endif // __PYZY_PHONETIC_CONTEXT_H_ diff --git a/src/Phrase.h b/src/Phrase.h new file mode 100644 index 0000000..e2d46ae --- /dev/null +++ b/src/Phrase.h @@ -0,0 +1,75 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_PHRASE_H_ +#define __PYZY_PHRASE_H_ + +#include +#include + +#include "Types.h" + +namespace PyZy { + +#define PHRASE_LEN_IN_BYTE (MAX_UTF8_LEN * (MAX_PHRASE_LEN + 1)) + +struct Phrase { + char phrase[PHRASE_LEN_IN_BYTE]; + unsigned int freq; + unsigned int user_freq; + struct { + unsigned char sheng; + unsigned char yun; + } pinyin_id[MAX_PHRASE_LEN]; + size_t len; + + void reset (void) + { + phrase[0] = 0; + freq = 0; + user_freq = 0; + len = 0; + } + + bool empty (void) const + { + return len == 0; + } + + Phrase & operator += (const Phrase & a) + { + g_assert (len + a.len <= MAX_PHRASE_LEN); + g_strlcat (phrase, a.phrase, sizeof (phrase)); + std::memcpy (pinyin_id + len, a.pinyin_id, a.len << 1); + len += a.len; + return *this; + } + + operator const char * (void) const + { + return phrase; + } + +}; + +}; // namespace PyZy + +#endif // __PYZY_PHRASE_H_ diff --git a/src/PhraseArray.h b/src/PhraseArray.h new file mode 100644 index 0000000..cab0b86 --- /dev/null +++ b/src/PhraseArray.h @@ -0,0 +1,35 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_PHRASE_ARRAY_H_ +#define __PYZY_PHRASE_ARRAY_H_ + +#include + +#include "Phrase.h" + +namespace PyZy { + +typedef std::vector PhraseArray; + +}; // namespace PyZy + +#endif // __PYZY_PHRASE_ARRAY_H_ diff --git a/src/PhraseEditor.cc b/src/PhraseEditor.cc new file mode 100644 index 0000000..912c92a --- /dev/null +++ b/src/PhraseEditor.cc @@ -0,0 +1,174 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#include "PhraseEditor.h" + +#include "Config.h" +#include "Database.h" +#include "SimpTradConverter.h" + +namespace PyZy { + +PhraseEditor::PhraseEditor (const Config & config) + : m_config(config), + m_candidates (32), + m_selected_phrases (8), + m_selected_string (32), + m_candidate_0_phrases (8), + m_pinyin (16), + m_cursor (0) +{ +} + +PhraseEditor::~PhraseEditor (void) +{ +} + +bool +PhraseEditor::update (const PinyinArray &pinyin) +{ + /* the size of pinyin must not bigger than MAX_PHRASE_LEN */ + g_assert (pinyin.size () <= MAX_PHRASE_LEN); + + m_pinyin = pinyin; + m_cursor = 0; + + /* FIXME, should not remove all phrases1 */ + m_selected_phrases.clear (); + m_selected_string.truncate (0); + updateCandidates (); + return true; +} + +bool +PhraseEditor::resetCandidate (size_t i) +{ + Database::instance ().remove (m_candidates[i]); + + updateCandidates (); + return true; +} + +void +PhraseEditor::commit (void) +{ + Database::instance ().commit (m_selected_phrases); + reset (); +} + +bool +PhraseEditor::selectCandidate (size_t i) +{ + if (G_UNLIKELY (i >= m_candidates.size ())) + return false; + + if (G_LIKELY (i == 0)) { + m_selected_phrases.insert (m_selected_phrases.end (), + m_candidate_0_phrases.begin (), + m_candidate_0_phrases.end ()); + if (G_LIKELY (m_config.modeSimp)) + m_selected_string << m_candidates[0].phrase; + else + SimpTradConverter::simpToTrad (m_candidates[0].phrase, m_selected_string); + m_cursor = m_pinyin.size (); + } + else { + m_selected_phrases.push_back (m_candidates[i]); + if (G_LIKELY (m_config.modeSimp)) + m_selected_string << m_candidates[i].phrase; + else + SimpTradConverter::simpToTrad (m_candidates[i].phrase, m_selected_string); + m_cursor += m_candidates[i].len; + } + + updateCandidates (); + return true; +} + +void +PhraseEditor::updateCandidates (void) +{ + m_candidates.clear (); + m_query.reset (); + updateTheFirstCandidate (); + + if (G_UNLIKELY (m_pinyin.size () == 0)) + return; + + if (G_LIKELY (m_candidate_0_phrases.size () > 1)) { + Phrase phrase; + phrase.reset (); + for (size_t i = 0; i < m_candidate_0_phrases.size (); i++) + phrase += m_candidate_0_phrases[i]; + m_candidates.push_back (phrase); + } + + m_query.reset (new Query (m_pinyin, + m_cursor, + m_pinyin.size () - m_cursor, + m_config.option)); + fillCandidates (); +} + +void +PhraseEditor::updateTheFirstCandidate (void) +{ + size_t begin; + size_t end; + + m_candidate_0_phrases.clear (); + + if (G_UNLIKELY (m_pinyin.size () == 0)) + return; + + begin = m_cursor; + end = m_pinyin.size (); + + while (begin != end) { + int ret; + Query query (m_pinyin, + begin, + end - begin, + m_config.option); + ret = query.fill (m_candidate_0_phrases, 1); + g_assert (ret == 1); + begin += m_candidate_0_phrases.back ().len; + } +} + +bool +PhraseEditor::fillCandidates (void) +{ + if (G_UNLIKELY (m_query.get () == NULL)) { + return false; + } + + int ret = m_query->fill (m_candidates, FILL_GRAN); + + if (G_UNLIKELY (ret < FILL_GRAN)) { + /* got all candidates from query */ + m_query.reset (); + } + + return ret > 0 ? true : false; +} + +}; // namespace PyZy diff --git a/src/PhraseEditor.h b/src/PhraseEditor.h new file mode 100644 index 0000000..6731314 --- /dev/null +++ b/src/PhraseEditor.h @@ -0,0 +1,133 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_PHRASE_EDITOR_H_ +#define __PYZY_PHRASE_EDITOR_H_ + +#include "PhraseArray.h" +#include "PinyinArray.h" +#include "String.h" +#include "Util.h" + +#define FILL_GRAN (12) + +namespace PyZy { + +class Config; +class Database; +class Query; + +class PhraseEditor { +public: + explicit PhraseEditor (const Config & config); + ~PhraseEditor (void); + + const String & selectedString (void) const { return m_selected_string; } + const PinyinArray & pinyin (void) const { return m_pinyin; } + const PhraseArray & candidates (void) const { return m_candidates; } + size_t cursor (void) const { return m_cursor; } + + size_t cursorInChar (void) const + { + return m_cursor == 0 ? 0 : m_pinyin[m_cursor - 1].begin + m_pinyin[m_cursor - 1].len; + } + + bool pinyinExistsAfterCursor (void) const + { + return m_pinyin.size () > m_cursor; + } + + const Phrase & candidate (size_t i) const + { + return m_candidates[i]; + } + + bool fillCandidates (void); + + const PhraseArray & candidate0 (void) const + { + return m_candidate_0_phrases; + } + + bool candidateIsUserPhrase (size_t i) const + { + const Phrase & phrase = m_candidates[i]; + return phrase.len > 1 && phrase.user_freq > 0 && phrase.freq == 0; + } + + bool unselectCandidates (void) + { + if (m_cursor == 0) { + return false; + } + else { + m_selected_phrases.clear (); + m_selected_string.truncate (0); + m_cursor = 0; + updateCandidates (); + return true; + } + } + + void reset (void) + { + m_candidates.clear (); + m_selected_phrases.clear (); + m_selected_string.truncate (0); + m_candidate_0_phrases.clear (); + m_pinyin.clear (); + m_cursor = 0; + m_query.reset (); + } + + bool update (const PinyinArray &pinyin); + bool selectCandidate (size_t i); + bool resetCandidate (size_t i); + void commit (void); + + bool empty (void) const + { + return m_selected_string.empty () && m_candidate_0_phrases.empty (); + } + + operator bool (void) const + { + return !empty (); + } + +private: + void updateCandidates (void); + void updateTheFirstCandidate (void); + +private: + const Config &m_config; + PhraseArray m_candidates; // candidates phrase array + PhraseArray m_selected_phrases; // selected phrases, before cursor + String m_selected_string; // selected phrases, in string format + PhraseArray m_candidate_0_phrases; // the first candidate in phrase array format + PinyinArray m_pinyin; + size_t m_cursor; + std::shared_ptr m_query; +}; + +}; // namespace PyZy + +#endif // __PYZY_PHRASE_EDITOR_H_ diff --git a/src/PinyinArray.h b/src/PinyinArray.h new file mode 100644 index 0000000..8d55da1 --- /dev/null +++ b/src/PinyinArray.h @@ -0,0 +1,75 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_PINYIN_ARRAY_H_ +#define __PYZY_PINYIN_ARRAY_H_ + +#include + +#include "Types.h" + +namespace PyZy { + +struct PinyinSegment { + const Pinyin *pinyin; + size_t begin; + size_t len; + + PinyinSegment (const Pinyin *pinyin = NULL, size_t begin = 0, size_t len = 0) + : pinyin (pinyin), begin (begin), len (len) { } + + operator const Pinyin * (void) const + { + return pinyin; + } + + const Pinyin * operator-> (void) const + { + return pinyin; + } + + bool operator == (const PinyinSegment & p) const + { + return (pinyin == p.pinyin) && (begin == p.begin) && (len == p.len); + } + + bool operator == (const Pinyin *p) const + { + return pinyin == p; + } +}; + +class PinyinArray: public std::vector { +public: + PinyinArray (size_t init_size = 0) + { + std::vector::reserve (init_size); + } + + void append (const Pinyin *pinyin, size_t begin, size_t len) + { + push_back (PinyinSegment (pinyin, begin, len)); + } +}; + +}; // namespace PyZy + +#endif // __PYZY_PINYIN_ARRAY_H_ diff --git a/src/PinyinContext.cc b/src/PinyinContext.cc new file mode 100644 index 0000000..f2a494b --- /dev/null +++ b/src/PinyinContext.cc @@ -0,0 +1,211 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#include "PinyinContext.h" +#include "SimpTradConverter.h" + +namespace PyZy { + +PinyinContext::PinyinContext (PhoneticContext::Observer * observer) + : PhoneticContext (observer) +{ +} + +PinyinContext::~PinyinContext () +{ +} + +void +PinyinContext::commit (CommitType type) +{ + if (G_UNLIKELY (m_buffer.empty ())) + return; + + m_buffer.clear (); + + if (G_LIKELY(type == TYPE_CONVERTED)) { + m_buffer << m_phrase_editor.selectedString (); + + const char *p; + + if (m_selected_special_phrase.empty ()) { + p = textAfterPinyin (m_buffer.utf8Length ()); + } + else { + m_buffer << m_selected_special_phrase; + p = textAfterCursor (); + } + m_buffer << p; + + m_phrase_editor.commit (); + } else { + m_buffer = m_text; + m_phrase_editor.reset (); + } + + resetContext (); + updateInputText (); + updateCursor (); + update (); + PhoneticContext::commitText (m_buffer); +} + +void +PinyinContext::updatePreeditText () +{ + /* preedit text = selected phrases + highlight candidate + rest text */ + if (G_UNLIKELY (m_phrase_editor.empty () && m_text.empty ())) { + m_preedit_text.clear (); + PhoneticContext::updatePreeditText (); + return; + } + + size_t edit_begin_word = 0; + size_t edit_end_word = 0; + size_t edit_begin_byte = 0; + size_t edit_end_byte = 0; + + m_buffer.clear (); + m_preedit_text.clear (); + + /* add selected phrases */ + m_buffer << m_phrase_editor.selectedString (); + + if (G_UNLIKELY (! m_selected_special_phrase.empty ())) { + /* add selected special phrase */ + m_buffer << m_selected_special_phrase; + edit_begin_word = edit_end_word = m_buffer.utf8Length (); + edit_begin_byte = edit_end_byte = m_buffer.size (); + + /* append text after cursor */ + m_buffer += textAfterCursor (); + } + else { + edit_begin_word = m_buffer.utf8Length (); + edit_begin_byte = m_buffer.size (); + + if (hasCandidate (0)) { + size_t index = m_focused_candidate; + if (index < m_special_phrases.size ()) { + m_buffer << m_special_phrases[index]; + edit_end_word = m_buffer.utf8Length (); + edit_end_byte = m_buffer.size (); + + /* append text after cursor */ + m_buffer << textAfterCursor (); + } + else { + const Phrase & candidate = m_phrase_editor.candidate (index - m_special_phrases.size ()); + if (m_text.size () == m_cursor) { + /* cursor at end */ + if (m_config.modeSimp) + m_buffer << candidate; + else + SimpTradConverter::simpToTrad (candidate, m_buffer); + edit_end_word = m_buffer.utf8Length (); + edit_end_byte = m_buffer.size (); + + /* append rest text */ + m_buffer << textAfterPinyin (edit_end_word); + } + else { + size_t candidate_end = edit_begin_word + candidate.len; + + m_buffer << m_pinyin[edit_begin_word]->sheng << m_pinyin[edit_begin_word]->yun; + + for (size_t i = edit_begin_word + 1; i < candidate_end; i++) { + m_buffer << ' ' << m_pinyin[i]->sheng << m_pinyin[i]->yun; + } + m_buffer << '|' << textAfterPinyin (candidate_end); + m_preedit_text.rest_text = m_buffer; + + edit_end_word = m_buffer.utf8Length (); + edit_end_byte = m_buffer.size (); + } + } + } + else { + edit_end_word = m_buffer.utf8Length (); + edit_end_byte = m_buffer.size (); + m_buffer << textAfterPinyin (); + } + } + + m_preedit_text.selected_text = m_buffer.substr (0, edit_begin_byte); + m_preedit_text.candidate_text = m_buffer.substr (edit_begin_byte, edit_end_byte - edit_begin_byte); + m_preedit_text.rest_text = m_buffer.substr (edit_end_byte); + + PhoneticContext::updatePreeditText (); +} + +void +PinyinContext::updateAuxiliaryText (void) +{ + /* clear pinyin array */ + if (G_UNLIKELY (m_text.empty () || !hasCandidate (0))) { + m_auxiliary_text = ""; + PhoneticContext::updateAuxiliaryText (); + return; + } + + m_buffer.clear (); + + if (m_selected_special_phrase.empty ()) { + if (m_focused_candidate < m_special_phrases.size ()) { + size_t begin = m_phrase_editor.cursorInChar (); + m_buffer << m_text.substr (begin, m_cursor - begin) + << '|' << textAfterCursor (); + } + else { + for (size_t i = m_phrase_editor.cursor (); i < m_pinyin.size (); ++i) { + if (G_LIKELY (i != m_phrase_editor.cursor ())) + m_buffer << ' '; + const Pinyin *p = m_pinyin[i]; + m_buffer << p->sheng + << p->yun; + } + + if (G_UNLIKELY (m_pinyin_len == m_cursor)) { + /* aux = pinyin + non-pinyin */ + // cursor_pos = m_buffer.utf8Length (); + m_buffer << '|' << textAfterPinyin (); + } + else { + /* aux = pinyin + ' ' + non-pinyin before cursor + non-pinyin after cursor */ + m_buffer << ' '; + m_buffer.append (textAfterPinyin (), + m_cursor - m_pinyin_len); + // cursor_pos = m_buffer.utf8Length (); + m_buffer << '|' << textAfterCursor (); + } + } + } + else { + if (m_cursor < m_text.size ()) { + m_buffer << '|' << textAfterCursor (); + } + } + + m_auxiliary_text = m_buffer; + PhoneticContext::updateAuxiliaryText (); +} + +}; // namespace PyZy diff --git a/src/PinyinContext.h b/src/PinyinContext.h new file mode 100644 index 0000000..560a2f1 --- /dev/null +++ b/src/PinyinContext.h @@ -0,0 +1,42 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_PINYIN_CONTEXT_H_ +#define __PYZY_PINYIN_CONTEXT_H_ + +#include "PhoneticContext.h" + +namespace PyZy { + +class PinyinContext : public PhoneticContext { +public: + explicit PinyinContext (PhoneticContext::Observer *observer); + virtual ~PinyinContext (void); + virtual void commit (CommitType type); + +protected: + virtual void updateAuxiliaryText (void); + virtual void updatePreeditText (void); +}; + +}; // namespace PyZy + +#endif // __PYZY_PINYIN_CONTEXT_H_ diff --git a/src/PinyinParser.cc b/src/PinyinParser.cc new file mode 100644 index 0000000..b825408 --- /dev/null +++ b/src/PinyinParser.cc @@ -0,0 +1,356 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#include "PinyinParser.h" + +#include +#include + +#include "Config.h" + +namespace PyZy { + +#include "Bopomofo.h" +#include "PinyinParserTable.h" + +static bool +check_flags (const Pinyin *pinyin, unsigned int option) +{ + if (pinyin == NULL) + return false; + + if (pinyin->flags != 0) { + unsigned int flags; + flags = pinyin->flags & option; + if (flags == 0) + return false; + if ((flags != pinyin->flags) && ((pinyin->flags & PINYIN_CORRECT_ALL) != 0)) + return false; + } + return true; +} + +static int +py_cmp (const void *p1, const void *p2) +{ + const char *str = (const char *) p1; + const Pinyin *py = (const Pinyin *) p2; + + return std::strcmp (str, py->text); +} + +// TODO(hsumita): Replace "int len" to "size_t len" +static const Pinyin * +is_pinyin (const char *p, + const char *end, + int len, + unsigned int option) +{ + char buf[8]; + const Pinyin *result; + + if (G_UNLIKELY (len > 6)) + return NULL; + + if (G_UNLIKELY (len > end - p)) + return NULL; + + if (G_LIKELY (len > 0)) { + std::strncpy (buf, p, len); + buf[len] = 0; + result = (const Pinyin *) std::bsearch (buf, pinyin_table, G_N_ELEMENTS (pinyin_table), + sizeof (Pinyin), py_cmp); + if (check_flags (result, option)) + return result; + return NULL; + } + + /* len < 0 */ + len = MIN (6, end - p); + std::strncpy (buf, p, len); + + for (; len > 0; len --) { + buf[len] = 0; + + result = (const Pinyin *) std::bsearch (buf, pinyin_table, G_N_ELEMENTS (pinyin_table), + sizeof (Pinyin), py_cmp); + if (G_UNLIKELY (check_flags (result, option))) { + return result; + } + } + + return NULL; +} + +static int +sp_cmp (const void *p1, + const void *p2) +{ + const Pinyin **pys = (const Pinyin **) p1; + const Pinyin **e = (const Pinyin **) p2; + + int retval = pys[0] - e[0]; + + if (retval != 0) + return retval; + return pys[1] - e[1]; +} + +static const Pinyin ** +need_resplit(const Pinyin *p1, + const Pinyin *p2) +{ + const Pinyin * pys[] = {p1, p2}; + + return (const Pinyin **) std::bsearch (pys, special_table, G_N_ELEMENTS (special_table), + sizeof (special_table[0]), sp_cmp); +} + +size_t +PinyinParser::parse (const String &pinyin, + size_t len, + unsigned int option, + PinyinArray &result, + size_t max) +{ + const char *p; + const char *end; + const Pinyin *py; + const Pinyin *prev_py; + char prev_c; + + result.clear (); + + if (G_UNLIKELY (len < 0)) + len = pinyin.size (); + + p = pinyin; + end = p + len; + + prev_py = NULL; + + prev_c = 0; + for (; p < end && result.size () < max; ) { + if (G_UNLIKELY (*p == '\'')) { + prev_c = '\''; + p++; + continue; + } + switch (prev_c) { + case 'r': + case 'n': + case 'g': + case 'e': + switch (*p) { + case 'i': + case 'u': + case 'v': + case 'a': + case 'e': + case 'o': + case 'r': + { + const Pinyin **pp; + const Pinyin *new_py1; + const Pinyin *new_py2; + + py = is_pinyin (p, end, -1, option); + + if ((new_py1 = is_pinyin (prev_py->text, + prev_py->text + prev_py->len, + prev_py->len - 1, + option)) != NULL) { + new_py2 = is_pinyin (p -1, end, -1, option); + + if (((new_py2 != NULL) && (new_py2->len > 1 )) && + (py == NULL || new_py2->len > py->len + 1)) { + PinyinSegment & segment = result[result.size () - 1]; + segment.pinyin = new_py1; + segment.len = new_py1->len; + py = new_py2; + p --; + break; + } + } + + if ( py == NULL) + break; + + pp = need_resplit (prev_py, py); + if (pp != NULL) { + PinyinSegment & segment = result[result.size () - 1]; + segment.pinyin = pp[2]; + segment.len = pp[2]->len; + py = pp[3]; + p --; + break; + } + } + default: + py = is_pinyin (p, end, -1, option); + break; + } + break; + default: + py = is_pinyin (p, end, -1, option); + break; + } + + if (G_UNLIKELY (py == NULL)) + break; + + result.append (py, p - (const char *) pinyin, py->len); + p += py->len; + prev_c = py->text[py->len - 1]; + prev_py = py; + } + + if (G_UNLIKELY (p == (const char *)pinyin)) + return 0; +#if 0 + if (G_UNLIKELY (*(p - 1) == '\'')) + p --; +#endif + return p - (const char *)pinyin; +} + +static const char * const +id_map[] = { + "", "b", "c", "ch", + "d", "f", "g", "h", + "j", "k", "l", "m", + "n", "p", "q", "r", + "s", "sh", "t", "w", + "x", "y", "z", "zh", + "a", "ai", "an", "ang", "ao", + "e", "ei", "en", "eng", "er", + "i", "ia", "ian", "iang", "iao", + "ie", "in", "ing", "iong", "iu", + "o", "ong", "ou", + "u", "ua", "uai", "uan", "uang", + 0, /* it should be ue or ve */ + "ui", "un", "uo", "v" +}; + +const Pinyin * +PinyinParser::isPinyin (int sheng, int yun, unsigned int option) +{ + const Pinyin *result; + char buf[16]; + + std::strcpy (buf, id_map[sheng]); + + if (yun == PINYIN_ID_UE) { + /* append ue or ve base on sheng */ + switch (sheng) { + case PINYIN_ID_J: + case PINYIN_ID_Q: + case PINYIN_ID_X: + case PINYIN_ID_Y: + std::strcat (buf, "ue"); + break; + default: + std::strcat (buf, "ve"); + break; + } + } + else { + std::strcat (buf, id_map[yun]); + } + + result = (const Pinyin *) bsearch (buf, pinyin_table, G_N_ELEMENTS (pinyin_table), + sizeof (Pinyin), py_cmp); + if (check_flags (result, option)) + return result; + return NULL; +} + +static int +bopomofo_cmp (const void *p1, const void *p2) +{ + const wchar_t *s1 = (wchar_t *) p1; + const Pinyin *s2 = *(const Pinyin **) p2; + + return std::wcscmp (s1, s2->bopomofo); +} + +bool +PinyinParser::isBopomofoToneChar (const wchar_t ch) +{ + return ch == bopomofo_char[BOPOMOFO_TONE_2] + || ch == bopomofo_char[BOPOMOFO_TONE_3] + || ch == bopomofo_char[BOPOMOFO_TONE_4] + || ch == bopomofo_char[BOPOMOFO_TONE_5]; +} + +size_t +PinyinParser::parseBopomofo (const std::wstring &bopomofo, + size_t len, + unsigned int option, + PinyinArray &result, + size_t max) +{ + std::wstring::const_iterator bpmf = bopomofo.begin(); + const std::wstring::const_iterator end = bpmf + len; + const Pinyin **bs_res = NULL; + wchar_t buf[MAX_BOPOMOFO_LEN + 1]; + size_t i, j; + + result.clear (); + + if (G_UNLIKELY (len < 0)) + len = bopomofo.length (); + + for (; bpmf < end && result.size () < max;) { + for (i = MAX_BOPOMOFO_LEN; i > 0; i--){ + if (bpmf + i > end) + continue; + + for (j = 0; j < i; j++) { + wchar_t key = *(bpmf + j); + + if (j == i - 1 && isBopomofoToneChar (key)) { + break; /* ignore tone */ + } + + buf[j] = key; + } + + buf[j] = '\0'; + bs_res = (const Pinyin **) std::bsearch (buf, + bopomofo_table, + G_N_ELEMENTS (bopomofo_table), + sizeof (bopomofo_table[0]), + bopomofo_cmp); + if (bs_res != NULL && check_flags (*bs_res, option)) + break; + } + if (!(bs_res != NULL && check_flags (*bs_res, option))) + break; + + result.append(*bs_res, bpmf - bopomofo.begin (), i); + bpmf += i; + } + + return bpmf - bopomofo.begin (); +}; + +}; // namespace PyZy diff --git a/src/PinyinParser.h b/src/PinyinParser.h new file mode 100644 index 0000000..5c33d7c --- /dev/null +++ b/src/PinyinParser.h @@ -0,0 +1,49 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_PINYIN_PARSER_H_ +#define __PYZY_PINYIN_PARSER_H_ + +#include "PinyinArray.h" +#include "String.h" + +namespace PyZy { + +class PinyinParser { +public: + static size_t parse (const String &pinyin, // pinyin string + size_t len, // length of pinyin string + unsigned int option, // option + PinyinArray &result, // store pinyin in result + size_t max); // max length of the result + static const Pinyin * isPinyin (int sheng, int yun, unsigned int option); + static size_t parseBopomofo (const std::wstring &bopomofo, + size_t len, + unsigned int option, + PinyinArray &result, + size_t max); + static bool isBopomofoToneChar (const wchar_t ch); + +}; + +}; // namespace PyZy + +#endif // __PYZY_PINYIN_PARSER_H_ diff --git a/src/PinyinParserTable.h b/src/PinyinParserTable.h new file mode 100644 index 0000000..b72c70a --- /dev/null +++ b/src/PinyinParserTable.h @@ -0,0 +1,8090 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +static const Pinyin pinyin_table[] = { + { /* 0 */ + text : "a", + bopomofo : L"ㄚ", + sheng : "", + yun : "a", + pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : 0 + }, + { /* 1 */ + text : "agn", + bopomofo : L"", + sheng : "", + yun : "ang", + pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 2 */ + text : "ai", + bopomofo : L"ㄞ", + sheng : "", + yun : "ai", + pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_AI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 3 */ + text : "amg", + bopomofo : L"", + sheng : "", + yun : "ang", + pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 4 */ + text : "an", + bopomofo : L"ㄢ", + sheng : "", + yun : "an", + pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 5 */ + text : "ang", + bopomofo : L"ㄤ", + sheng : "", + yun : "ang", + pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 6 */ + text : "ao", + bopomofo : L"ㄠ", + sheng : "", + yun : "ao", + pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_AO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 7 */ + text : "b", + bopomofo : L"ㄅ", + sheng : "b", + yun : "", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 8 */ + text : "ba", + bopomofo : L"ㄅㄚ", + sheng : "b", + yun : "a", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 9 */ + text : "bagn", + bopomofo : L"", + sheng : "b", + yun : "ang", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 10 */ + text : "bai", + bopomofo : L"ㄅㄞ", + sheng : "b", + yun : "ai", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_AI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 11 */ + text : "bamg", + bopomofo : L"", + sheng : "b", + yun : "ang", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 12 */ + text : "ban", + bopomofo : L"ㄅㄢ", + sheng : "b", + yun : "an", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 13 */ + text : "bang", + bopomofo : L"ㄅㄤ", + sheng : "b", + yun : "ang", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 14 */ + text : "bao", + bopomofo : L"ㄅㄠ", + sheng : "b", + yun : "ao", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_AO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 15 */ + text : "begn", + bopomofo : L"", + sheng : "b", + yun : "eng", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 16 */ + text : "bei", + bopomofo : L"ㄅㄟ", + sheng : "b", + yun : "ei", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_EI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 17 */ + text : "bemg", + bopomofo : L"", + sheng : "b", + yun : "eng", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 18 */ + text : "ben", + bopomofo : L"ㄅㄣ", + sheng : "b", + yun : "en", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 19 */ + text : "beng", + bopomofo : L"ㄅㄥ", + sheng : "b", + yun : "eng", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 20 */ + text : "bi", + bopomofo : L"ㄅㄧ", + sheng : "b", + yun : "i", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 21 */ + text : "bian", + bopomofo : L"ㄅㄧㄢ", + sheng : "b", + yun : "ian", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 22 */ + text : "biang", + bopomofo : L"ㄅㄧㄤ", + sheng : "b", + yun : "iang", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_IANG_IAN + }, + { /* 23 */ + text : "biao", + bopomofo : L"ㄅㄧㄠ", + sheng : "b", + yun : "iao", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 24 */ + text : "bie", + bopomofo : L"ㄅㄧㄝ", + sheng : "b", + yun : "ie", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 25 */ + text : "bign", + bopomofo : L"", + sheng : "b", + yun : "ing", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 26 */ + text : "bimg", + bopomofo : L"", + sheng : "b", + yun : "ing", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 27 */ + text : "bin", + bopomofo : L"ㄅㄧㄣ", + sheng : "b", + yun : "in", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 28 */ + text : "bing", + bopomofo : L"ㄅㄧㄥ", + sheng : "b", + yun : "ing", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 29 */ + text : "bo", + bopomofo : L"ㄅㄛ", + sheng : "b", + yun : "o", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_O }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 30 */ + text : "bu", + bopomofo : L"ㄅㄨ", + sheng : "b", + yun : "u", + pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 31 */ + text : "c", + bopomofo : L"", + sheng : "c", + yun : "", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 32 */ + text : "ca", + bopomofo : L"ㄘㄚ", + sheng : "c", + yun : "a", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_A }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 33 */ + text : "cagn", + bopomofo : L"", + sheng : "c", + yun : "ang", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ANG }, { PINYIN_ID_CH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 34 */ + text : "cai", + bopomofo : L"ㄘㄞ", + sheng : "c", + yun : "ai", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_AI }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 35 */ + text : "camg", + bopomofo : L"", + sheng : "c", + yun : "ang", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ANG }, { PINYIN_ID_CH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 36 */ + text : "can", + bopomofo : L"ㄘㄢ", + sheng : "c", + yun : "an", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_AN }, { PINYIN_ID_CH, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 37 */ + text : "cang", + bopomofo : L"ㄘㄤ", + sheng : "c", + yun : "ang", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ANG }, { PINYIN_ID_CH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 38 */ + text : "cao", + bopomofo : L"ㄘㄠ", + sheng : "c", + yun : "ao", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_AO }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 39 */ + text : "ce", + bopomofo : L"ㄘㄜ", + sheng : "c", + yun : "e", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_E }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 40 */ + text : "cegn", + bopomofo : L"", + sheng : "c", + yun : "eng", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ENG }, { PINYIN_ID_CH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 41 */ + text : "cemg", + bopomofo : L"", + sheng : "c", + yun : "eng", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ENG }, { PINYIN_ID_CH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 42 */ + text : "cen", + bopomofo : L"ㄘㄣ", + sheng : "c", + yun : "en", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_EN }, { PINYIN_ID_CH, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 43 */ + text : "ceng", + bopomofo : L"ㄘㄥ", + sheng : "c", + yun : "eng", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ENG }, { PINYIN_ID_CH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 44 */ + text : "ch", + bopomofo : L"", + sheng : "ch", + yun : "", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 45 */ + text : "cha", + bopomofo : L"ㄔㄚ", + sheng : "ch", + yun : "a", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_A }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 46 */ + text : "chagn", + bopomofo : L"", + sheng : "ch", + yun : "ang", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ANG }, { PINYIN_ID_C, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 47 */ + text : "chai", + bopomofo : L"ㄔㄞ", + sheng : "ch", + yun : "ai", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_AI }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 48 */ + text : "chamg", + bopomofo : L"", + sheng : "ch", + yun : "ang", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ANG }, { PINYIN_ID_C, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 49 */ + text : "chan", + bopomofo : L"ㄔㄢ", + sheng : "ch", + yun : "an", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_AN }, { PINYIN_ID_C, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 50 */ + text : "chang", + bopomofo : L"ㄔㄤ", + sheng : "ch", + yun : "ang", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ANG }, { PINYIN_ID_C, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 51 */ + text : "chao", + bopomofo : L"ㄔㄠ", + sheng : "ch", + yun : "ao", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_AO }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 52 */ + text : "che", + bopomofo : L"ㄔㄜ", + sheng : "ch", + yun : "e", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_E }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 53 */ + text : "chegn", + bopomofo : L"", + sheng : "ch", + yun : "eng", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ENG }, { PINYIN_ID_C, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 54 */ + text : "chemg", + bopomofo : L"", + sheng : "ch", + yun : "eng", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ENG }, { PINYIN_ID_C, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 55 */ + text : "chen", + bopomofo : L"ㄔㄣ", + sheng : "ch", + yun : "en", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_EN }, { PINYIN_ID_C, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 56 */ + text : "cheng", + bopomofo : L"ㄔㄥ", + sheng : "ch", + yun : "eng", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ENG }, { PINYIN_ID_C, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 57 */ + text : "chi", + bopomofo : L"ㄔ", + sheng : "ch", + yun : "i", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_I }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 58 */ + text : "chogn", + bopomofo : L"", + sheng : "ch", + yun : "ong", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ONG }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 59 */ + text : "chomg", + bopomofo : L"", + sheng : "ch", + yun : "ong", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ONG }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 60 */ + text : "chon", + bopomofo : L"", + sheng : "ch", + yun : "ong", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ONG }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 61 */ + text : "chong", + bopomofo : L"ㄔㄨㄥ", + sheng : "ch", + yun : "ong", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ONG }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 62 */ + text : "chou", + bopomofo : L"ㄔㄡ", + sheng : "ch", + yun : "ou", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_OU }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 63 */ + text : "chu", + bopomofo : L"ㄔㄨ", + sheng : "ch", + yun : "u", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_U }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 64 */ + text : "chuagn", + bopomofo : L"", + sheng : "ch", + yun : "uang", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UANG }, { PINYIN_ID_C, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 6, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 65 */ + text : "chuai", + bopomofo : L"ㄔㄨㄞ", + sheng : "ch", + yun : "uai", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UAI }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 66 */ + text : "chuamg", + bopomofo : L"", + sheng : "ch", + yun : "uang", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UANG }, { PINYIN_ID_C, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 6, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 67 */ + text : "chuan", + bopomofo : L"ㄔㄨㄢ", + sheng : "ch", + yun : "uan", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UAN }, { PINYIN_ID_C, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 68 */ + text : "chuang", + bopomofo : L"ㄔㄨㄤ", + sheng : "ch", + yun : "uang", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UANG }, { PINYIN_ID_C, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 6, + flags : 0 + }, + { /* 69 */ + text : "chuei", + bopomofo : L"", + sheng : "ch", + yun : "ui", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UI }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_UEI_TO_UI + }, + { /* 70 */ + text : "chuen", + bopomofo : L"", + sheng : "ch", + yun : "un", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UN }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 71 */ + text : "chui", + bopomofo : L"ㄔㄨㄟ", + sheng : "ch", + yun : "ui", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UI }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 72 */ + text : "chun", + bopomofo : L"ㄔㄨㄣ", + sheng : "ch", + yun : "un", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UN }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 73 */ + text : "chuo", + bopomofo : L"ㄔㄨㄛ", + sheng : "ch", + yun : "uo", + pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UO }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 74 */ + text : "ci", + bopomofo : L"ㄘ", + sheng : "c", + yun : "i", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_I }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 75 */ + text : "cogn", + bopomofo : L"", + sheng : "c", + yun : "ong", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ONG }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 76 */ + text : "comg", + bopomofo : L"", + sheng : "c", + yun : "ong", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ONG }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 77 */ + text : "con", + bopomofo : L"", + sheng : "c", + yun : "ong", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ONG }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 78 */ + text : "cong", + bopomofo : L"ㄘㄨㄥ", + sheng : "c", + yun : "ong", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ONG }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 79 */ + text : "cou", + bopomofo : L"ㄘㄡ", + sheng : "c", + yun : "ou", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_OU }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 80 */ + text : "cu", + bopomofo : L"ㄘㄨ", + sheng : "c", + yun : "u", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_U }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 81 */ + text : "cuai", + bopomofo : L"ㄘㄨㄞ", + sheng : "c", + yun : "uai", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UAI }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_C_CH + }, + { /* 82 */ + text : "cuan", + bopomofo : L"ㄘㄨㄢ", + sheng : "c", + yun : "uan", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UAN }, { PINYIN_ID_CH, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 83 */ + text : "cuang", + bopomofo : L"ㄘㄨㄤ", + sheng : "c", + yun : "uang", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UANG }, { PINYIN_ID_CH, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_C_CH | PINYIN_FUZZY_UANG_UAN + }, + { /* 84 */ + text : "cuei", + bopomofo : L"", + sheng : "c", + yun : "ui", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UI }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEI_TO_UI + }, + { /* 85 */ + text : "cuen", + bopomofo : L"", + sheng : "c", + yun : "un", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UN }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 86 */ + text : "cui", + bopomofo : L"ㄘㄨㄟ", + sheng : "c", + yun : "ui", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UI }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 87 */ + text : "cun", + bopomofo : L"ㄘㄨㄣ", + sheng : "c", + yun : "un", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UN }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 88 */ + text : "cuo", + bopomofo : L"ㄘㄨㄛ", + sheng : "c", + yun : "uo", + pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UO }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 89 */ + text : "d", + bopomofo : L"ㄉ", + sheng : "d", + yun : "", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 90 */ + text : "da", + bopomofo : L"ㄉㄚ", + sheng : "d", + yun : "a", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 91 */ + text : "dagn", + bopomofo : L"", + sheng : "d", + yun : "ang", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 92 */ + text : "dai", + bopomofo : L"ㄉㄞ", + sheng : "d", + yun : "ai", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_AI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 93 */ + text : "damg", + bopomofo : L"", + sheng : "d", + yun : "ang", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 94 */ + text : "dan", + bopomofo : L"ㄉㄢ", + sheng : "d", + yun : "an", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 95 */ + text : "dang", + bopomofo : L"ㄉㄤ", + sheng : "d", + yun : "ang", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 96 */ + text : "dao", + bopomofo : L"ㄉㄠ", + sheng : "d", + yun : "ao", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_AO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 97 */ + text : "de", + bopomofo : L"ㄉㄜ", + sheng : "d", + yun : "e", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_E }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 98 */ + text : "degn", + bopomofo : L"", + sheng : "d", + yun : "eng", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 99 */ + text : "dei", + bopomofo : L"ㄉㄟ", + sheng : "d", + yun : "ei", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_EI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 100 */ + text : "demg", + bopomofo : L"", + sheng : "d", + yun : "eng", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 101 */ + text : "den", + bopomofo : L"ㄉㄣ", + sheng : "d", + yun : "en", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_EN_ENG + }, + { /* 102 */ + text : "deng", + bopomofo : L"ㄉㄥ", + sheng : "d", + yun : "eng", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 103 */ + text : "di", + bopomofo : L"ㄉㄧ", + sheng : "d", + yun : "i", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 104 */ + text : "dia", + bopomofo : L"ㄉㄧㄚ", + sheng : "d", + yun : "ia", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IA }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 105 */ + text : "dian", + bopomofo : L"ㄉㄧㄢ", + sheng : "d", + yun : "ian", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 106 */ + text : "diang", + bopomofo : L"ㄉㄧㄤ", + sheng : "d", + yun : "iang", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_IANG_IAN + }, + { /* 107 */ + text : "diao", + bopomofo : L"ㄉㄧㄠ", + sheng : "d", + yun : "iao", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 108 */ + text : "die", + bopomofo : L"ㄉㄧㄝ", + sheng : "d", + yun : "ie", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 109 */ + text : "dign", + bopomofo : L"", + sheng : "d", + yun : "ing", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 110 */ + text : "dimg", + bopomofo : L"", + sheng : "d", + yun : "ing", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 111 */ + text : "din", + bopomofo : L"ㄉㄧㄣ", + sheng : "d", + yun : "in", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_IN_ING + }, + { /* 112 */ + text : "ding", + bopomofo : L"ㄉㄧㄥ", + sheng : "d", + yun : "ing", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 113 */ + text : "diou", + bopomofo : L"", + sheng : "d", + yun : "iu", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_IOU_TO_IU + }, + { /* 114 */ + text : "diu", + bopomofo : L"ㄉㄧㄡ", + sheng : "d", + yun : "iu", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 115 */ + text : "dogn", + bopomofo : L"", + sheng : "d", + yun : "ong", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 116 */ + text : "domg", + bopomofo : L"", + sheng : "d", + yun : "ong", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 117 */ + text : "don", + bopomofo : L"", + sheng : "d", + yun : "ong", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 118 */ + text : "dong", + bopomofo : L"ㄉㄨㄥ", + sheng : "d", + yun : "ong", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 119 */ + text : "dou", + bopomofo : L"ㄉㄡ", + sheng : "d", + yun : "ou", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_OU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 120 */ + text : "du", + bopomofo : L"ㄉㄨ", + sheng : "d", + yun : "u", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 121 */ + text : "duan", + bopomofo : L"ㄉㄨㄢ", + sheng : "d", + yun : "uan", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 122 */ + text : "duang", + bopomofo : L"ㄉㄨㄤ", + sheng : "d", + yun : "uang", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_UANG_UAN + }, + { /* 123 */ + text : "duei", + bopomofo : L"", + sheng : "d", + yun : "ui", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_UI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEI_TO_UI + }, + { /* 124 */ + text : "duen", + bopomofo : L"", + sheng : "d", + yun : "un", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 125 */ + text : "dui", + bopomofo : L"ㄉㄨㄟ", + sheng : "d", + yun : "ui", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_UI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 126 */ + text : "dun", + bopomofo : L"ㄉㄨㄣ", + sheng : "d", + yun : "un", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 127 */ + text : "duo", + bopomofo : L"ㄉㄨㄛ", + sheng : "d", + yun : "uo", + pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_UO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 128 */ + text : "e", + bopomofo : L"ㄜ", + sheng : "", + yun : "e", + pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_E }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : 0 + }, + { /* 129 */ + text : "ei", + bopomofo : L"ㄟ", + sheng : "", + yun : "ei", + pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_EI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 130 */ + text : "en", + bopomofo : L"ㄣ", + sheng : "", + yun : "en", + pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 131 */ + text : "er", + bopomofo : L"ㄦ", + sheng : "", + yun : "er", + pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_ER }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 132 */ + text : "f", + bopomofo : L"ㄈ", + sheng : "f", + yun : "", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 133 */ + text : "fa", + bopomofo : L"ㄈㄚ", + sheng : "f", + yun : "a", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_A }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 134 */ + text : "fagn", + bopomofo : L"", + sheng : "f", + yun : "ang", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ANG }, { PINYIN_ID_H, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 135 */ + text : "fai", + bopomofo : L"ㄈㄞ", + sheng : "f", + yun : "ai", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_AI }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_F_H + }, + { /* 136 */ + text : "famg", + bopomofo : L"", + sheng : "f", + yun : "ang", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ANG }, { PINYIN_ID_H, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 137 */ + text : "fan", + bopomofo : L"ㄈㄢ", + sheng : "f", + yun : "an", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_AN }, { PINYIN_ID_H, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 138 */ + text : "fang", + bopomofo : L"ㄈㄤ", + sheng : "f", + yun : "ang", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ANG }, { PINYIN_ID_H, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 139 */ + text : "fao", + bopomofo : L"ㄈㄠ", + sheng : "f", + yun : "ao", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_AO }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_F_H + }, + { /* 140 */ + text : "fe", + bopomofo : L"ㄈㄜ", + sheng : "f", + yun : "e", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_E }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : PINYIN_FUZZY_F_H + }, + { /* 141 */ + text : "fegn", + bopomofo : L"", + sheng : "f", + yun : "eng", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ENG }, { PINYIN_ID_H, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 142 */ + text : "fei", + bopomofo : L"ㄈㄟ", + sheng : "f", + yun : "ei", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_EI }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 143 */ + text : "femg", + bopomofo : L"", + sheng : "f", + yun : "eng", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ENG }, { PINYIN_ID_H, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 144 */ + text : "fen", + bopomofo : L"ㄈㄣ", + sheng : "f", + yun : "en", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_EN }, { PINYIN_ID_H, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 145 */ + text : "feng", + bopomofo : L"ㄈㄥ", + sheng : "f", + yun : "eng", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ENG }, { PINYIN_ID_H, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 146 */ + text : "fo", + bopomofo : L"ㄈㄛ", + sheng : "f", + yun : "o", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_O }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 147 */ + text : "fon", + bopomofo : L"", + sheng : "f", + yun : "ong", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ONG }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_F_H | PINYIN_CORRECT_ON_TO_ONG + }, + { /* 148 */ + text : "fong", + bopomofo : L"ㄈㄨㄥ", + sheng : "f", + yun : "ong", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ONG }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_F_H + }, + { /* 149 */ + text : "fou", + bopomofo : L"ㄈㄡ", + sheng : "f", + yun : "ou", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_OU }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 150 */ + text : "fu", + bopomofo : L"ㄈㄨ", + sheng : "f", + yun : "u", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_U }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 151 */ + text : "fua", + bopomofo : L"ㄈㄨㄚ", + sheng : "f", + yun : "ua", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UA }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_F_H + }, + { /* 152 */ + text : "fuai", + bopomofo : L"ㄈㄨㄞ", + sheng : "f", + yun : "uai", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UAI }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_F_H + }, + { /* 153 */ + text : "fuan", + bopomofo : L"ㄈㄨㄢ", + sheng : "f", + yun : "uan", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UAN }, { PINYIN_ID_H, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_F_H + }, + { /* 154 */ + text : "fuang", + bopomofo : L"ㄈㄨㄤ", + sheng : "f", + yun : "uang", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UANG }, { PINYIN_ID_H, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_F_H + }, + { /* 155 */ + text : "fuei", + bopomofo : L"", + sheng : "f", + yun : "ui", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UI }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_F_H | PINYIN_CORRECT_UEI_TO_UI + }, + { /* 156 */ + text : "fuen", + bopomofo : L"", + sheng : "f", + yun : "un", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UN }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_F_H | PINYIN_CORRECT_UEN_TO_UN + }, + { /* 157 */ + text : "fui", + bopomofo : L"ㄈㄨㄟ", + sheng : "f", + yun : "ui", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UI }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_F_H + }, + { /* 158 */ + text : "fun", + bopomofo : L"ㄈㄨㄣ", + sheng : "f", + yun : "un", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UN }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_F_H + }, + { /* 159 */ + text : "fuo", + bopomofo : L"ㄈㄨㄛ", + sheng : "f", + yun : "uo", + pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UO }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_F_H + }, + { /* 160 */ + text : "g", + bopomofo : L"ㄍ", + sheng : "g", + yun : "", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 161 */ + text : "ga", + bopomofo : L"ㄍㄚ", + sheng : "g", + yun : "a", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_A }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 162 */ + text : "gagn", + bopomofo : L"", + sheng : "g", + yun : "ang", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ANG }, { PINYIN_ID_K, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 163 */ + text : "gai", + bopomofo : L"ㄍㄞ", + sheng : "g", + yun : "ai", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_AI }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 164 */ + text : "gamg", + bopomofo : L"", + sheng : "g", + yun : "ang", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ANG }, { PINYIN_ID_K, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 165 */ + text : "gan", + bopomofo : L"ㄍㄢ", + sheng : "g", + yun : "an", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_AN }, { PINYIN_ID_K, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 166 */ + text : "gang", + bopomofo : L"ㄍㄤ", + sheng : "g", + yun : "ang", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ANG }, { PINYIN_ID_K, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 167 */ + text : "gao", + bopomofo : L"ㄍㄠ", + sheng : "g", + yun : "ao", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_AO }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 168 */ + text : "ge", + bopomofo : L"ㄍㄜ", + sheng : "g", + yun : "e", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_E }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 169 */ + text : "gegn", + bopomofo : L"", + sheng : "g", + yun : "eng", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ENG }, { PINYIN_ID_K, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 170 */ + text : "gei", + bopomofo : L"ㄍㄟ", + sheng : "g", + yun : "ei", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_EI }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 171 */ + text : "gemg", + bopomofo : L"", + sheng : "g", + yun : "eng", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ENG }, { PINYIN_ID_K, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 172 */ + text : "gen", + bopomofo : L"ㄍㄣ", + sheng : "g", + yun : "en", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_EN }, { PINYIN_ID_K, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 173 */ + text : "geng", + bopomofo : L"ㄍㄥ", + sheng : "g", + yun : "eng", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ENG }, { PINYIN_ID_K, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 174 */ + text : "gogn", + bopomofo : L"", + sheng : "g", + yun : "ong", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ONG }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 175 */ + text : "gomg", + bopomofo : L"", + sheng : "g", + yun : "ong", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ONG }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 176 */ + text : "gon", + bopomofo : L"", + sheng : "g", + yun : "ong", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ONG }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 177 */ + text : "gong", + bopomofo : L"ㄍㄨㄥ", + sheng : "g", + yun : "ong", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ONG }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 178 */ + text : "gou", + bopomofo : L"ㄍㄡ", + sheng : "g", + yun : "ou", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_OU }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 179 */ + text : "gu", + bopomofo : L"ㄍㄨ", + sheng : "g", + yun : "u", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_U }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 180 */ + text : "gua", + bopomofo : L"ㄍㄨㄚ", + sheng : "g", + yun : "ua", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UA }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 181 */ + text : "guagn", + bopomofo : L"", + sheng : "g", + yun : "uang", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UANG }, { PINYIN_ID_K, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 182 */ + text : "guai", + bopomofo : L"ㄍㄨㄞ", + sheng : "g", + yun : "uai", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UAI }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 183 */ + text : "guamg", + bopomofo : L"", + sheng : "g", + yun : "uang", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UANG }, { PINYIN_ID_K, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 184 */ + text : "guan", + bopomofo : L"ㄍㄨㄢ", + sheng : "g", + yun : "uan", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UAN }, { PINYIN_ID_K, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 185 */ + text : "guang", + bopomofo : L"ㄍㄨㄤ", + sheng : "g", + yun : "uang", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UANG }, { PINYIN_ID_K, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 186 */ + text : "guei", + bopomofo : L"", + sheng : "g", + yun : "ui", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UI }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEI_TO_UI + }, + { /* 187 */ + text : "guen", + bopomofo : L"", + sheng : "g", + yun : "un", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UN }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 188 */ + text : "gui", + bopomofo : L"ㄍㄨㄟ", + sheng : "g", + yun : "ui", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UI }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 189 */ + text : "gun", + bopomofo : L"ㄍㄨㄣ", + sheng : "g", + yun : "un", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UN }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 190 */ + text : "guo", + bopomofo : L"ㄍㄨㄛ", + sheng : "g", + yun : "uo", + pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UO }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 191 */ + text : "h", + bopomofo : L"ㄏ", + sheng : "h", + yun : "", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 192 */ + text : "ha", + bopomofo : L"ㄏㄚ", + sheng : "h", + yun : "a", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_A }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 193 */ + text : "hagn", + bopomofo : L"", + sheng : "h", + yun : "ang", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ANG }, { PINYIN_ID_F, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 194 */ + text : "hai", + bopomofo : L"ㄏㄞ", + sheng : "h", + yun : "ai", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_AI }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 195 */ + text : "hamg", + bopomofo : L"", + sheng : "h", + yun : "ang", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ANG }, { PINYIN_ID_F, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 196 */ + text : "han", + bopomofo : L"ㄏㄢ", + sheng : "h", + yun : "an", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_AN }, { PINYIN_ID_F, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 197 */ + text : "hang", + bopomofo : L"ㄏㄤ", + sheng : "h", + yun : "ang", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ANG }, { PINYIN_ID_F, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 198 */ + text : "hao", + bopomofo : L"ㄏㄠ", + sheng : "h", + yun : "ao", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_AO }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 199 */ + text : "he", + bopomofo : L"ㄏㄜ", + sheng : "h", + yun : "e", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_E }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 200 */ + text : "hegn", + bopomofo : L"", + sheng : "h", + yun : "eng", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ENG }, { PINYIN_ID_F, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 201 */ + text : "hei", + bopomofo : L"ㄏㄟ", + sheng : "h", + yun : "ei", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_EI }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 202 */ + text : "hemg", + bopomofo : L"", + sheng : "h", + yun : "eng", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ENG }, { PINYIN_ID_F, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 203 */ + text : "hen", + bopomofo : L"ㄏㄣ", + sheng : "h", + yun : "en", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_EN }, { PINYIN_ID_F, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 204 */ + text : "heng", + bopomofo : L"ㄏㄥ", + sheng : "h", + yun : "eng", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ENG }, { PINYIN_ID_F, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 205 */ + text : "ho", + bopomofo : L"ㄏㄛ", + sheng : "h", + yun : "o", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_O }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : PINYIN_FUZZY_H_F + }, + { /* 206 */ + text : "hogn", + bopomofo : L"", + sheng : "h", + yun : "ong", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ONG }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 207 */ + text : "homg", + bopomofo : L"", + sheng : "h", + yun : "ong", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ONG }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 208 */ + text : "hon", + bopomofo : L"", + sheng : "h", + yun : "ong", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ONG }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 209 */ + text : "hong", + bopomofo : L"ㄏㄨㄥ", + sheng : "h", + yun : "ong", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ONG }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 210 */ + text : "hou", + bopomofo : L"ㄏㄡ", + sheng : "h", + yun : "ou", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_OU }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 211 */ + text : "hu", + bopomofo : L"ㄏㄨ", + sheng : "h", + yun : "u", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_U }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 212 */ + text : "hua", + bopomofo : L"ㄏㄨㄚ", + sheng : "h", + yun : "ua", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UA }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 213 */ + text : "huagn", + bopomofo : L"", + sheng : "h", + yun : "uang", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UANG }, { PINYIN_ID_F, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 214 */ + text : "huai", + bopomofo : L"ㄏㄨㄞ", + sheng : "h", + yun : "uai", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UAI }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 215 */ + text : "huamg", + bopomofo : L"", + sheng : "h", + yun : "uang", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UANG }, { PINYIN_ID_F, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 216 */ + text : "huan", + bopomofo : L"ㄏㄨㄢ", + sheng : "h", + yun : "uan", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UAN }, { PINYIN_ID_F, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 217 */ + text : "huang", + bopomofo : L"ㄏㄨㄤ", + sheng : "h", + yun : "uang", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UANG }, { PINYIN_ID_F, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 218 */ + text : "huei", + bopomofo : L"", + sheng : "h", + yun : "ui", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UI }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEI_TO_UI + }, + { /* 219 */ + text : "huen", + bopomofo : L"", + sheng : "h", + yun : "un", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UN }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 220 */ + text : "hui", + bopomofo : L"ㄏㄨㄟ", + sheng : "h", + yun : "ui", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UI }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 221 */ + text : "hun", + bopomofo : L"ㄏㄨㄣ", + sheng : "h", + yun : "un", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UN }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 222 */ + text : "huo", + bopomofo : L"ㄏㄨㄛ", + sheng : "h", + yun : "uo", + pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UO }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 223 */ + text : "j", + bopomofo : L"ㄐ", + sheng : "j", + yun : "", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 224 */ + text : "ji", + bopomofo : L"ㄐㄧ", + sheng : "j", + yun : "i", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 225 */ + text : "jia", + bopomofo : L"ㄐㄧㄚ", + sheng : "j", + yun : "ia", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IA }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 226 */ + text : "jiagn", + bopomofo : L"", + sheng : "j", + yun : "iang", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 227 */ + text : "jiamg", + bopomofo : L"", + sheng : "j", + yun : "iang", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 228 */ + text : "jian", + bopomofo : L"ㄐㄧㄢ", + sheng : "j", + yun : "ian", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 229 */ + text : "jiang", + bopomofo : L"ㄐㄧㄤ", + sheng : "j", + yun : "iang", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 230 */ + text : "jiao", + bopomofo : L"ㄐㄧㄠ", + sheng : "j", + yun : "iao", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 231 */ + text : "jie", + bopomofo : L"ㄐㄧㄝ", + sheng : "j", + yun : "ie", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 232 */ + text : "jign", + bopomofo : L"", + sheng : "j", + yun : "ing", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 233 */ + text : "jimg", + bopomofo : L"", + sheng : "j", + yun : "ing", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 234 */ + text : "jin", + bopomofo : L"ㄐㄧㄣ", + sheng : "j", + yun : "in", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 235 */ + text : "jing", + bopomofo : L"ㄐㄧㄥ", + sheng : "j", + yun : "ing", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 236 */ + text : "jiogn", + bopomofo : L"", + sheng : "j", + yun : "iong", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 237 */ + text : "jiomg", + bopomofo : L"", + sheng : "j", + yun : "iong", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 238 */ + text : "jion", + bopomofo : L"", + sheng : "j", + yun : "iong", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 239 */ + text : "jiong", + bopomofo : L"ㄐㄩㄥ", + sheng : "j", + yun : "iong", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 240 */ + text : "jiou", + bopomofo : L"", + sheng : "j", + yun : "iu", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_IOU_TO_IU + }, + { /* 241 */ + text : "jiu", + bopomofo : L"ㄐㄧㄡ", + sheng : "j", + yun : "iu", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 242 */ + text : "ju", + bopomofo : L"ㄐㄩ", + sheng : "j", + yun : "u", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 243 */ + text : "juan", + bopomofo : L"ㄐㄩㄢ", + sheng : "j", + yun : "uan", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 244 */ + text : "juang", + bopomofo : L"ㄐㄩㄤ", + sheng : "j", + yun : "uang", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_UANG_UAN + }, + { /* 245 */ + text : "jue", + bopomofo : L"ㄐㄩㄝ", + sheng : "j", + yun : "ue", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 246 */ + text : "juen", + bopomofo : L"", + sheng : "j", + yun : "un", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 247 */ + text : "jun", + bopomofo : L"ㄐㄩㄣ", + sheng : "j", + yun : "un", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 248 */ + text : "jv", + bopomofo : L"", + sheng : "j", + yun : "u", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 249 */ + text : "jvan", + bopomofo : L"", + sheng : "j", + yun : "uan", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 250 */ + text : "jvang", + bopomofo : L"", + sheng : "j", + yun : "uang", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_UANG_UAN | PINYIN_CORRECT_V_TO_U + }, + { /* 251 */ + text : "jve", + bopomofo : L"", + sheng : "j", + yun : "ue", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 252 */ + text : "jven", + bopomofo : L"", + sheng : "j", + yun : "un", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN | PINYIN_CORRECT_V_TO_U + }, + { /* 253 */ + text : "jvn", + bopomofo : L"", + sheng : "j", + yun : "un", + pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 254 */ + text : "k", + bopomofo : L"ㄎ", + sheng : "k", + yun : "", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 255 */ + text : "ka", + bopomofo : L"ㄎㄚ", + sheng : "k", + yun : "a", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_A }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 256 */ + text : "kagn", + bopomofo : L"", + sheng : "k", + yun : "ang", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ANG }, { PINYIN_ID_G, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 257 */ + text : "kai", + bopomofo : L"ㄎㄞ", + sheng : "k", + yun : "ai", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_AI }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 258 */ + text : "kamg", + bopomofo : L"", + sheng : "k", + yun : "ang", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ANG }, { PINYIN_ID_G, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 259 */ + text : "kan", + bopomofo : L"ㄎㄢ", + sheng : "k", + yun : "an", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_AN }, { PINYIN_ID_G, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 260 */ + text : "kang", + bopomofo : L"ㄎㄤ", + sheng : "k", + yun : "ang", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ANG }, { PINYIN_ID_G, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 261 */ + text : "kao", + bopomofo : L"ㄎㄠ", + sheng : "k", + yun : "ao", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_AO }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 262 */ + text : "ke", + bopomofo : L"ㄎㄜ", + sheng : "k", + yun : "e", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_E }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 263 */ + text : "kegn", + bopomofo : L"", + sheng : "k", + yun : "eng", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ENG }, { PINYIN_ID_G, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 264 */ + text : "kei", + bopomofo : L"ㄎㄟ", + sheng : "k", + yun : "ei", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_EI }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_K_G + }, + { /* 265 */ + text : "kemg", + bopomofo : L"", + sheng : "k", + yun : "eng", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ENG }, { PINYIN_ID_G, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 266 */ + text : "ken", + bopomofo : L"ㄎㄣ", + sheng : "k", + yun : "en", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_EN }, { PINYIN_ID_G, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 267 */ + text : "keng", + bopomofo : L"ㄎㄥ", + sheng : "k", + yun : "eng", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ENG }, { PINYIN_ID_G, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 268 */ + text : "kogn", + bopomofo : L"", + sheng : "k", + yun : "ong", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ONG }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 269 */ + text : "komg", + bopomofo : L"", + sheng : "k", + yun : "ong", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ONG }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 270 */ + text : "kon", + bopomofo : L"", + sheng : "k", + yun : "ong", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ONG }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 271 */ + text : "kong", + bopomofo : L"ㄎㄨㄥ", + sheng : "k", + yun : "ong", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ONG }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 272 */ + text : "kou", + bopomofo : L"ㄎㄡ", + sheng : "k", + yun : "ou", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_OU }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 273 */ + text : "ku", + bopomofo : L"ㄎㄨ", + sheng : "k", + yun : "u", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_U }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 274 */ + text : "kua", + bopomofo : L"ㄎㄨㄚ", + sheng : "k", + yun : "ua", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UA }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 275 */ + text : "kuagn", + bopomofo : L"", + sheng : "k", + yun : "uang", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UANG }, { PINYIN_ID_G, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 276 */ + text : "kuai", + bopomofo : L"ㄎㄨㄞ", + sheng : "k", + yun : "uai", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UAI }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 277 */ + text : "kuamg", + bopomofo : L"", + sheng : "k", + yun : "uang", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UANG }, { PINYIN_ID_G, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 278 */ + text : "kuan", + bopomofo : L"ㄎㄨㄢ", + sheng : "k", + yun : "uan", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UAN }, { PINYIN_ID_G, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 279 */ + text : "kuang", + bopomofo : L"ㄎㄨㄤ", + sheng : "k", + yun : "uang", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UANG }, { PINYIN_ID_G, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 280 */ + text : "kuei", + bopomofo : L"", + sheng : "k", + yun : "ui", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UI }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEI_TO_UI + }, + { /* 281 */ + text : "kuen", + bopomofo : L"", + sheng : "k", + yun : "un", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UN }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 282 */ + text : "kui", + bopomofo : L"ㄎㄨㄟ", + sheng : "k", + yun : "ui", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UI }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 283 */ + text : "kun", + bopomofo : L"ㄎㄨㄣ", + sheng : "k", + yun : "un", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UN }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 284 */ + text : "kuo", + bopomofo : L"ㄎㄨㄛ", + sheng : "k", + yun : "uo", + pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UO }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 285 */ + text : "l", + bopomofo : L"ㄌ", + sheng : "l", + yun : "", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 286 */ + text : "la", + bopomofo : L"ㄌㄚ", + sheng : "l", + yun : "a", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_A }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 287 */ + text : "lagn", + bopomofo : L"", + sheng : "l", + yun : "ang", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ANG }, { PINYIN_ID_N, PINYIN_ID_AN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 288 */ + text : "lai", + bopomofo : L"ㄌㄞ", + sheng : "l", + yun : "ai", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_AI }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 289 */ + text : "lamg", + bopomofo : L"", + sheng : "l", + yun : "ang", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ANG }, { PINYIN_ID_N, PINYIN_ID_AN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 290 */ + text : "lan", + bopomofo : L"ㄌㄢ", + sheng : "l", + yun : "an", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_AN }, { PINYIN_ID_N, PINYIN_ID_ANG }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 291 */ + text : "lang", + bopomofo : L"ㄌㄤ", + sheng : "l", + yun : "ang", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ANG }, { PINYIN_ID_N, PINYIN_ID_AN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 292 */ + text : "lao", + bopomofo : L"ㄌㄠ", + sheng : "l", + yun : "ao", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_AO }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 293 */ + text : "le", + bopomofo : L"ㄌㄜ", + sheng : "l", + yun : "e", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_E }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 294 */ + text : "legn", + bopomofo : L"", + sheng : "l", + yun : "eng", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ENG }, { PINYIN_ID_N, PINYIN_ID_EN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 295 */ + text : "lei", + bopomofo : L"ㄌㄟ", + sheng : "l", + yun : "ei", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_EI }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 296 */ + text : "lemg", + bopomofo : L"", + sheng : "l", + yun : "eng", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ENG }, { PINYIN_ID_N, PINYIN_ID_EN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 297 */ + text : "len", + bopomofo : L"ㄌㄣ", + sheng : "l", + yun : "en", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_EN }, { PINYIN_ID_N, PINYIN_ID_ENG }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_L_N | PINYIN_FUZZY_L_R | PINYIN_FUZZY_EN_ENG + }, + { /* 298 */ + text : "leng", + bopomofo : L"ㄌㄥ", + sheng : "l", + yun : "eng", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ENG }, { PINYIN_ID_N, PINYIN_ID_EN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 299 */ + text : "li", + bopomofo : L"ㄌㄧ", + sheng : "l", + yun : "i", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_I }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 300 */ + text : "lia", + bopomofo : L"ㄌㄧㄚ", + sheng : "l", + yun : "ia", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IA }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 301 */ + text : "liagn", + bopomofo : L"", + sheng : "l", + yun : "iang", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IANG }, { PINYIN_ID_N, PINYIN_ID_IAN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 302 */ + text : "liamg", + bopomofo : L"", + sheng : "l", + yun : "iang", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IANG }, { PINYIN_ID_N, PINYIN_ID_IAN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 303 */ + text : "lian", + bopomofo : L"ㄌㄧㄢ", + sheng : "l", + yun : "ian", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IAN }, { PINYIN_ID_N, PINYIN_ID_IANG }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 304 */ + text : "liang", + bopomofo : L"ㄌㄧㄤ", + sheng : "l", + yun : "iang", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IANG }, { PINYIN_ID_N, PINYIN_ID_IAN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 305 */ + text : "liao", + bopomofo : L"ㄌㄧㄠ", + sheng : "l", + yun : "iao", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IAO }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 306 */ + text : "lie", + bopomofo : L"ㄌㄧㄝ", + sheng : "l", + yun : "ie", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IE }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 307 */ + text : "lign", + bopomofo : L"", + sheng : "l", + yun : "ing", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ING }, { PINYIN_ID_N, PINYIN_ID_IN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 308 */ + text : "limg", + bopomofo : L"", + sheng : "l", + yun : "ing", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ING }, { PINYIN_ID_N, PINYIN_ID_IN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 309 */ + text : "lin", + bopomofo : L"ㄌㄧㄣ", + sheng : "l", + yun : "in", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IN }, { PINYIN_ID_N, PINYIN_ID_ING }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 310 */ + text : "ling", + bopomofo : L"ㄌㄧㄥ", + sheng : "l", + yun : "ing", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ING }, { PINYIN_ID_N, PINYIN_ID_IN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 311 */ + text : "liou", + bopomofo : L"", + sheng : "l", + yun : "iu", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IU }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_IOU_TO_IU + }, + { /* 312 */ + text : "liu", + bopomofo : L"ㄌㄧㄡ", + sheng : "l", + yun : "iu", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IU }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 313 */ + text : "lo", + bopomofo : L"ㄌㄛ", + sheng : "l", + yun : "o", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_O }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 314 */ + text : "logn", + bopomofo : L"", + sheng : "l", + yun : "ong", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ONG }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 315 */ + text : "lomg", + bopomofo : L"", + sheng : "l", + yun : "ong", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ONG }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 316 */ + text : "lon", + bopomofo : L"", + sheng : "l", + yun : "ong", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ONG }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 317 */ + text : "long", + bopomofo : L"ㄌㄨㄥ", + sheng : "l", + yun : "ong", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ONG }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 318 */ + text : "lou", + bopomofo : L"ㄌㄡ", + sheng : "l", + yun : "ou", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_OU }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 319 */ + text : "lu", + bopomofo : L"ㄌㄨ", + sheng : "l", + yun : "u", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_U }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 320 */ + text : "luan", + bopomofo : L"ㄌㄨㄢ", + sheng : "l", + yun : "uan", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_UAN }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 321 */ + text : "luang", + bopomofo : L"ㄌㄨㄤ", + sheng : "l", + yun : "uang", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_UANG }, { PINYIN_ID_N, PINYIN_ID_UAN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_UANG_UAN + }, + { /* 322 */ + text : "lue", + bopomofo : L"", + sheng : "l", + yun : "üe", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_VE }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_UE_TO_VE + }, + { /* 323 */ + text : "luei", + bopomofo : L"", + sheng : "l", + yun : "ui", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_UI }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_L_R | PINYIN_CORRECT_UEI_TO_UI + }, + { /* 324 */ + text : "luen", + bopomofo : L"", + sheng : "l", + yun : "un", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_UN }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 325 */ + text : "lui", + bopomofo : L"ㄌㄨㄟ", + sheng : "l", + yun : "ui", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_UI }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_L_R + }, + { /* 326 */ + text : "lun", + bopomofo : L"ㄌㄨㄣ", + sheng : "l", + yun : "un", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_UN }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 327 */ + text : "luo", + bopomofo : L"ㄌㄨㄛ", + sheng : "l", + yun : "uo", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_UO }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 328 */ + text : "lv", + bopomofo : L"ㄌㄩ", + sheng : "l", + yun : "ü", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_V }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 329 */ + text : "lve", + bopomofo : L"ㄌㄩㄝ", + sheng : "l", + yun : "üe", + pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_VE }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 330 */ + text : "m", + bopomofo : L"ㄇ", + sheng : "m", + yun : "", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 331 */ + text : "ma", + bopomofo : L"ㄇㄚ", + sheng : "m", + yun : "a", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 332 */ + text : "magn", + bopomofo : L"", + sheng : "m", + yun : "ang", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 333 */ + text : "mai", + bopomofo : L"ㄇㄞ", + sheng : "m", + yun : "ai", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_AI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 334 */ + text : "mamg", + bopomofo : L"", + sheng : "m", + yun : "ang", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 335 */ + text : "man", + bopomofo : L"ㄇㄢ", + sheng : "m", + yun : "an", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 336 */ + text : "mang", + bopomofo : L"ㄇㄤ", + sheng : "m", + yun : "ang", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 337 */ + text : "mao", + bopomofo : L"ㄇㄠ", + sheng : "m", + yun : "ao", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_AO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 338 */ + text : "me", + bopomofo : L"ㄇㄜ", + sheng : "m", + yun : "e", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_E }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 339 */ + text : "megn", + bopomofo : L"", + sheng : "m", + yun : "eng", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 340 */ + text : "mei", + bopomofo : L"ㄇㄟ", + sheng : "m", + yun : "ei", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_EI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 341 */ + text : "memg", + bopomofo : L"", + sheng : "m", + yun : "eng", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 342 */ + text : "men", + bopomofo : L"ㄇㄣ", + sheng : "m", + yun : "en", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 343 */ + text : "meng", + bopomofo : L"ㄇㄥ", + sheng : "m", + yun : "eng", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 344 */ + text : "mi", + bopomofo : L"ㄇㄧ", + sheng : "m", + yun : "i", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 345 */ + text : "mian", + bopomofo : L"ㄇㄧㄢ", + sheng : "m", + yun : "ian", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 346 */ + text : "miang", + bopomofo : L"ㄇㄧㄤ", + sheng : "m", + yun : "iang", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_IANG_IAN + }, + { /* 347 */ + text : "miao", + bopomofo : L"ㄇㄧㄠ", + sheng : "m", + yun : "iao", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 348 */ + text : "mie", + bopomofo : L"ㄇㄧㄝ", + sheng : "m", + yun : "ie", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 349 */ + text : "mign", + bopomofo : L"", + sheng : "m", + yun : "ing", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 350 */ + text : "mimg", + bopomofo : L"", + sheng : "m", + yun : "ing", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 351 */ + text : "min", + bopomofo : L"ㄇㄧㄣ", + sheng : "m", + yun : "in", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 352 */ + text : "ming", + bopomofo : L"ㄇㄧㄥ", + sheng : "m", + yun : "ing", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 353 */ + text : "miou", + bopomofo : L"", + sheng : "m", + yun : "iu", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_IOU_TO_IU + }, + { /* 354 */ + text : "miu", + bopomofo : L"ㄇㄧㄡ", + sheng : "m", + yun : "iu", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 355 */ + text : "mo", + bopomofo : L"ㄇㄛ", + sheng : "m", + yun : "o", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_O }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 356 */ + text : "mou", + bopomofo : L"ㄇㄡ", + sheng : "m", + yun : "ou", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_OU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 357 */ + text : "mu", + bopomofo : L"ㄇㄨ", + sheng : "m", + yun : "u", + pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 358 */ + text : "n", + bopomofo : L"ㄋ", + sheng : "n", + yun : "", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 359 */ + text : "na", + bopomofo : L"ㄋㄚ", + sheng : "n", + yun : "a", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_A }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 360 */ + text : "nagn", + bopomofo : L"", + sheng : "n", + yun : "ang", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ANG }, { PINYIN_ID_L, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 361 */ + text : "nai", + bopomofo : L"ㄋㄞ", + sheng : "n", + yun : "ai", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_AI }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 362 */ + text : "namg", + bopomofo : L"", + sheng : "n", + yun : "ang", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ANG }, { PINYIN_ID_L, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 363 */ + text : "nan", + bopomofo : L"ㄋㄢ", + sheng : "n", + yun : "an", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_AN }, { PINYIN_ID_L, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 364 */ + text : "nang", + bopomofo : L"ㄋㄤ", + sheng : "n", + yun : "ang", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ANG }, { PINYIN_ID_L, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 365 */ + text : "nao", + bopomofo : L"ㄋㄠ", + sheng : "n", + yun : "ao", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_AO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 366 */ + text : "ne", + bopomofo : L"ㄋㄜ", + sheng : "n", + yun : "e", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_E }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 367 */ + text : "negn", + bopomofo : L"", + sheng : "n", + yun : "eng", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ENG }, { PINYIN_ID_L, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 368 */ + text : "nei", + bopomofo : L"ㄋㄟ", + sheng : "n", + yun : "ei", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_EI }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 369 */ + text : "nemg", + bopomofo : L"", + sheng : "n", + yun : "eng", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ENG }, { PINYIN_ID_L, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 370 */ + text : "nen", + bopomofo : L"ㄋㄣ", + sheng : "n", + yun : "en", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_EN }, { PINYIN_ID_L, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 371 */ + text : "neng", + bopomofo : L"ㄋㄥ", + sheng : "n", + yun : "eng", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ENG }, { PINYIN_ID_L, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 372 */ + text : "ni", + bopomofo : L"ㄋㄧ", + sheng : "n", + yun : "i", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_I }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 373 */ + text : "nia", + bopomofo : L"ㄋㄧㄚ", + sheng : "n", + yun : "ia", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IA }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_N_L + }, + { /* 374 */ + text : "niagn", + bopomofo : L"", + sheng : "n", + yun : "iang", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IANG }, { PINYIN_ID_L, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 375 */ + text : "niamg", + bopomofo : L"", + sheng : "n", + yun : "iang", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IANG }, { PINYIN_ID_L, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 376 */ + text : "nian", + bopomofo : L"ㄋㄧㄢ", + sheng : "n", + yun : "ian", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IAN }, { PINYIN_ID_L, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 377 */ + text : "niang", + bopomofo : L"ㄋㄧㄤ", + sheng : "n", + yun : "iang", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IANG }, { PINYIN_ID_L, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 378 */ + text : "niao", + bopomofo : L"ㄋㄧㄠ", + sheng : "n", + yun : "iao", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IAO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 379 */ + text : "nie", + bopomofo : L"ㄋㄧㄝ", + sheng : "n", + yun : "ie", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IE }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 380 */ + text : "nign", + bopomofo : L"", + sheng : "n", + yun : "ing", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ING }, { PINYIN_ID_L, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 381 */ + text : "nimg", + bopomofo : L"", + sheng : "n", + yun : "ing", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ING }, { PINYIN_ID_L, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 382 */ + text : "nin", + bopomofo : L"ㄋㄧㄣ", + sheng : "n", + yun : "in", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IN }, { PINYIN_ID_L, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 383 */ + text : "ning", + bopomofo : L"ㄋㄧㄥ", + sheng : "n", + yun : "ing", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ING }, { PINYIN_ID_L, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 384 */ + text : "niou", + bopomofo : L"", + sheng : "n", + yun : "iu", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IU }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_IOU_TO_IU + }, + { /* 385 */ + text : "niu", + bopomofo : L"ㄋㄧㄡ", + sheng : "n", + yun : "iu", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IU }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 386 */ + text : "no", + bopomofo : L"ㄋㄛ", + sheng : "n", + yun : "o", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_O }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : PINYIN_FUZZY_N_L + }, + { /* 387 */ + text : "nogn", + bopomofo : L"", + sheng : "n", + yun : "ong", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 388 */ + text : "nomg", + bopomofo : L"", + sheng : "n", + yun : "ong", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 389 */ + text : "non", + bopomofo : L"", + sheng : "n", + yun : "ong", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 390 */ + text : "nong", + bopomofo : L"ㄋㄨㄥ", + sheng : "n", + yun : "ong", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 391 */ + text : "nou", + bopomofo : L"ㄋㄡ", + sheng : "n", + yun : "ou", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_OU }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 392 */ + text : "nu", + bopomofo : L"ㄋㄨ", + sheng : "n", + yun : "u", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_U }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 393 */ + text : "nuan", + bopomofo : L"ㄋㄨㄢ", + sheng : "n", + yun : "uan", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_UAN }, { PINYIN_ID_L, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 394 */ + text : "nuang", + bopomofo : L"ㄋㄨㄤ", + sheng : "n", + yun : "uang", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_UANG }, { PINYIN_ID_L, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_UANG_UAN + }, + { /* 395 */ + text : "nue", + bopomofo : L"", + sheng : "n", + yun : "üe", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_VE }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_UE_TO_VE + }, + { /* 396 */ + text : "nuen", + bopomofo : L"", + sheng : "n", + yun : "un", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_UN }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_N_L | PINYIN_CORRECT_UEN_TO_UN + }, + { /* 397 */ + text : "nun", + bopomofo : L"ㄋㄨㄣ", + sheng : "n", + yun : "un", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_UN }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_N_L + }, + { /* 398 */ + text : "nuo", + bopomofo : L"ㄋㄨㄛ", + sheng : "n", + yun : "uo", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_UO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 399 */ + text : "nv", + bopomofo : L"ㄋㄩ", + sheng : "n", + yun : "ü", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_V }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 400 */ + text : "nve", + bopomofo : L"ㄋㄩㄝ", + sheng : "n", + yun : "üe", + pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_VE }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 401 */ + text : "o", + bopomofo : L"ㄛ", + sheng : "", + yun : "o", + pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_O }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : 0 + }, + { /* 402 */ + text : "ou", + bopomofo : L"ㄡ", + sheng : "", + yun : "ou", + pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_OU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 403 */ + text : "p", + bopomofo : L"ㄆ", + sheng : "p", + yun : "", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 404 */ + text : "pa", + bopomofo : L"ㄆㄚ", + sheng : "p", + yun : "a", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 405 */ + text : "pagn", + bopomofo : L"", + sheng : "p", + yun : "ang", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 406 */ + text : "pai", + bopomofo : L"ㄆㄞ", + sheng : "p", + yun : "ai", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_AI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 407 */ + text : "pamg", + bopomofo : L"", + sheng : "p", + yun : "ang", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 408 */ + text : "pan", + bopomofo : L"ㄆㄢ", + sheng : "p", + yun : "an", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 409 */ + text : "pang", + bopomofo : L"ㄆㄤ", + sheng : "p", + yun : "ang", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 410 */ + text : "pao", + bopomofo : L"ㄆㄠ", + sheng : "p", + yun : "ao", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_AO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 411 */ + text : "pegn", + bopomofo : L"", + sheng : "p", + yun : "eng", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 412 */ + text : "pei", + bopomofo : L"ㄆㄟ", + sheng : "p", + yun : "ei", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_EI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 413 */ + text : "pemg", + bopomofo : L"", + sheng : "p", + yun : "eng", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 414 */ + text : "pen", + bopomofo : L"ㄆㄣ", + sheng : "p", + yun : "en", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 415 */ + text : "peng", + bopomofo : L"ㄆㄥ", + sheng : "p", + yun : "eng", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 416 */ + text : "pi", + bopomofo : L"ㄆㄧ", + sheng : "p", + yun : "i", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 417 */ + text : "pian", + bopomofo : L"ㄆㄧㄢ", + sheng : "p", + yun : "ian", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 418 */ + text : "piang", + bopomofo : L"ㄆㄧㄤ", + sheng : "p", + yun : "iang", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_IANG_IAN + }, + { /* 419 */ + text : "piao", + bopomofo : L"ㄆㄧㄠ", + sheng : "p", + yun : "iao", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 420 */ + text : "pie", + bopomofo : L"ㄆㄧㄝ", + sheng : "p", + yun : "ie", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 421 */ + text : "pign", + bopomofo : L"", + sheng : "p", + yun : "ing", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 422 */ + text : "pimg", + bopomofo : L"", + sheng : "p", + yun : "ing", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 423 */ + text : "pin", + bopomofo : L"ㄆㄧㄣ", + sheng : "p", + yun : "in", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 424 */ + text : "ping", + bopomofo : L"ㄆㄧㄥ", + sheng : "p", + yun : "ing", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 425 */ + text : "po", + bopomofo : L"ㄆㄛ", + sheng : "p", + yun : "o", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_O }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 426 */ + text : "pou", + bopomofo : L"ㄆㄡ", + sheng : "p", + yun : "ou", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_OU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 427 */ + text : "pu", + bopomofo : L"ㄆㄨ", + sheng : "p", + yun : "u", + pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 428 */ + text : "q", + bopomofo : L"ㄑ", + sheng : "q", + yun : "", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 429 */ + text : "qi", + bopomofo : L"ㄑㄧ", + sheng : "q", + yun : "i", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 430 */ + text : "qia", + bopomofo : L"ㄑㄧㄚ", + sheng : "q", + yun : "ia", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IA }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 431 */ + text : "qiagn", + bopomofo : L"", + sheng : "q", + yun : "iang", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 432 */ + text : "qiamg", + bopomofo : L"", + sheng : "q", + yun : "iang", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 433 */ + text : "qian", + bopomofo : L"ㄑㄧㄢ", + sheng : "q", + yun : "ian", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 434 */ + text : "qiang", + bopomofo : L"ㄑㄧㄤ", + sheng : "q", + yun : "iang", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 435 */ + text : "qiao", + bopomofo : L"ㄑㄧㄠ", + sheng : "q", + yun : "iao", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 436 */ + text : "qie", + bopomofo : L"ㄑㄧㄝ", + sheng : "q", + yun : "ie", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 437 */ + text : "qign", + bopomofo : L"", + sheng : "q", + yun : "ing", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 438 */ + text : "qimg", + bopomofo : L"", + sheng : "q", + yun : "ing", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 439 */ + text : "qin", + bopomofo : L"ㄑㄧㄣ", + sheng : "q", + yun : "in", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 440 */ + text : "qing", + bopomofo : L"ㄑㄧㄥ", + sheng : "q", + yun : "ing", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 441 */ + text : "qiogn", + bopomofo : L"", + sheng : "q", + yun : "iong", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 442 */ + text : "qiomg", + bopomofo : L"", + sheng : "q", + yun : "iong", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 443 */ + text : "qion", + bopomofo : L"", + sheng : "q", + yun : "iong", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 444 */ + text : "qiong", + bopomofo : L"ㄑㄩㄥ", + sheng : "q", + yun : "iong", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 445 */ + text : "qiou", + bopomofo : L"", + sheng : "q", + yun : "iu", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_IOU_TO_IU + }, + { /* 446 */ + text : "qiu", + bopomofo : L"ㄑㄧㄡ", + sheng : "q", + yun : "iu", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 447 */ + text : "qu", + bopomofo : L"ㄑㄩ", + sheng : "q", + yun : "u", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 448 */ + text : "quan", + bopomofo : L"ㄑㄩㄢ", + sheng : "q", + yun : "uan", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 449 */ + text : "quang", + bopomofo : L"ㄑㄩㄤ", + sheng : "q", + yun : "uang", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_UANG_UAN + }, + { /* 450 */ + text : "que", + bopomofo : L"ㄑㄩㄝ", + sheng : "q", + yun : "ue", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 451 */ + text : "quen", + bopomofo : L"", + sheng : "q", + yun : "un", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 452 */ + text : "qun", + bopomofo : L"ㄑㄩㄣ", + sheng : "q", + yun : "un", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 453 */ + text : "qv", + bopomofo : L"", + sheng : "q", + yun : "u", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 454 */ + text : "qvan", + bopomofo : L"", + sheng : "q", + yun : "uan", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 455 */ + text : "qvang", + bopomofo : L"", + sheng : "q", + yun : "uang", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_UANG_UAN | PINYIN_CORRECT_V_TO_U + }, + { /* 456 */ + text : "qve", + bopomofo : L"", + sheng : "q", + yun : "ue", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 457 */ + text : "qven", + bopomofo : L"", + sheng : "q", + yun : "un", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN | PINYIN_CORRECT_V_TO_U + }, + { /* 458 */ + text : "qvn", + bopomofo : L"", + sheng : "q", + yun : "un", + pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 459 */ + text : "r", + bopomofo : L"", + sheng : "r", + yun : "", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ZERO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 460 */ + text : "ra", + bopomofo : L"ㄖㄚ", + sheng : "r", + yun : "a", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_A }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : PINYIN_FUZZY_R_L + }, + { /* 461 */ + text : "ragn", + bopomofo : L"", + sheng : "r", + yun : "ang", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ANG }, { PINYIN_ID_L, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 462 */ + text : "rai", + bopomofo : L"ㄖㄞ", + sheng : "r", + yun : "ai", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_AI }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_R_L + }, + { /* 463 */ + text : "ramg", + bopomofo : L"", + sheng : "r", + yun : "ang", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ANG }, { PINYIN_ID_L, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 464 */ + text : "ran", + bopomofo : L"ㄖㄢ", + sheng : "r", + yun : "an", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_AN }, { PINYIN_ID_L, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 465 */ + text : "rang", + bopomofo : L"ㄖㄤ", + sheng : "r", + yun : "ang", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ANG }, { PINYIN_ID_L, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 466 */ + text : "rao", + bopomofo : L"ㄖㄠ", + sheng : "r", + yun : "ao", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_AO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 467 */ + text : "re", + bopomofo : L"ㄖㄜ", + sheng : "r", + yun : "e", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_E }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 468 */ + text : "regn", + bopomofo : L"", + sheng : "r", + yun : "eng", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ENG }, { PINYIN_ID_L, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 469 */ + text : "rei", + bopomofo : L"ㄖㄟ", + sheng : "r", + yun : "ei", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_EI }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_R_L + }, + { /* 470 */ + text : "remg", + bopomofo : L"", + sheng : "r", + yun : "eng", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ENG }, { PINYIN_ID_L, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 471 */ + text : "ren", + bopomofo : L"ㄖㄣ", + sheng : "r", + yun : "en", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_EN }, { PINYIN_ID_L, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 472 */ + text : "reng", + bopomofo : L"ㄖㄥ", + sheng : "r", + yun : "eng", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ENG }, { PINYIN_ID_L, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 473 */ + text : "ri", + bopomofo : L"ㄖ", + sheng : "r", + yun : "i", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_I }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 474 */ + text : "ria", + bopomofo : L"ㄖㄧㄚ", + sheng : "r", + yun : "ia", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IA }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_R_L + }, + { /* 475 */ + text : "rian", + bopomofo : L"ㄖㄧㄢ", + sheng : "r", + yun : "ian", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IAN }, { PINYIN_ID_L, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_R_L + }, + { /* 476 */ + text : "riang", + bopomofo : L"ㄖㄧㄤ", + sheng : "r", + yun : "iang", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IANG }, { PINYIN_ID_L, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_R_L + }, + { /* 477 */ + text : "riao", + bopomofo : L"ㄖㄧㄠ", + sheng : "r", + yun : "iao", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IAO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_R_L + }, + { /* 478 */ + text : "rie", + bopomofo : L"ㄖㄧㄝ", + sheng : "r", + yun : "ie", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IE }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_R_L + }, + { /* 479 */ + text : "rin", + bopomofo : L"ㄖㄧㄣ", + sheng : "r", + yun : "in", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IN }, { PINYIN_ID_L, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_R_L + }, + { /* 480 */ + text : "ring", + bopomofo : L"ㄖㄧㄥ", + sheng : "r", + yun : "ing", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ING }, { PINYIN_ID_L, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_R_L + }, + { /* 481 */ + text : "riou", + bopomofo : L"", + sheng : "r", + yun : "iu", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IU }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_R_L | PINYIN_CORRECT_IOU_TO_IU + }, + { /* 482 */ + text : "riu", + bopomofo : L"ㄖㄧㄡ", + sheng : "r", + yun : "iu", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IU }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_R_L + }, + { /* 483 */ + text : "ro", + bopomofo : L"ㄖㄛ", + sheng : "r", + yun : "o", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_O }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : PINYIN_FUZZY_R_L + }, + { /* 484 */ + text : "rogn", + bopomofo : L"", + sheng : "r", + yun : "ong", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 485 */ + text : "romg", + bopomofo : L"", + sheng : "r", + yun : "ong", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 486 */ + text : "ron", + bopomofo : L"", + sheng : "r", + yun : "ong", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 487 */ + text : "rong", + bopomofo : L"ㄖㄨㄥ", + sheng : "r", + yun : "ong", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 488 */ + text : "rou", + bopomofo : L"ㄖㄡ", + sheng : "r", + yun : "ou", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_OU }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 489 */ + text : "ru", + bopomofo : L"ㄖㄨ", + sheng : "r", + yun : "u", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_U }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 490 */ + text : "ruan", + bopomofo : L"ㄖㄨㄢ", + sheng : "r", + yun : "uan", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_UAN }, { PINYIN_ID_L, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 491 */ + text : "ruang", + bopomofo : L"ㄖㄨㄤ", + sheng : "r", + yun : "uang", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_UANG }, { PINYIN_ID_L, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_UANG_UAN + }, + { /* 492 */ + text : "rue", + bopomofo : L"", + sheng : "r", + yun : "üe", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_VE }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_R_L | PINYIN_CORRECT_UE_TO_VE + }, + { /* 493 */ + text : "ruei", + bopomofo : L"", + sheng : "r", + yun : "ui", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_UI }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEI_TO_UI + }, + { /* 494 */ + text : "ruen", + bopomofo : L"", + sheng : "r", + yun : "un", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_UN }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 495 */ + text : "rui", + bopomofo : L"ㄖㄨㄟ", + sheng : "r", + yun : "ui", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_UI }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 496 */ + text : "run", + bopomofo : L"ㄖㄨㄣ", + sheng : "r", + yun : "un", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_UN }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 497 */ + text : "ruo", + bopomofo : L"ㄖㄨㄛ", + sheng : "r", + yun : "uo", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_UO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 498 */ + text : "rv", + bopomofo : L"ㄖㄩ", + sheng : "r", + yun : "ü", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_V }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : PINYIN_FUZZY_R_L + }, + { /* 499 */ + text : "rve", + bopomofo : L"ㄖㄩㄝ", + sheng : "r", + yun : "üe", + pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_VE }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_R_L + }, + { /* 500 */ + text : "s", + bopomofo : L"", + sheng : "s", + yun : "", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 501 */ + text : "sa", + bopomofo : L"ㄙㄚ", + sheng : "s", + yun : "a", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_A }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 502 */ + text : "sagn", + bopomofo : L"", + sheng : "s", + yun : "ang", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ANG }, { PINYIN_ID_SH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 503 */ + text : "sai", + bopomofo : L"ㄙㄞ", + sheng : "s", + yun : "ai", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_AI }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 504 */ + text : "samg", + bopomofo : L"", + sheng : "s", + yun : "ang", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ANG }, { PINYIN_ID_SH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 505 */ + text : "san", + bopomofo : L"ㄙㄢ", + sheng : "s", + yun : "an", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_AN }, { PINYIN_ID_SH, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 506 */ + text : "sang", + bopomofo : L"ㄙㄤ", + sheng : "s", + yun : "ang", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ANG }, { PINYIN_ID_SH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 507 */ + text : "sao", + bopomofo : L"ㄙㄠ", + sheng : "s", + yun : "ao", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_AO }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 508 */ + text : "se", + bopomofo : L"ㄙㄜ", + sheng : "s", + yun : "e", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_E }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 509 */ + text : "segn", + bopomofo : L"", + sheng : "s", + yun : "eng", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ENG }, { PINYIN_ID_SH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 510 */ + text : "sei", + bopomofo : L"ㄙㄟ", + sheng : "s", + yun : "ei", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_EI }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_S_SH + }, + { /* 511 */ + text : "semg", + bopomofo : L"", + sheng : "s", + yun : "eng", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ENG }, { PINYIN_ID_SH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 512 */ + text : "sen", + bopomofo : L"ㄙㄣ", + sheng : "s", + yun : "en", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_EN }, { PINYIN_ID_SH, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 513 */ + text : "seng", + bopomofo : L"ㄙㄥ", + sheng : "s", + yun : "eng", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ENG }, { PINYIN_ID_SH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 514 */ + text : "sh", + bopomofo : L"", + sheng : "sh", + yun : "", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 515 */ + text : "sha", + bopomofo : L"ㄕㄚ", + sheng : "sh", + yun : "a", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_A }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 516 */ + text : "shagn", + bopomofo : L"", + sheng : "sh", + yun : "ang", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ANG }, { PINYIN_ID_S, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 517 */ + text : "shai", + bopomofo : L"ㄕㄞ", + sheng : "sh", + yun : "ai", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_AI }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 518 */ + text : "shamg", + bopomofo : L"", + sheng : "sh", + yun : "ang", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ANG }, { PINYIN_ID_S, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 519 */ + text : "shan", + bopomofo : L"ㄕㄢ", + sheng : "sh", + yun : "an", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_AN }, { PINYIN_ID_S, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 520 */ + text : "shang", + bopomofo : L"ㄕㄤ", + sheng : "sh", + yun : "ang", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ANG }, { PINYIN_ID_S, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 521 */ + text : "shao", + bopomofo : L"ㄕㄠ", + sheng : "sh", + yun : "ao", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_AO }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 522 */ + text : "she", + bopomofo : L"ㄕㄜ", + sheng : "sh", + yun : "e", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_E }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 523 */ + text : "shegn", + bopomofo : L"", + sheng : "sh", + yun : "eng", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ENG }, { PINYIN_ID_S, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 524 */ + text : "shei", + bopomofo : L"ㄕㄟ", + sheng : "sh", + yun : "ei", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_EI }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 525 */ + text : "shemg", + bopomofo : L"", + sheng : "sh", + yun : "eng", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ENG }, { PINYIN_ID_S, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 526 */ + text : "shen", + bopomofo : L"ㄕㄣ", + sheng : "sh", + yun : "en", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_EN }, { PINYIN_ID_S, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 527 */ + text : "sheng", + bopomofo : L"ㄕㄥ", + sheng : "sh", + yun : "eng", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ENG }, { PINYIN_ID_S, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 528 */ + text : "shi", + bopomofo : L"ㄕ", + sheng : "sh", + yun : "i", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_I }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 529 */ + text : "shon", + bopomofo : L"", + sheng : "sh", + yun : "ong", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ONG }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_SH_S | PINYIN_CORRECT_ON_TO_ONG + }, + { /* 530 */ + text : "shong", + bopomofo : L"ㄕㄨㄥ", + sheng : "sh", + yun : "ong", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ONG }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_SH_S + }, + { /* 531 */ + text : "shou", + bopomofo : L"ㄕㄡ", + sheng : "sh", + yun : "ou", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_OU }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 532 */ + text : "shu", + bopomofo : L"ㄕㄨ", + sheng : "sh", + yun : "u", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_U }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 533 */ + text : "shua", + bopomofo : L"ㄕㄨㄚ", + sheng : "sh", + yun : "ua", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UA }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 534 */ + text : "shuagn", + bopomofo : L"", + sheng : "sh", + yun : "uang", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UANG }, { PINYIN_ID_S, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 6, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 535 */ + text : "shuai", + bopomofo : L"ㄕㄨㄞ", + sheng : "sh", + yun : "uai", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UAI }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 536 */ + text : "shuamg", + bopomofo : L"", + sheng : "sh", + yun : "uang", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UANG }, { PINYIN_ID_S, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 6, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 537 */ + text : "shuan", + bopomofo : L"ㄕㄨㄢ", + sheng : "sh", + yun : "uan", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UAN }, { PINYIN_ID_S, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 538 */ + text : "shuang", + bopomofo : L"ㄕㄨㄤ", + sheng : "sh", + yun : "uang", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UANG }, { PINYIN_ID_S, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 6, + flags : 0 + }, + { /* 539 */ + text : "shuei", + bopomofo : L"", + sheng : "sh", + yun : "ui", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UI }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_UEI_TO_UI + }, + { /* 540 */ + text : "shuen", + bopomofo : L"", + sheng : "sh", + yun : "un", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UN }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 541 */ + text : "shui", + bopomofo : L"ㄕㄨㄟ", + sheng : "sh", + yun : "ui", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UI }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 542 */ + text : "shun", + bopomofo : L"ㄕㄨㄣ", + sheng : "sh", + yun : "un", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UN }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 543 */ + text : "shuo", + bopomofo : L"ㄕㄨㄛ", + sheng : "sh", + yun : "uo", + pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UO }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 544 */ + text : "si", + bopomofo : L"ㄙ", + sheng : "s", + yun : "i", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_I }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 545 */ + text : "sogn", + bopomofo : L"", + sheng : "s", + yun : "ong", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ONG }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 546 */ + text : "somg", + bopomofo : L"", + sheng : "s", + yun : "ong", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ONG }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 547 */ + text : "son", + bopomofo : L"", + sheng : "s", + yun : "ong", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ONG }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 548 */ + text : "song", + bopomofo : L"ㄙㄨㄥ", + sheng : "s", + yun : "ong", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ONG }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 549 */ + text : "sou", + bopomofo : L"ㄙㄡ", + sheng : "s", + yun : "ou", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_OU }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 550 */ + text : "su", + bopomofo : L"ㄙㄨ", + sheng : "s", + yun : "u", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_U }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 551 */ + text : "sua", + bopomofo : L"ㄙㄨㄚ", + sheng : "s", + yun : "ua", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UA }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_S_SH + }, + { /* 552 */ + text : "suai", + bopomofo : L"ㄙㄨㄞ", + sheng : "s", + yun : "uai", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UAI }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_S_SH + }, + { /* 553 */ + text : "suan", + bopomofo : L"ㄙㄨㄢ", + sheng : "s", + yun : "uan", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UAN }, { PINYIN_ID_SH, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 554 */ + text : "suang", + bopomofo : L"ㄙㄨㄤ", + sheng : "s", + yun : "uang", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UANG }, { PINYIN_ID_SH, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_S_SH | PINYIN_FUZZY_UANG_UAN + }, + { /* 555 */ + text : "suei", + bopomofo : L"", + sheng : "s", + yun : "ui", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UI }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEI_TO_UI + }, + { /* 556 */ + text : "suen", + bopomofo : L"", + sheng : "s", + yun : "un", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UN }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 557 */ + text : "sui", + bopomofo : L"ㄙㄨㄟ", + sheng : "s", + yun : "ui", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UI }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 558 */ + text : "sun", + bopomofo : L"ㄙㄨㄣ", + sheng : "s", + yun : "un", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UN }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 559 */ + text : "suo", + bopomofo : L"ㄙㄨㄛ", + sheng : "s", + yun : "uo", + pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UO }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 560 */ + text : "t", + bopomofo : L"ㄊ", + sheng : "t", + yun : "", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 561 */ + text : "ta", + bopomofo : L"ㄊㄚ", + sheng : "t", + yun : "a", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 562 */ + text : "tagn", + bopomofo : L"", + sheng : "t", + yun : "ang", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 563 */ + text : "tai", + bopomofo : L"ㄊㄞ", + sheng : "t", + yun : "ai", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_AI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 564 */ + text : "tamg", + bopomofo : L"", + sheng : "t", + yun : "ang", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 565 */ + text : "tan", + bopomofo : L"ㄊㄢ", + sheng : "t", + yun : "an", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 566 */ + text : "tang", + bopomofo : L"ㄊㄤ", + sheng : "t", + yun : "ang", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 567 */ + text : "tao", + bopomofo : L"ㄊㄠ", + sheng : "t", + yun : "ao", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_AO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 568 */ + text : "te", + bopomofo : L"ㄊㄜ", + sheng : "t", + yun : "e", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_E }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 569 */ + text : "tegn", + bopomofo : L"", + sheng : "t", + yun : "eng", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 570 */ + text : "temg", + bopomofo : L"", + sheng : "t", + yun : "eng", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 571 */ + text : "ten", + bopomofo : L"ㄊㄣ", + sheng : "t", + yun : "en", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_EN_ENG + }, + { /* 572 */ + text : "teng", + bopomofo : L"ㄊㄥ", + sheng : "t", + yun : "eng", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 573 */ + text : "ti", + bopomofo : L"ㄊㄧ", + sheng : "t", + yun : "i", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 574 */ + text : "tian", + bopomofo : L"ㄊㄧㄢ", + sheng : "t", + yun : "ian", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 575 */ + text : "tiang", + bopomofo : L"ㄊㄧㄤ", + sheng : "t", + yun : "iang", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_IANG_IAN + }, + { /* 576 */ + text : "tiao", + bopomofo : L"ㄊㄧㄠ", + sheng : "t", + yun : "iao", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 577 */ + text : "tie", + bopomofo : L"ㄊㄧㄝ", + sheng : "t", + yun : "ie", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 578 */ + text : "tign", + bopomofo : L"", + sheng : "t", + yun : "ing", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 579 */ + text : "timg", + bopomofo : L"", + sheng : "t", + yun : "ing", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 580 */ + text : "tin", + bopomofo : L"ㄊㄧㄣ", + sheng : "t", + yun : "in", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_IN_ING + }, + { /* 581 */ + text : "ting", + bopomofo : L"ㄊㄧㄥ", + sheng : "t", + yun : "ing", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 582 */ + text : "togn", + bopomofo : L"", + sheng : "t", + yun : "ong", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 583 */ + text : "tomg", + bopomofo : L"", + sheng : "t", + yun : "ong", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 584 */ + text : "ton", + bopomofo : L"", + sheng : "t", + yun : "ong", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 585 */ + text : "tong", + bopomofo : L"ㄊㄨㄥ", + sheng : "t", + yun : "ong", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 586 */ + text : "tou", + bopomofo : L"ㄊㄡ", + sheng : "t", + yun : "ou", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_OU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 587 */ + text : "tu", + bopomofo : L"ㄊㄨ", + sheng : "t", + yun : "u", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 588 */ + text : "tuan", + bopomofo : L"ㄊㄨㄢ", + sheng : "t", + yun : "uan", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 589 */ + text : "tuang", + bopomofo : L"ㄊㄨㄤ", + sheng : "t", + yun : "uang", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_UANG_UAN + }, + { /* 590 */ + text : "tuei", + bopomofo : L"", + sheng : "t", + yun : "ui", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_UI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEI_TO_UI + }, + { /* 591 */ + text : "tuen", + bopomofo : L"", + sheng : "t", + yun : "un", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 592 */ + text : "tui", + bopomofo : L"ㄊㄨㄟ", + sheng : "t", + yun : "ui", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_UI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 593 */ + text : "tun", + bopomofo : L"ㄊㄨㄣ", + sheng : "t", + yun : "un", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 594 */ + text : "tuo", + bopomofo : L"ㄊㄨㄛ", + sheng : "t", + yun : "uo", + pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_UO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 595 */ + text : "w", + bopomofo : L"", + sheng : "w", + yun : "", + pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 596 */ + text : "wa", + bopomofo : L"ㄨㄚ", + sheng : "w", + yun : "a", + pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 597 */ + text : "wagn", + bopomofo : L"", + sheng : "w", + yun : "ang", + pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 598 */ + text : "wai", + bopomofo : L"ㄨㄞ", + sheng : "w", + yun : "ai", + pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_AI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 599 */ + text : "wamg", + bopomofo : L"", + sheng : "w", + yun : "ang", + pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 600 */ + text : "wan", + bopomofo : L"ㄨㄢ", + sheng : "w", + yun : "an", + pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 601 */ + text : "wang", + bopomofo : L"ㄨㄤ", + sheng : "w", + yun : "ang", + pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 602 */ + text : "wegn", + bopomofo : L"", + sheng : "w", + yun : "eng", + pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 603 */ + text : "wei", + bopomofo : L"ㄨㄟ", + sheng : "w", + yun : "ei", + pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_EI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 604 */ + text : "wemg", + bopomofo : L"", + sheng : "w", + yun : "eng", + pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 605 */ + text : "wen", + bopomofo : L"ㄨㄣ", + sheng : "w", + yun : "en", + pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 606 */ + text : "weng", + bopomofo : L"ㄨㄥ", + sheng : "w", + yun : "eng", + pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 607 */ + text : "wo", + bopomofo : L"ㄨㄛ", + sheng : "w", + yun : "o", + pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_O }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 608 */ + text : "wu", + bopomofo : L"ㄨ", + sheng : "w", + yun : "u", + pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 609 */ + text : "x", + bopomofo : L"ㄒ", + sheng : "x", + yun : "", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 610 */ + text : "xi", + bopomofo : L"ㄒㄧ", + sheng : "x", + yun : "i", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 611 */ + text : "xia", + bopomofo : L"ㄒㄧㄚ", + sheng : "x", + yun : "ia", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IA }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 612 */ + text : "xiagn", + bopomofo : L"", + sheng : "x", + yun : "iang", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 613 */ + text : "xiamg", + bopomofo : L"", + sheng : "x", + yun : "iang", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 614 */ + text : "xian", + bopomofo : L"ㄒㄧㄢ", + sheng : "x", + yun : "ian", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 615 */ + text : "xiang", + bopomofo : L"ㄒㄧㄤ", + sheng : "x", + yun : "iang", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 616 */ + text : "xiao", + bopomofo : L"ㄒㄧㄠ", + sheng : "x", + yun : "iao", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 617 */ + text : "xie", + bopomofo : L"ㄒㄧㄝ", + sheng : "x", + yun : "ie", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 618 */ + text : "xign", + bopomofo : L"", + sheng : "x", + yun : "ing", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 619 */ + text : "ximg", + bopomofo : L"", + sheng : "x", + yun : "ing", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 620 */ + text : "xin", + bopomofo : L"ㄒㄧㄣ", + sheng : "x", + yun : "in", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 621 */ + text : "xing", + bopomofo : L"ㄒㄧㄥ", + sheng : "x", + yun : "ing", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 622 */ + text : "xiogn", + bopomofo : L"", + sheng : "x", + yun : "iong", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 623 */ + text : "xiomg", + bopomofo : L"", + sheng : "x", + yun : "iong", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 624 */ + text : "xion", + bopomofo : L"", + sheng : "x", + yun : "iong", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 625 */ + text : "xiong", + bopomofo : L"ㄒㄩㄥ", + sheng : "x", + yun : "iong", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 626 */ + text : "xiou", + bopomofo : L"", + sheng : "x", + yun : "iu", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_IOU_TO_IU + }, + { /* 627 */ + text : "xiu", + bopomofo : L"ㄒㄧㄡ", + sheng : "x", + yun : "iu", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 628 */ + text : "xu", + bopomofo : L"ㄒㄩ", + sheng : "x", + yun : "u", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 629 */ + text : "xuan", + bopomofo : L"ㄒㄩㄢ", + sheng : "x", + yun : "uan", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 630 */ + text : "xuang", + bopomofo : L"ㄒㄩㄤ", + sheng : "x", + yun : "uang", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_UANG_UAN + }, + { /* 631 */ + text : "xue", + bopomofo : L"ㄒㄩㄝ", + sheng : "x", + yun : "ue", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 632 */ + text : "xuen", + bopomofo : L"", + sheng : "x", + yun : "un", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 633 */ + text : "xun", + bopomofo : L"ㄒㄩㄣ", + sheng : "x", + yun : "un", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 634 */ + text : "xv", + bopomofo : L"", + sheng : "x", + yun : "u", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 635 */ + text : "xvan", + bopomofo : L"", + sheng : "x", + yun : "uan", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 636 */ + text : "xvang", + bopomofo : L"", + sheng : "x", + yun : "uang", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_UANG_UAN | PINYIN_CORRECT_V_TO_U + }, + { /* 637 */ + text : "xve", + bopomofo : L"", + sheng : "x", + yun : "ue", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 638 */ + text : "xven", + bopomofo : L"", + sheng : "x", + yun : "un", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN | PINYIN_CORRECT_V_TO_U + }, + { /* 639 */ + text : "xvn", + bopomofo : L"", + sheng : "x", + yun : "un", + pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 640 */ + text : "y", + bopomofo : L"", + sheng : "y", + yun : "", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 641 */ + text : "ya", + bopomofo : L"ㄧㄚ", + sheng : "y", + yun : "a", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 642 */ + text : "yagn", + bopomofo : L"", + sheng : "y", + yun : "ang", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 643 */ + text : "yamg", + bopomofo : L"", + sheng : "y", + yun : "ang", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 644 */ + text : "yan", + bopomofo : L"ㄧㄢ", + sheng : "y", + yun : "an", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 645 */ + text : "yang", + bopomofo : L"ㄧㄤ", + sheng : "y", + yun : "ang", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 646 */ + text : "yao", + bopomofo : L"ㄧㄠ", + sheng : "y", + yun : "ao", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_AO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 647 */ + text : "ye", + bopomofo : L"ㄧㄝ", + sheng : "y", + yun : "e", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_E }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 648 */ + text : "yi", + bopomofo : L"ㄧ", + sheng : "y", + yun : "i", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 649 */ + text : "yign", + bopomofo : L"", + sheng : "y", + yun : "ing", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 650 */ + text : "yimg", + bopomofo : L"", + sheng : "y", + yun : "ing", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 651 */ + text : "yin", + bopomofo : L"ㄧㄣ", + sheng : "y", + yun : "in", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 652 */ + text : "ying", + bopomofo : L"ㄧㄥ", + sheng : "y", + yun : "ing", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 653 */ + text : "yo", + bopomofo : L"ㄧㄛ", + sheng : "y", + yun : "o", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_O }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 654 */ + text : "yogn", + bopomofo : L"", + sheng : "y", + yun : "ong", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 655 */ + text : "yomg", + bopomofo : L"", + sheng : "y", + yun : "ong", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 656 */ + text : "yon", + bopomofo : L"", + sheng : "y", + yun : "ong", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 657 */ + text : "yong", + bopomofo : L"ㄩㄥ", + sheng : "y", + yun : "ong", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 658 */ + text : "you", + bopomofo : L"ㄧㄡ", + sheng : "y", + yun : "ou", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_OU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 659 */ + text : "yu", + bopomofo : L"ㄩ", + sheng : "y", + yun : "u", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 660 */ + text : "yuan", + bopomofo : L"ㄩㄢ", + sheng : "y", + yun : "uan", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 661 */ + text : "yuang", + bopomofo : L"ㄧㄩㄤ", + sheng : "y", + yun : "uang", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_UANG_UAN + }, + { /* 662 */ + text : "yue", + bopomofo : L"ㄩㄝ", + sheng : "y", + yun : "ue", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 663 */ + text : "yuen", + bopomofo : L"", + sheng : "y", + yun : "un", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 664 */ + text : "yun", + bopomofo : L"ㄩㄣ", + sheng : "y", + yun : "un", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 665 */ + text : "yv", + bopomofo : L"", + sheng : "y", + yun : "u", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 666 */ + text : "yvan", + bopomofo : L"", + sheng : "y", + yun : "uan", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 667 */ + text : "yvang", + bopomofo : L"", + sheng : "y", + yun : "uang", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_UANG_UAN | PINYIN_CORRECT_V_TO_U + }, + { /* 668 */ + text : "yve", + bopomofo : L"", + sheng : "y", + yun : "ue", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 669 */ + text : "yven", + bopomofo : L"", + sheng : "y", + yun : "un", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN | PINYIN_CORRECT_V_TO_U + }, + { /* 670 */ + text : "yvn", + bopomofo : L"", + sheng : "y", + yun : "un", + pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_V_TO_U + }, + { /* 671 */ + text : "z", + bopomofo : L"", + sheng : "z", + yun : "", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 1, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 672 */ + text : "za", + bopomofo : L"ㄗㄚ", + sheng : "z", + yun : "a", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_A }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 673 */ + text : "zagn", + bopomofo : L"", + sheng : "z", + yun : "ang", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ANG }, { PINYIN_ID_ZH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 674 */ + text : "zai", + bopomofo : L"ㄗㄞ", + sheng : "z", + yun : "ai", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_AI }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 675 */ + text : "zamg", + bopomofo : L"", + sheng : "z", + yun : "ang", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ANG }, { PINYIN_ID_ZH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 676 */ + text : "zan", + bopomofo : L"ㄗㄢ", + sheng : "z", + yun : "an", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_AN }, { PINYIN_ID_ZH, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 677 */ + text : "zang", + bopomofo : L"ㄗㄤ", + sheng : "z", + yun : "ang", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ANG }, { PINYIN_ID_ZH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 678 */ + text : "zao", + bopomofo : L"ㄗㄠ", + sheng : "z", + yun : "ao", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_AO }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 679 */ + text : "ze", + bopomofo : L"ㄗㄜ", + sheng : "z", + yun : "e", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_E }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 680 */ + text : "zegn", + bopomofo : L"", + sheng : "z", + yun : "eng", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ENG }, { PINYIN_ID_ZH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 681 */ + text : "zei", + bopomofo : L"ㄗㄟ", + sheng : "z", + yun : "ei", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_EI }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 682 */ + text : "zemg", + bopomofo : L"", + sheng : "z", + yun : "eng", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ENG }, { PINYIN_ID_ZH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 683 */ + text : "zen", + bopomofo : L"ㄗㄣ", + sheng : "z", + yun : "en", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_EN }, { PINYIN_ID_ZH, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 684 */ + text : "zeng", + bopomofo : L"ㄗㄥ", + sheng : "z", + yun : "eng", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ENG }, { PINYIN_ID_ZH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 685 */ + text : "zh", + bopomofo : L"", + sheng : "zh", + yun : "", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : PINYIN_INCOMPLETE_PINYIN + }, + { /* 686 */ + text : "zha", + bopomofo : L"ㄓㄚ", + sheng : "zh", + yun : "a", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_A }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 687 */ + text : "zhagn", + bopomofo : L"", + sheng : "zh", + yun : "ang", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ANG }, { PINYIN_ID_Z, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 688 */ + text : "zhai", + bopomofo : L"ㄓㄞ", + sheng : "zh", + yun : "ai", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_AI }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 689 */ + text : "zhamg", + bopomofo : L"", + sheng : "zh", + yun : "ang", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ANG }, { PINYIN_ID_Z, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 690 */ + text : "zhan", + bopomofo : L"ㄓㄢ", + sheng : "zh", + yun : "an", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_AN }, { PINYIN_ID_Z, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 691 */ + text : "zhang", + bopomofo : L"ㄓㄤ", + sheng : "zh", + yun : "ang", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ANG }, { PINYIN_ID_Z, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 692 */ + text : "zhao", + bopomofo : L"ㄓㄠ", + sheng : "zh", + yun : "ao", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_AO }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 693 */ + text : "zhe", + bopomofo : L"ㄓㄜ", + sheng : "zh", + yun : "e", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_E }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 694 */ + text : "zhegn", + bopomofo : L"", + sheng : "zh", + yun : "eng", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ENG }, { PINYIN_ID_Z, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 695 */ + text : "zhei", + bopomofo : L"ㄓㄟ", + sheng : "zh", + yun : "ei", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_EI }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_ZH_Z + }, + { /* 696 */ + text : "zhemg", + bopomofo : L"", + sheng : "zh", + yun : "eng", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ENG }, { PINYIN_ID_Z, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 697 */ + text : "zhen", + bopomofo : L"ㄓㄣ", + sheng : "zh", + yun : "en", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_EN }, { PINYIN_ID_Z, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 698 */ + text : "zheng", + bopomofo : L"ㄓㄥ", + sheng : "zh", + yun : "eng", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ENG }, { PINYIN_ID_Z, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 699 */ + text : "zhi", + bopomofo : L"ㄓ", + sheng : "zh", + yun : "i", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_I }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 700 */ + text : "zhogn", + bopomofo : L"", + sheng : "zh", + yun : "ong", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ONG }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 701 */ + text : "zhomg", + bopomofo : L"", + sheng : "zh", + yun : "ong", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ONG }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 702 */ + text : "zhon", + bopomofo : L"", + sheng : "zh", + yun : "ong", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ONG }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 703 */ + text : "zhong", + bopomofo : L"ㄓㄨㄥ", + sheng : "zh", + yun : "ong", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ONG }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 704 */ + text : "zhou", + bopomofo : L"ㄓㄡ", + sheng : "zh", + yun : "ou", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_OU }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 705 */ + text : "zhu", + bopomofo : L"ㄓㄨ", + sheng : "zh", + yun : "u", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_U }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 706 */ + text : "zhua", + bopomofo : L"ㄓㄨㄚ", + sheng : "zh", + yun : "ua", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UA }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 707 */ + text : "zhuagn", + bopomofo : L"", + sheng : "zh", + yun : "uang", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UANG }, { PINYIN_ID_Z, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 6, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 708 */ + text : "zhuai", + bopomofo : L"ㄓㄨㄞ", + sheng : "zh", + yun : "uai", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UAI }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 709 */ + text : "zhuamg", + bopomofo : L"", + sheng : "zh", + yun : "uang", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UANG }, { PINYIN_ID_Z, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 6, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 710 */ + text : "zhuan", + bopomofo : L"ㄓㄨㄢ", + sheng : "zh", + yun : "uan", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UAN }, { PINYIN_ID_Z, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : 0 + }, + { /* 711 */ + text : "zhuang", + bopomofo : L"ㄓㄨㄤ", + sheng : "zh", + yun : "uang", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UANG }, { PINYIN_ID_Z, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 6, + flags : 0 + }, + { /* 712 */ + text : "zhuei", + bopomofo : L"", + sheng : "zh", + yun : "ui", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UI }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_UEI_TO_UI + }, + { /* 713 */ + text : "zhuen", + bopomofo : L"", + sheng : "zh", + yun : "un", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UN }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 714 */ + text : "zhui", + bopomofo : L"ㄓㄨㄟ", + sheng : "zh", + yun : "ui", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UI }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 715 */ + text : "zhun", + bopomofo : L"ㄓㄨㄣ", + sheng : "zh", + yun : "un", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UN }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 716 */ + text : "zhuo", + bopomofo : L"ㄓㄨㄛ", + sheng : "zh", + yun : "uo", + pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UO }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 717 */ + text : "zi", + bopomofo : L"ㄗ", + sheng : "z", + yun : "i", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_I }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 718 */ + text : "zogn", + bopomofo : L"", + sheng : "z", + yun : "ong", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ONG }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_GN_TO_NG + }, + { /* 719 */ + text : "zomg", + bopomofo : L"", + sheng : "z", + yun : "ong", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ONG }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_MG_TO_NG + }, + { /* 720 */ + text : "zon", + bopomofo : L"", + sheng : "z", + yun : "ong", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ONG }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_CORRECT_ON_TO_ONG + }, + { /* 721 */ + text : "zong", + bopomofo : L"ㄗㄨㄥ", + sheng : "z", + yun : "ong", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ONG }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 722 */ + text : "zou", + bopomofo : L"ㄗㄡ", + sheng : "z", + yun : "ou", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_OU }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 723 */ + text : "zu", + bopomofo : L"ㄗㄨ", + sheng : "z", + yun : "u", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_U }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 2, + flags : 0 + }, + { /* 724 */ + text : "zua", + bopomofo : L"ㄗㄨㄚ", + sheng : "z", + yun : "ua", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UA }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : PINYIN_FUZZY_Z_ZH + }, + { /* 725 */ + text : "zuai", + bopomofo : L"ㄗㄨㄞ", + sheng : "z", + yun : "uai", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UAI }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_FUZZY_Z_ZH + }, + { /* 726 */ + text : "zuan", + bopomofo : L"ㄗㄨㄢ", + sheng : "z", + yun : "uan", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UAN }, { PINYIN_ID_ZH, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : 0 + }, + { /* 727 */ + text : "zuang", + bopomofo : L"ㄗㄨㄤ", + sheng : "z", + yun : "uang", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UANG }, { PINYIN_ID_ZH, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 5, + flags : PINYIN_FUZZY_Z_ZH | PINYIN_FUZZY_UANG_UAN + }, + { /* 728 */ + text : "zuei", + bopomofo : L"", + sheng : "z", + yun : "ui", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UI }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEI_TO_UI + }, + { /* 729 */ + text : "zuen", + bopomofo : L"", + sheng : "z", + yun : "un", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UN }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 4, + flags : PINYIN_CORRECT_UEN_TO_UN + }, + { /* 730 */ + text : "zui", + bopomofo : L"ㄗㄨㄟ", + sheng : "z", + yun : "ui", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UI }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 731 */ + text : "zun", + bopomofo : L"ㄗㄨㄣ", + sheng : "z", + yun : "un", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UN }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, + { /* 732 */ + text : "zuo", + bopomofo : L"ㄗㄨㄛ", + sheng : "z", + yun : "uo", + pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UO }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, + len : 3, + flags : 0 + }, +}; + +static const Pinyin *bopomofo_table[] = { + &pinyin_table[7], // "ㄅ" => "b" + &pinyin_table[8], // "ㄅㄚ" => "ba" + &pinyin_table[29], // "ㄅㄛ" => "bo" + &pinyin_table[10], // "ㄅㄞ" => "bai" + &pinyin_table[16], // "ㄅㄟ" => "bei" + &pinyin_table[14], // "ㄅㄠ" => "bao" + &pinyin_table[12], // "ㄅㄢ" => "ban" + &pinyin_table[18], // "ㄅㄣ" => "ben" + &pinyin_table[13], // "ㄅㄤ" => "bang" + &pinyin_table[19], // "ㄅㄥ" => "beng" + &pinyin_table[20], // "ㄅㄧ" => "bi" + &pinyin_table[24], // "ㄅㄧㄝ" => "bie" + &pinyin_table[23], // "ㄅㄧㄠ" => "biao" + &pinyin_table[21], // "ㄅㄧㄢ" => "bian" + &pinyin_table[27], // "ㄅㄧㄣ" => "bin" + &pinyin_table[22], // "ㄅㄧㄤ" => "biang" + &pinyin_table[28], // "ㄅㄧㄥ" => "bing" + &pinyin_table[30], // "ㄅㄨ" => "bu" + &pinyin_table[403], // "ㄆ" => "p" + &pinyin_table[404], // "ㄆㄚ" => "pa" + &pinyin_table[425], // "ㄆㄛ" => "po" + &pinyin_table[406], // "ㄆㄞ" => "pai" + &pinyin_table[412], // "ㄆㄟ" => "pei" + &pinyin_table[410], // "ㄆㄠ" => "pao" + &pinyin_table[426], // "ㄆㄡ" => "pou" + &pinyin_table[408], // "ㄆㄢ" => "pan" + &pinyin_table[414], // "ㄆㄣ" => "pen" + &pinyin_table[409], // "ㄆㄤ" => "pang" + &pinyin_table[415], // "ㄆㄥ" => "peng" + &pinyin_table[416], // "ㄆㄧ" => "pi" + &pinyin_table[420], // "ㄆㄧㄝ" => "pie" + &pinyin_table[419], // "ㄆㄧㄠ" => "piao" + &pinyin_table[417], // "ㄆㄧㄢ" => "pian" + &pinyin_table[423], // "ㄆㄧㄣ" => "pin" + &pinyin_table[418], // "ㄆㄧㄤ" => "piang" + &pinyin_table[424], // "ㄆㄧㄥ" => "ping" + &pinyin_table[427], // "ㄆㄨ" => "pu" + &pinyin_table[330], // "ㄇ" => "m" + &pinyin_table[331], // "ㄇㄚ" => "ma" + &pinyin_table[355], // "ㄇㄛ" => "mo" + &pinyin_table[338], // "ㄇㄜ" => "me" + &pinyin_table[333], // "ㄇㄞ" => "mai" + &pinyin_table[340], // "ㄇㄟ" => "mei" + &pinyin_table[337], // "ㄇㄠ" => "mao" + &pinyin_table[356], // "ㄇㄡ" => "mou" + &pinyin_table[335], // "ㄇㄢ" => "man" + &pinyin_table[342], // "ㄇㄣ" => "men" + &pinyin_table[336], // "ㄇㄤ" => "mang" + &pinyin_table[343], // "ㄇㄥ" => "meng" + &pinyin_table[344], // "ㄇㄧ" => "mi" + &pinyin_table[348], // "ㄇㄧㄝ" => "mie" + &pinyin_table[347], // "ㄇㄧㄠ" => "miao" + &pinyin_table[354], // "ㄇㄧㄡ" => "miu" + &pinyin_table[345], // "ㄇㄧㄢ" => "mian" + &pinyin_table[351], // "ㄇㄧㄣ" => "min" + &pinyin_table[346], // "ㄇㄧㄤ" => "miang" + &pinyin_table[352], // "ㄇㄧㄥ" => "ming" + &pinyin_table[357], // "ㄇㄨ" => "mu" + &pinyin_table[132], // "ㄈ" => "f" + &pinyin_table[133], // "ㄈㄚ" => "fa" + &pinyin_table[146], // "ㄈㄛ" => "fo" + &pinyin_table[140], // "ㄈㄜ" => "fe" + &pinyin_table[135], // "ㄈㄞ" => "fai" + &pinyin_table[142], // "ㄈㄟ" => "fei" + &pinyin_table[139], // "ㄈㄠ" => "fao" + &pinyin_table[149], // "ㄈㄡ" => "fou" + &pinyin_table[137], // "ㄈㄢ" => "fan" + &pinyin_table[144], // "ㄈㄣ" => "fen" + &pinyin_table[138], // "ㄈㄤ" => "fang" + &pinyin_table[145], // "ㄈㄥ" => "feng" + &pinyin_table[150], // "ㄈㄨ" => "fu" + &pinyin_table[151], // "ㄈㄨㄚ" => "fua" + &pinyin_table[159], // "ㄈㄨㄛ" => "fuo" + &pinyin_table[152], // "ㄈㄨㄞ" => "fuai" + &pinyin_table[157], // "ㄈㄨㄟ" => "fui" + &pinyin_table[153], // "ㄈㄨㄢ" => "fuan" + &pinyin_table[158], // "ㄈㄨㄣ" => "fun" + &pinyin_table[154], // "ㄈㄨㄤ" => "fuang" + &pinyin_table[148], // "ㄈㄨㄥ" => "fong" + &pinyin_table[89], // "ㄉ" => "d" + &pinyin_table[90], // "ㄉㄚ" => "da" + &pinyin_table[97], // "ㄉㄜ" => "de" + &pinyin_table[92], // "ㄉㄞ" => "dai" + &pinyin_table[99], // "ㄉㄟ" => "dei" + &pinyin_table[96], // "ㄉㄠ" => "dao" + &pinyin_table[119], // "ㄉㄡ" => "dou" + &pinyin_table[94], // "ㄉㄢ" => "dan" + &pinyin_table[101], // "ㄉㄣ" => "den" + &pinyin_table[95], // "ㄉㄤ" => "dang" + &pinyin_table[102], // "ㄉㄥ" => "deng" + &pinyin_table[103], // "ㄉㄧ" => "di" + &pinyin_table[104], // "ㄉㄧㄚ" => "dia" + &pinyin_table[108], // "ㄉㄧㄝ" => "die" + &pinyin_table[107], // "ㄉㄧㄠ" => "diao" + &pinyin_table[114], // "ㄉㄧㄡ" => "diu" + &pinyin_table[105], // "ㄉㄧㄢ" => "dian" + &pinyin_table[111], // "ㄉㄧㄣ" => "din" + &pinyin_table[106], // "ㄉㄧㄤ" => "diang" + &pinyin_table[112], // "ㄉㄧㄥ" => "ding" + &pinyin_table[120], // "ㄉㄨ" => "du" + &pinyin_table[127], // "ㄉㄨㄛ" => "duo" + &pinyin_table[125], // "ㄉㄨㄟ" => "dui" + &pinyin_table[121], // "ㄉㄨㄢ" => "duan" + &pinyin_table[126], // "ㄉㄨㄣ" => "dun" + &pinyin_table[122], // "ㄉㄨㄤ" => "duang" + &pinyin_table[118], // "ㄉㄨㄥ" => "dong" + &pinyin_table[560], // "ㄊ" => "t" + &pinyin_table[561], // "ㄊㄚ" => "ta" + &pinyin_table[568], // "ㄊㄜ" => "te" + &pinyin_table[563], // "ㄊㄞ" => "tai" + &pinyin_table[567], // "ㄊㄠ" => "tao" + &pinyin_table[586], // "ㄊㄡ" => "tou" + &pinyin_table[565], // "ㄊㄢ" => "tan" + &pinyin_table[571], // "ㄊㄣ" => "ten" + &pinyin_table[566], // "ㄊㄤ" => "tang" + &pinyin_table[572], // "ㄊㄥ" => "teng" + &pinyin_table[573], // "ㄊㄧ" => "ti" + &pinyin_table[577], // "ㄊㄧㄝ" => "tie" + &pinyin_table[576], // "ㄊㄧㄠ" => "tiao" + &pinyin_table[574], // "ㄊㄧㄢ" => "tian" + &pinyin_table[580], // "ㄊㄧㄣ" => "tin" + &pinyin_table[575], // "ㄊㄧㄤ" => "tiang" + &pinyin_table[581], // "ㄊㄧㄥ" => "ting" + &pinyin_table[587], // "ㄊㄨ" => "tu" + &pinyin_table[594], // "ㄊㄨㄛ" => "tuo" + &pinyin_table[592], // "ㄊㄨㄟ" => "tui" + &pinyin_table[588], // "ㄊㄨㄢ" => "tuan" + &pinyin_table[593], // "ㄊㄨㄣ" => "tun" + &pinyin_table[589], // "ㄊㄨㄤ" => "tuang" + &pinyin_table[585], // "ㄊㄨㄥ" => "tong" + &pinyin_table[358], // "ㄋ" => "n" + &pinyin_table[359], // "ㄋㄚ" => "na" + &pinyin_table[386], // "ㄋㄛ" => "no" + &pinyin_table[366], // "ㄋㄜ" => "ne" + &pinyin_table[361], // "ㄋㄞ" => "nai" + &pinyin_table[368], // "ㄋㄟ" => "nei" + &pinyin_table[365], // "ㄋㄠ" => "nao" + &pinyin_table[391], // "ㄋㄡ" => "nou" + &pinyin_table[363], // "ㄋㄢ" => "nan" + &pinyin_table[370], // "ㄋㄣ" => "nen" + &pinyin_table[364], // "ㄋㄤ" => "nang" + &pinyin_table[371], // "ㄋㄥ" => "neng" + &pinyin_table[372], // "ㄋㄧ" => "ni" + &pinyin_table[373], // "ㄋㄧㄚ" => "nia" + &pinyin_table[379], // "ㄋㄧㄝ" => "nie" + &pinyin_table[378], // "ㄋㄧㄠ" => "niao" + &pinyin_table[385], // "ㄋㄧㄡ" => "niu" + &pinyin_table[376], // "ㄋㄧㄢ" => "nian" + &pinyin_table[382], // "ㄋㄧㄣ" => "nin" + &pinyin_table[377], // "ㄋㄧㄤ" => "niang" + &pinyin_table[383], // "ㄋㄧㄥ" => "ning" + &pinyin_table[392], // "ㄋㄨ" => "nu" + &pinyin_table[398], // "ㄋㄨㄛ" => "nuo" + &pinyin_table[393], // "ㄋㄨㄢ" => "nuan" + &pinyin_table[397], // "ㄋㄨㄣ" => "nun" + &pinyin_table[394], // "ㄋㄨㄤ" => "nuang" + &pinyin_table[390], // "ㄋㄨㄥ" => "nong" + &pinyin_table[399], // "ㄋㄩ" => "nv" + &pinyin_table[400], // "ㄋㄩㄝ" => "nve" + &pinyin_table[285], // "ㄌ" => "l" + &pinyin_table[286], // "ㄌㄚ" => "la" + &pinyin_table[313], // "ㄌㄛ" => "lo" + &pinyin_table[293], // "ㄌㄜ" => "le" + &pinyin_table[288], // "ㄌㄞ" => "lai" + &pinyin_table[295], // "ㄌㄟ" => "lei" + &pinyin_table[292], // "ㄌㄠ" => "lao" + &pinyin_table[318], // "ㄌㄡ" => "lou" + &pinyin_table[290], // "ㄌㄢ" => "lan" + &pinyin_table[297], // "ㄌㄣ" => "len" + &pinyin_table[291], // "ㄌㄤ" => "lang" + &pinyin_table[298], // "ㄌㄥ" => "leng" + &pinyin_table[299], // "ㄌㄧ" => "li" + &pinyin_table[300], // "ㄌㄧㄚ" => "lia" + &pinyin_table[306], // "ㄌㄧㄝ" => "lie" + &pinyin_table[305], // "ㄌㄧㄠ" => "liao" + &pinyin_table[312], // "ㄌㄧㄡ" => "liu" + &pinyin_table[303], // "ㄌㄧㄢ" => "lian" + &pinyin_table[309], // "ㄌㄧㄣ" => "lin" + &pinyin_table[304], // "ㄌㄧㄤ" => "liang" + &pinyin_table[310], // "ㄌㄧㄥ" => "ling" + &pinyin_table[319], // "ㄌㄨ" => "lu" + &pinyin_table[327], // "ㄌㄨㄛ" => "luo" + &pinyin_table[325], // "ㄌㄨㄟ" => "lui" + &pinyin_table[320], // "ㄌㄨㄢ" => "luan" + &pinyin_table[326], // "ㄌㄨㄣ" => "lun" + &pinyin_table[321], // "ㄌㄨㄤ" => "luang" + &pinyin_table[317], // "ㄌㄨㄥ" => "long" + &pinyin_table[328], // "ㄌㄩ" => "lv" + &pinyin_table[329], // "ㄌㄩㄝ" => "lve" + &pinyin_table[160], // "ㄍ" => "g" + &pinyin_table[161], // "ㄍㄚ" => "ga" + &pinyin_table[168], // "ㄍㄜ" => "ge" + &pinyin_table[163], // "ㄍㄞ" => "gai" + &pinyin_table[170], // "ㄍㄟ" => "gei" + &pinyin_table[167], // "ㄍㄠ" => "gao" + &pinyin_table[178], // "ㄍㄡ" => "gou" + &pinyin_table[165], // "ㄍㄢ" => "gan" + &pinyin_table[172], // "ㄍㄣ" => "gen" + &pinyin_table[166], // "ㄍㄤ" => "gang" + &pinyin_table[173], // "ㄍㄥ" => "geng" + &pinyin_table[179], // "ㄍㄨ" => "gu" + &pinyin_table[180], // "ㄍㄨㄚ" => "gua" + &pinyin_table[190], // "ㄍㄨㄛ" => "guo" + &pinyin_table[182], // "ㄍㄨㄞ" => "guai" + &pinyin_table[188], // "ㄍㄨㄟ" => "gui" + &pinyin_table[184], // "ㄍㄨㄢ" => "guan" + &pinyin_table[189], // "ㄍㄨㄣ" => "gun" + &pinyin_table[185], // "ㄍㄨㄤ" => "guang" + &pinyin_table[177], // "ㄍㄨㄥ" => "gong" + &pinyin_table[254], // "ㄎ" => "k" + &pinyin_table[255], // "ㄎㄚ" => "ka" + &pinyin_table[262], // "ㄎㄜ" => "ke" + &pinyin_table[257], // "ㄎㄞ" => "kai" + &pinyin_table[264], // "ㄎㄟ" => "kei" + &pinyin_table[261], // "ㄎㄠ" => "kao" + &pinyin_table[272], // "ㄎㄡ" => "kou" + &pinyin_table[259], // "ㄎㄢ" => "kan" + &pinyin_table[266], // "ㄎㄣ" => "ken" + &pinyin_table[260], // "ㄎㄤ" => "kang" + &pinyin_table[267], // "ㄎㄥ" => "keng" + &pinyin_table[273], // "ㄎㄨ" => "ku" + &pinyin_table[274], // "ㄎㄨㄚ" => "kua" + &pinyin_table[284], // "ㄎㄨㄛ" => "kuo" + &pinyin_table[276], // "ㄎㄨㄞ" => "kuai" + &pinyin_table[282], // "ㄎㄨㄟ" => "kui" + &pinyin_table[278], // "ㄎㄨㄢ" => "kuan" + &pinyin_table[283], // "ㄎㄨㄣ" => "kun" + &pinyin_table[279], // "ㄎㄨㄤ" => "kuang" + &pinyin_table[271], // "ㄎㄨㄥ" => "kong" + &pinyin_table[191], // "ㄏ" => "h" + &pinyin_table[192], // "ㄏㄚ" => "ha" + &pinyin_table[205], // "ㄏㄛ" => "ho" + &pinyin_table[199], // "ㄏㄜ" => "he" + &pinyin_table[194], // "ㄏㄞ" => "hai" + &pinyin_table[201], // "ㄏㄟ" => "hei" + &pinyin_table[198], // "ㄏㄠ" => "hao" + &pinyin_table[210], // "ㄏㄡ" => "hou" + &pinyin_table[196], // "ㄏㄢ" => "han" + &pinyin_table[203], // "ㄏㄣ" => "hen" + &pinyin_table[197], // "ㄏㄤ" => "hang" + &pinyin_table[204], // "ㄏㄥ" => "heng" + &pinyin_table[211], // "ㄏㄨ" => "hu" + &pinyin_table[212], // "ㄏㄨㄚ" => "hua" + &pinyin_table[222], // "ㄏㄨㄛ" => "huo" + &pinyin_table[214], // "ㄏㄨㄞ" => "huai" + &pinyin_table[220], // "ㄏㄨㄟ" => "hui" + &pinyin_table[216], // "ㄏㄨㄢ" => "huan" + &pinyin_table[221], // "ㄏㄨㄣ" => "hun" + &pinyin_table[217], // "ㄏㄨㄤ" => "huang" + &pinyin_table[209], // "ㄏㄨㄥ" => "hong" + &pinyin_table[223], // "ㄐ" => "j" + &pinyin_table[224], // "ㄐㄧ" => "ji" + &pinyin_table[225], // "ㄐㄧㄚ" => "jia" + &pinyin_table[231], // "ㄐㄧㄝ" => "jie" + &pinyin_table[230], // "ㄐㄧㄠ" => "jiao" + &pinyin_table[241], // "ㄐㄧㄡ" => "jiu" + &pinyin_table[228], // "ㄐㄧㄢ" => "jian" + &pinyin_table[234], // "ㄐㄧㄣ" => "jin" + &pinyin_table[229], // "ㄐㄧㄤ" => "jiang" + &pinyin_table[235], // "ㄐㄧㄥ" => "jing" + &pinyin_table[242], // "ㄐㄩ" => "ju" + &pinyin_table[245], // "ㄐㄩㄝ" => "jue" + &pinyin_table[243], // "ㄐㄩㄢ" => "juan" + &pinyin_table[247], // "ㄐㄩㄣ" => "jun" + &pinyin_table[244], // "ㄐㄩㄤ" => "juang" + &pinyin_table[239], // "ㄐㄩㄥ" => "jiong" + &pinyin_table[428], // "ㄑ" => "q" + &pinyin_table[429], // "ㄑㄧ" => "qi" + &pinyin_table[430], // "ㄑㄧㄚ" => "qia" + &pinyin_table[436], // "ㄑㄧㄝ" => "qie" + &pinyin_table[435], // "ㄑㄧㄠ" => "qiao" + &pinyin_table[446], // "ㄑㄧㄡ" => "qiu" + &pinyin_table[433], // "ㄑㄧㄢ" => "qian" + &pinyin_table[439], // "ㄑㄧㄣ" => "qin" + &pinyin_table[434], // "ㄑㄧㄤ" => "qiang" + &pinyin_table[440], // "ㄑㄧㄥ" => "qing" + &pinyin_table[447], // "ㄑㄩ" => "qu" + &pinyin_table[450], // "ㄑㄩㄝ" => "que" + &pinyin_table[448], // "ㄑㄩㄢ" => "quan" + &pinyin_table[452], // "ㄑㄩㄣ" => "qun" + &pinyin_table[449], // "ㄑㄩㄤ" => "quang" + &pinyin_table[444], // "ㄑㄩㄥ" => "qiong" + &pinyin_table[609], // "ㄒ" => "x" + &pinyin_table[610], // "ㄒㄧ" => "xi" + &pinyin_table[611], // "ㄒㄧㄚ" => "xia" + &pinyin_table[617], // "ㄒㄧㄝ" => "xie" + &pinyin_table[616], // "ㄒㄧㄠ" => "xiao" + &pinyin_table[627], // "ㄒㄧㄡ" => "xiu" + &pinyin_table[614], // "ㄒㄧㄢ" => "xian" + &pinyin_table[620], // "ㄒㄧㄣ" => "xin" + &pinyin_table[615], // "ㄒㄧㄤ" => "xiang" + &pinyin_table[621], // "ㄒㄧㄥ" => "xing" + &pinyin_table[628], // "ㄒㄩ" => "xu" + &pinyin_table[631], // "ㄒㄩㄝ" => "xue" + &pinyin_table[629], // "ㄒㄩㄢ" => "xuan" + &pinyin_table[633], // "ㄒㄩㄣ" => "xun" + &pinyin_table[630], // "ㄒㄩㄤ" => "xuang" + &pinyin_table[625], // "ㄒㄩㄥ" => "xiong" + &pinyin_table[699], // "ㄓ" => "zhi" + &pinyin_table[686], // "ㄓㄚ" => "zha" + &pinyin_table[693], // "ㄓㄜ" => "zhe" + &pinyin_table[688], // "ㄓㄞ" => "zhai" + &pinyin_table[695], // "ㄓㄟ" => "zhei" + &pinyin_table[692], // "ㄓㄠ" => "zhao" + &pinyin_table[704], // "ㄓㄡ" => "zhou" + &pinyin_table[690], // "ㄓㄢ" => "zhan" + &pinyin_table[697], // "ㄓㄣ" => "zhen" + &pinyin_table[691], // "ㄓㄤ" => "zhang" + &pinyin_table[698], // "ㄓㄥ" => "zheng" + &pinyin_table[705], // "ㄓㄨ" => "zhu" + &pinyin_table[706], // "ㄓㄨㄚ" => "zhua" + &pinyin_table[716], // "ㄓㄨㄛ" => "zhuo" + &pinyin_table[708], // "ㄓㄨㄞ" => "zhuai" + &pinyin_table[714], // "ㄓㄨㄟ" => "zhui" + &pinyin_table[710], // "ㄓㄨㄢ" => "zhuan" + &pinyin_table[715], // "ㄓㄨㄣ" => "zhun" + &pinyin_table[711], // "ㄓㄨㄤ" => "zhuang" + &pinyin_table[703], // "ㄓㄨㄥ" => "zhong" + &pinyin_table[57], // "ㄔ" => "chi" + &pinyin_table[45], // "ㄔㄚ" => "cha" + &pinyin_table[52], // "ㄔㄜ" => "che" + &pinyin_table[47], // "ㄔㄞ" => "chai" + &pinyin_table[51], // "ㄔㄠ" => "chao" + &pinyin_table[62], // "ㄔㄡ" => "chou" + &pinyin_table[49], // "ㄔㄢ" => "chan" + &pinyin_table[55], // "ㄔㄣ" => "chen" + &pinyin_table[50], // "ㄔㄤ" => "chang" + &pinyin_table[56], // "ㄔㄥ" => "cheng" + &pinyin_table[63], // "ㄔㄨ" => "chu" + &pinyin_table[73], // "ㄔㄨㄛ" => "chuo" + &pinyin_table[65], // "ㄔㄨㄞ" => "chuai" + &pinyin_table[71], // "ㄔㄨㄟ" => "chui" + &pinyin_table[67], // "ㄔㄨㄢ" => "chuan" + &pinyin_table[72], // "ㄔㄨㄣ" => "chun" + &pinyin_table[68], // "ㄔㄨㄤ" => "chuang" + &pinyin_table[61], // "ㄔㄨㄥ" => "chong" + &pinyin_table[528], // "ㄕ" => "shi" + &pinyin_table[515], // "ㄕㄚ" => "sha" + &pinyin_table[522], // "ㄕㄜ" => "she" + &pinyin_table[517], // "ㄕㄞ" => "shai" + &pinyin_table[524], // "ㄕㄟ" => "shei" + &pinyin_table[521], // "ㄕㄠ" => "shao" + &pinyin_table[531], // "ㄕㄡ" => "shou" + &pinyin_table[519], // "ㄕㄢ" => "shan" + &pinyin_table[526], // "ㄕㄣ" => "shen" + &pinyin_table[520], // "ㄕㄤ" => "shang" + &pinyin_table[527], // "ㄕㄥ" => "sheng" + &pinyin_table[532], // "ㄕㄨ" => "shu" + &pinyin_table[533], // "ㄕㄨㄚ" => "shua" + &pinyin_table[543], // "ㄕㄨㄛ" => "shuo" + &pinyin_table[535], // "ㄕㄨㄞ" => "shuai" + &pinyin_table[541], // "ㄕㄨㄟ" => "shui" + &pinyin_table[537], // "ㄕㄨㄢ" => "shuan" + &pinyin_table[542], // "ㄕㄨㄣ" => "shun" + &pinyin_table[538], // "ㄕㄨㄤ" => "shuang" + &pinyin_table[530], // "ㄕㄨㄥ" => "shong" + &pinyin_table[473], // "ㄖ" => "ri" + &pinyin_table[460], // "ㄖㄚ" => "ra" + &pinyin_table[483], // "ㄖㄛ" => "ro" + &pinyin_table[467], // "ㄖㄜ" => "re" + &pinyin_table[462], // "ㄖㄞ" => "rai" + &pinyin_table[469], // "ㄖㄟ" => "rei" + &pinyin_table[466], // "ㄖㄠ" => "rao" + &pinyin_table[488], // "ㄖㄡ" => "rou" + &pinyin_table[464], // "ㄖㄢ" => "ran" + &pinyin_table[471], // "ㄖㄣ" => "ren" + &pinyin_table[465], // "ㄖㄤ" => "rang" + &pinyin_table[472], // "ㄖㄥ" => "reng" + &pinyin_table[474], // "ㄖㄧㄚ" => "ria" + &pinyin_table[478], // "ㄖㄧㄝ" => "rie" + &pinyin_table[477], // "ㄖㄧㄠ" => "riao" + &pinyin_table[482], // "ㄖㄧㄡ" => "riu" + &pinyin_table[475], // "ㄖㄧㄢ" => "rian" + &pinyin_table[479], // "ㄖㄧㄣ" => "rin" + &pinyin_table[476], // "ㄖㄧㄤ" => "riang" + &pinyin_table[480], // "ㄖㄧㄥ" => "ring" + &pinyin_table[489], // "ㄖㄨ" => "ru" + &pinyin_table[497], // "ㄖㄨㄛ" => "ruo" + &pinyin_table[495], // "ㄖㄨㄟ" => "rui" + &pinyin_table[490], // "ㄖㄨㄢ" => "ruan" + &pinyin_table[496], // "ㄖㄨㄣ" => "run" + &pinyin_table[491], // "ㄖㄨㄤ" => "ruang" + &pinyin_table[487], // "ㄖㄨㄥ" => "rong" + &pinyin_table[498], // "ㄖㄩ" => "rv" + &pinyin_table[499], // "ㄖㄩㄝ" => "rve" + &pinyin_table[717], // "ㄗ" => "zi" + &pinyin_table[672], // "ㄗㄚ" => "za" + &pinyin_table[679], // "ㄗㄜ" => "ze" + &pinyin_table[674], // "ㄗㄞ" => "zai" + &pinyin_table[681], // "ㄗㄟ" => "zei" + &pinyin_table[678], // "ㄗㄠ" => "zao" + &pinyin_table[722], // "ㄗㄡ" => "zou" + &pinyin_table[676], // "ㄗㄢ" => "zan" + &pinyin_table[683], // "ㄗㄣ" => "zen" + &pinyin_table[677], // "ㄗㄤ" => "zang" + &pinyin_table[684], // "ㄗㄥ" => "zeng" + &pinyin_table[723], // "ㄗㄨ" => "zu" + &pinyin_table[724], // "ㄗㄨㄚ" => "zua" + &pinyin_table[732], // "ㄗㄨㄛ" => "zuo" + &pinyin_table[725], // "ㄗㄨㄞ" => "zuai" + &pinyin_table[730], // "ㄗㄨㄟ" => "zui" + &pinyin_table[726], // "ㄗㄨㄢ" => "zuan" + &pinyin_table[731], // "ㄗㄨㄣ" => "zun" + &pinyin_table[727], // "ㄗㄨㄤ" => "zuang" + &pinyin_table[721], // "ㄗㄨㄥ" => "zong" + &pinyin_table[74], // "ㄘ" => "ci" + &pinyin_table[32], // "ㄘㄚ" => "ca" + &pinyin_table[39], // "ㄘㄜ" => "ce" + &pinyin_table[34], // "ㄘㄞ" => "cai" + &pinyin_table[38], // "ㄘㄠ" => "cao" + &pinyin_table[79], // "ㄘㄡ" => "cou" + &pinyin_table[36], // "ㄘㄢ" => "can" + &pinyin_table[42], // "ㄘㄣ" => "cen" + &pinyin_table[37], // "ㄘㄤ" => "cang" + &pinyin_table[43], // "ㄘㄥ" => "ceng" + &pinyin_table[80], // "ㄘㄨ" => "cu" + &pinyin_table[88], // "ㄘㄨㄛ" => "cuo" + &pinyin_table[81], // "ㄘㄨㄞ" => "cuai" + &pinyin_table[86], // "ㄘㄨㄟ" => "cui" + &pinyin_table[82], // "ㄘㄨㄢ" => "cuan" + &pinyin_table[87], // "ㄘㄨㄣ" => "cun" + &pinyin_table[83], // "ㄘㄨㄤ" => "cuang" + &pinyin_table[78], // "ㄘㄨㄥ" => "cong" + &pinyin_table[544], // "ㄙ" => "si" + &pinyin_table[501], // "ㄙㄚ" => "sa" + &pinyin_table[508], // "ㄙㄜ" => "se" + &pinyin_table[503], // "ㄙㄞ" => "sai" + &pinyin_table[510], // "ㄙㄟ" => "sei" + &pinyin_table[507], // "ㄙㄠ" => "sao" + &pinyin_table[549], // "ㄙㄡ" => "sou" + &pinyin_table[505], // "ㄙㄢ" => "san" + &pinyin_table[512], // "ㄙㄣ" => "sen" + &pinyin_table[506], // "ㄙㄤ" => "sang" + &pinyin_table[513], // "ㄙㄥ" => "seng" + &pinyin_table[550], // "ㄙㄨ" => "su" + &pinyin_table[551], // "ㄙㄨㄚ" => "sua" + &pinyin_table[559], // "ㄙㄨㄛ" => "suo" + &pinyin_table[552], // "ㄙㄨㄞ" => "suai" + &pinyin_table[557], // "ㄙㄨㄟ" => "sui" + &pinyin_table[553], // "ㄙㄨㄢ" => "suan" + &pinyin_table[558], // "ㄙㄨㄣ" => "sun" + &pinyin_table[554], // "ㄙㄨㄤ" => "suang" + &pinyin_table[548], // "ㄙㄨㄥ" => "song" + &pinyin_table[0], // "ㄚ" => "a" + &pinyin_table[401], // "ㄛ" => "o" + &pinyin_table[128], // "ㄜ" => "e" + &pinyin_table[2], // "ㄞ" => "ai" + &pinyin_table[129], // "ㄟ" => "ei" + &pinyin_table[6], // "ㄠ" => "ao" + &pinyin_table[402], // "ㄡ" => "ou" + &pinyin_table[4], // "ㄢ" => "an" + &pinyin_table[130], // "ㄣ" => "en" + &pinyin_table[5], // "ㄤ" => "ang" + &pinyin_table[131], // "ㄦ" => "er" + &pinyin_table[648], // "ㄧ" => "yi" + &pinyin_table[641], // "ㄧㄚ" => "ya" + &pinyin_table[653], // "ㄧㄛ" => "yo" + &pinyin_table[647], // "ㄧㄝ" => "ye" + &pinyin_table[646], // "ㄧㄠ" => "yao" + &pinyin_table[658], // "ㄧㄡ" => "you" + &pinyin_table[644], // "ㄧㄢ" => "yan" + &pinyin_table[651], // "ㄧㄣ" => "yin" + &pinyin_table[645], // "ㄧㄤ" => "yang" + &pinyin_table[652], // "ㄧㄥ" => "ying" + &pinyin_table[661], // "ㄧㄩㄤ" => "yuang" + &pinyin_table[608], // "ㄨ" => "wu" + &pinyin_table[596], // "ㄨㄚ" => "wa" + &pinyin_table[607], // "ㄨㄛ" => "wo" + &pinyin_table[598], // "ㄨㄞ" => "wai" + &pinyin_table[603], // "ㄨㄟ" => "wei" + &pinyin_table[600], // "ㄨㄢ" => "wan" + &pinyin_table[605], // "ㄨㄣ" => "wen" + &pinyin_table[601], // "ㄨㄤ" => "wang" + &pinyin_table[606], // "ㄨㄥ" => "weng" + &pinyin_table[659], // "ㄩ" => "yu" + &pinyin_table[662], // "ㄩㄝ" => "yue" + &pinyin_table[660], // "ㄩㄢ" => "yuan" + &pinyin_table[664], // "ㄩㄣ" => "yun" + &pinyin_table[657], // "ㄩㄥ" => "yong" +}; + +static const Pinyin *special_table[][4] = { + { &pinyin_table[4], &pinyin_table[0], &pinyin_table[0], &pinyin_table[359], }, /* an a => a na */ + { &pinyin_table[4], &pinyin_table[2], &pinyin_table[0], &pinyin_table[361], }, /* an ai => a nai */ + { &pinyin_table[4], &pinyin_table[6], &pinyin_table[0], &pinyin_table[365], }, /* an ao => a nao */ + { &pinyin_table[4], &pinyin_table[128], &pinyin_table[0], &pinyin_table[366], }, /* an e => a ne */ + { &pinyin_table[4], &pinyin_table[129], &pinyin_table[0], &pinyin_table[368], }, /* an ei => a nei */ + { &pinyin_table[5], &pinyin_table[0], &pinyin_table[4], &pinyin_table[161], }, /* ang a => an ga */ + { &pinyin_table[5], &pinyin_table[2], &pinyin_table[4], &pinyin_table[163], }, /* ang ai => an gai */ + { &pinyin_table[5], &pinyin_table[4], &pinyin_table[4], &pinyin_table[165], }, /* ang an => an gan */ + { &pinyin_table[5], &pinyin_table[5], &pinyin_table[4], &pinyin_table[166], }, /* ang ang => an gang */ + { &pinyin_table[5], &pinyin_table[6], &pinyin_table[4], &pinyin_table[167], }, /* ang ao => an gao */ + { &pinyin_table[5], &pinyin_table[128], &pinyin_table[4], &pinyin_table[168], }, /* ang e => an ge */ + { &pinyin_table[5], &pinyin_table[129], &pinyin_table[4], &pinyin_table[170], }, /* ang ei => an gei */ + { &pinyin_table[5], &pinyin_table[130], &pinyin_table[4], &pinyin_table[172], }, /* ang en => an gen */ + { &pinyin_table[5], &pinyin_table[402], &pinyin_table[4], &pinyin_table[178], }, /* ang ou => an gou */ + { &pinyin_table[12], &pinyin_table[0], &pinyin_table[8], &pinyin_table[359], }, /* ban a => ba na */ + { &pinyin_table[12], &pinyin_table[5], &pinyin_table[8], &pinyin_table[364], }, /* ban ang => ba nang */ + { &pinyin_table[12], &pinyin_table[6], &pinyin_table[8], &pinyin_table[365], }, /* ban ao => ba nao */ + { &pinyin_table[12], &pinyin_table[128], &pinyin_table[8], &pinyin_table[366], }, /* ban e => ba ne */ + { &pinyin_table[12], &pinyin_table[129], &pinyin_table[8], &pinyin_table[368], }, /* ban ei => ba nei */ + { &pinyin_table[13], &pinyin_table[2], &pinyin_table[12], &pinyin_table[163], }, /* bang ai => ban gai */ + { &pinyin_table[13], &pinyin_table[5], &pinyin_table[12], &pinyin_table[166], }, /* bang ang => ban gang */ + { &pinyin_table[13], &pinyin_table[6], &pinyin_table[12], &pinyin_table[167], }, /* bang ao => ban gao */ + { &pinyin_table[13], &pinyin_table[128], &pinyin_table[12], &pinyin_table[168], }, /* bang e => ban ge */ + { &pinyin_table[13], &pinyin_table[129], &pinyin_table[12], &pinyin_table[170], }, /* bang ei => ban gei */ + { &pinyin_table[13], &pinyin_table[130], &pinyin_table[12], &pinyin_table[172], }, /* bang en => ban gen */ + { &pinyin_table[19], &pinyin_table[0], &pinyin_table[18], &pinyin_table[161], }, /* beng a => ben ga */ + { &pinyin_table[19], &pinyin_table[2], &pinyin_table[18], &pinyin_table[163], }, /* beng ai => ben gai */ + { &pinyin_table[19], &pinyin_table[4], &pinyin_table[18], &pinyin_table[165], }, /* beng an => ben gan */ + { &pinyin_table[19], &pinyin_table[5], &pinyin_table[18], &pinyin_table[166], }, /* beng ang => ben gang */ + { &pinyin_table[19], &pinyin_table[6], &pinyin_table[18], &pinyin_table[167], }, /* beng ao => ben gao */ + { &pinyin_table[19], &pinyin_table[128], &pinyin_table[18], &pinyin_table[168], }, /* beng e => ben ge */ + { &pinyin_table[19], &pinyin_table[129], &pinyin_table[18], &pinyin_table[170], }, /* beng ei => ben gei */ + { &pinyin_table[19], &pinyin_table[130], &pinyin_table[18], &pinyin_table[172], }, /* beng en => ben gen */ + { &pinyin_table[19], &pinyin_table[402], &pinyin_table[18], &pinyin_table[178], }, /* beng ou => ben gou */ + { &pinyin_table[22], &pinyin_table[0], &pinyin_table[21], &pinyin_table[161], }, /* biang a => bian ga */ + { &pinyin_table[22], &pinyin_table[2], &pinyin_table[21], &pinyin_table[163], }, /* biang ai => bian gai */ + { &pinyin_table[22], &pinyin_table[4], &pinyin_table[21], &pinyin_table[165], }, /* biang an => bian gan */ + { &pinyin_table[22], &pinyin_table[5], &pinyin_table[21], &pinyin_table[166], }, /* biang ang => bian gang */ + { &pinyin_table[22], &pinyin_table[6], &pinyin_table[21], &pinyin_table[167], }, /* biang ao => bian gao */ + { &pinyin_table[22], &pinyin_table[128], &pinyin_table[21], &pinyin_table[168], }, /* biang e => bian ge */ + { &pinyin_table[22], &pinyin_table[129], &pinyin_table[21], &pinyin_table[170], }, /* biang ei => bian gei */ + { &pinyin_table[22], &pinyin_table[130], &pinyin_table[21], &pinyin_table[172], }, /* biang en => bian gen */ + { &pinyin_table[22], &pinyin_table[402], &pinyin_table[21], &pinyin_table[178], }, /* biang ou => bian gou */ + { &pinyin_table[24], &pinyin_table[459], &pinyin_table[20], &pinyin_table[131], }, /* bie r => bi er */ + { &pinyin_table[27], &pinyin_table[0], &pinyin_table[20], &pinyin_table[359], }, /* bin a => bi na */ + { &pinyin_table[27], &pinyin_table[2], &pinyin_table[20], &pinyin_table[361], }, /* bin ai => bi nai */ + { &pinyin_table[27], &pinyin_table[4], &pinyin_table[20], &pinyin_table[363], }, /* bin an => bi nan */ + { &pinyin_table[27], &pinyin_table[5], &pinyin_table[20], &pinyin_table[364], }, /* bin ang => bi nang */ + { &pinyin_table[27], &pinyin_table[6], &pinyin_table[20], &pinyin_table[365], }, /* bin ao => bi nao */ + { &pinyin_table[27], &pinyin_table[128], &pinyin_table[20], &pinyin_table[366], }, /* bin e => bi ne */ + { &pinyin_table[27], &pinyin_table[129], &pinyin_table[20], &pinyin_table[368], }, /* bin ei => bi nei */ + { &pinyin_table[27], &pinyin_table[130], &pinyin_table[20], &pinyin_table[370], }, /* bin en => bi nen */ + { &pinyin_table[28], &pinyin_table[128], &pinyin_table[27], &pinyin_table[168], }, /* bing e => bin ge */ + { &pinyin_table[28], &pinyin_table[129], &pinyin_table[27], &pinyin_table[170], }, /* bing ei => bin gei */ + { &pinyin_table[36], &pinyin_table[129], &pinyin_table[32], &pinyin_table[368], }, /* can ei => ca nei */ + { &pinyin_table[37], &pinyin_table[4], &pinyin_table[36], &pinyin_table[165], }, /* cang an => can gan */ + { &pinyin_table[37], &pinyin_table[5], &pinyin_table[36], &pinyin_table[166], }, /* cang ang => can gang */ + { &pinyin_table[37], &pinyin_table[128], &pinyin_table[36], &pinyin_table[168], }, /* cang e => can ge */ + { &pinyin_table[37], &pinyin_table[129], &pinyin_table[36], &pinyin_table[170], }, /* cang ei => can gei */ + { &pinyin_table[37], &pinyin_table[130], &pinyin_table[36], &pinyin_table[172], }, /* cang en => can gen */ + { &pinyin_table[37], &pinyin_table[402], &pinyin_table[36], &pinyin_table[178], }, /* cang ou => can gou */ + { &pinyin_table[42], &pinyin_table[0], &pinyin_table[39], &pinyin_table[359], }, /* cen a => ce na */ + { &pinyin_table[42], &pinyin_table[2], &pinyin_table[39], &pinyin_table[361], }, /* cen ai => ce nai */ + { &pinyin_table[42], &pinyin_table[4], &pinyin_table[39], &pinyin_table[363], }, /* cen an => ce nan */ + { &pinyin_table[42], &pinyin_table[5], &pinyin_table[39], &pinyin_table[364], }, /* cen ang => ce nang */ + { &pinyin_table[42], &pinyin_table[6], &pinyin_table[39], &pinyin_table[365], }, /* cen ao => ce nao */ + { &pinyin_table[42], &pinyin_table[128], &pinyin_table[39], &pinyin_table[366], }, /* cen e => ce ne */ + { &pinyin_table[42], &pinyin_table[129], &pinyin_table[39], &pinyin_table[368], }, /* cen ei => ce nei */ + { &pinyin_table[42], &pinyin_table[130], &pinyin_table[39], &pinyin_table[370], }, /* cen en => ce nen */ + { &pinyin_table[43], &pinyin_table[129], &pinyin_table[42], &pinyin_table[170], }, /* ceng ei => cen gei */ + { &pinyin_table[49], &pinyin_table[0], &pinyin_table[45], &pinyin_table[359], }, /* chan a => cha na */ + { &pinyin_table[49], &pinyin_table[6], &pinyin_table[45], &pinyin_table[365], }, /* chan ao => cha nao */ + { &pinyin_table[49], &pinyin_table[128], &pinyin_table[45], &pinyin_table[366], }, /* chan e => cha ne */ + { &pinyin_table[49], &pinyin_table[129], &pinyin_table[45], &pinyin_table[368], }, /* chan ei => cha nei */ + { &pinyin_table[50], &pinyin_table[5], &pinyin_table[49], &pinyin_table[166], }, /* chang ang => chan gang */ + { &pinyin_table[50], &pinyin_table[6], &pinyin_table[49], &pinyin_table[167], }, /* chang ao => chan gao */ + { &pinyin_table[50], &pinyin_table[129], &pinyin_table[49], &pinyin_table[170], }, /* chang ei => chan gei */ + { &pinyin_table[50], &pinyin_table[130], &pinyin_table[49], &pinyin_table[172], }, /* chang en => chan gen */ + { &pinyin_table[50], &pinyin_table[402], &pinyin_table[49], &pinyin_table[178], }, /* chang ou => chan gou */ + { &pinyin_table[55], &pinyin_table[0], &pinyin_table[52], &pinyin_table[359], }, /* chen a => che na */ + { &pinyin_table[55], &pinyin_table[4], &pinyin_table[52], &pinyin_table[363], }, /* chen an => che nan */ + { &pinyin_table[55], &pinyin_table[5], &pinyin_table[52], &pinyin_table[364], }, /* chen ang => che nang */ + { &pinyin_table[55], &pinyin_table[6], &pinyin_table[52], &pinyin_table[365], }, /* chen ao => che nao */ + { &pinyin_table[55], &pinyin_table[128], &pinyin_table[52], &pinyin_table[366], }, /* chen e => che ne */ + { &pinyin_table[55], &pinyin_table[129], &pinyin_table[52], &pinyin_table[368], }, /* chen ei => che nei */ + { &pinyin_table[56], &pinyin_table[5], &pinyin_table[55], &pinyin_table[166], }, /* cheng ang => chen gang */ + { &pinyin_table[56], &pinyin_table[6], &pinyin_table[55], &pinyin_table[167], }, /* cheng ao => chen gao */ + { &pinyin_table[56], &pinyin_table[129], &pinyin_table[55], &pinyin_table[170], }, /* cheng ei => chen gei */ + { &pinyin_table[56], &pinyin_table[402], &pinyin_table[55], &pinyin_table[178], }, /* cheng ou => chen gou */ + { &pinyin_table[68], &pinyin_table[4], &pinyin_table[67], &pinyin_table[165], }, /* chuang an => chuan gan */ + { &pinyin_table[68], &pinyin_table[5], &pinyin_table[67], &pinyin_table[166], }, /* chuang ang => chuan gang */ + { &pinyin_table[68], &pinyin_table[6], &pinyin_table[67], &pinyin_table[167], }, /* chuang ao => chuan gao */ + { &pinyin_table[68], &pinyin_table[128], &pinyin_table[67], &pinyin_table[168], }, /* chuang e => chuan ge */ + { &pinyin_table[68], &pinyin_table[129], &pinyin_table[67], &pinyin_table[170], }, /* chuang ei => chuan gei */ + { &pinyin_table[68], &pinyin_table[130], &pinyin_table[67], &pinyin_table[172], }, /* chuang en => chuan gen */ + { &pinyin_table[68], &pinyin_table[402], &pinyin_table[67], &pinyin_table[178], }, /* chuang ou => chuan gou */ + { &pinyin_table[72], &pinyin_table[0], &pinyin_table[63], &pinyin_table[359], }, /* chun a => chu na */ + { &pinyin_table[72], &pinyin_table[4], &pinyin_table[63], &pinyin_table[363], }, /* chun an => chu nan */ + { &pinyin_table[72], &pinyin_table[5], &pinyin_table[63], &pinyin_table[364], }, /* chun ang => chu nang */ + { &pinyin_table[72], &pinyin_table[6], &pinyin_table[63], &pinyin_table[365], }, /* chun ao => chu nao */ + { &pinyin_table[72], &pinyin_table[128], &pinyin_table[63], &pinyin_table[366], }, /* chun e => chu ne */ + { &pinyin_table[72], &pinyin_table[129], &pinyin_table[63], &pinyin_table[368], }, /* chun ei => chu nei */ + { &pinyin_table[83], &pinyin_table[0], &pinyin_table[82], &pinyin_table[161], }, /* cuang a => cuan ga */ + { &pinyin_table[83], &pinyin_table[2], &pinyin_table[82], &pinyin_table[163], }, /* cuang ai => cuan gai */ + { &pinyin_table[83], &pinyin_table[4], &pinyin_table[82], &pinyin_table[165], }, /* cuang an => cuan gan */ + { &pinyin_table[83], &pinyin_table[5], &pinyin_table[82], &pinyin_table[166], }, /* cuang ang => cuan gang */ + { &pinyin_table[83], &pinyin_table[6], &pinyin_table[82], &pinyin_table[167], }, /* cuang ao => cuan gao */ + { &pinyin_table[83], &pinyin_table[128], &pinyin_table[82], &pinyin_table[168], }, /* cuang e => cuan ge */ + { &pinyin_table[83], &pinyin_table[129], &pinyin_table[82], &pinyin_table[170], }, /* cuang ei => cuan gei */ + { &pinyin_table[83], &pinyin_table[130], &pinyin_table[82], &pinyin_table[172], }, /* cuang en => cuan gen */ + { &pinyin_table[83], &pinyin_table[402], &pinyin_table[82], &pinyin_table[178], }, /* cuang ou => cuan gou */ + { &pinyin_table[87], &pinyin_table[128], &pinyin_table[80], &pinyin_table[366], }, /* cun e => cu ne */ + { &pinyin_table[87], &pinyin_table[129], &pinyin_table[80], &pinyin_table[368], }, /* cun ei => cu nei */ + { &pinyin_table[94], &pinyin_table[0], &pinyin_table[90], &pinyin_table[359], }, /* dan a => da na */ + { &pinyin_table[94], &pinyin_table[2], &pinyin_table[90], &pinyin_table[361], }, /* dan ai => da nai */ + { &pinyin_table[94], &pinyin_table[4], &pinyin_table[90], &pinyin_table[363], }, /* dan an => da nan */ + { &pinyin_table[94], &pinyin_table[5], &pinyin_table[90], &pinyin_table[364], }, /* dan ang => da nang */ + { &pinyin_table[94], &pinyin_table[6], &pinyin_table[90], &pinyin_table[365], }, /* dan ao => da nao */ + { &pinyin_table[94], &pinyin_table[128], &pinyin_table[90], &pinyin_table[366], }, /* dan e => da ne */ + { &pinyin_table[94], &pinyin_table[129], &pinyin_table[90], &pinyin_table[368], }, /* dan ei => da nei */ + { &pinyin_table[95], &pinyin_table[2], &pinyin_table[94], &pinyin_table[163], }, /* dang ai => dan gai */ + { &pinyin_table[95], &pinyin_table[5], &pinyin_table[94], &pinyin_table[166], }, /* dang ang => dan gang */ + { &pinyin_table[95], &pinyin_table[6], &pinyin_table[94], &pinyin_table[167], }, /* dang ao => dan gao */ + { &pinyin_table[95], &pinyin_table[128], &pinyin_table[94], &pinyin_table[168], }, /* dang e => dan ge */ + { &pinyin_table[95], &pinyin_table[129], &pinyin_table[94], &pinyin_table[170], }, /* dang ei => dan gei */ + { &pinyin_table[95], &pinyin_table[130], &pinyin_table[94], &pinyin_table[172], }, /* dang en => dan gen */ + { &pinyin_table[101], &pinyin_table[0], &pinyin_table[97], &pinyin_table[359], }, /* den a => de na */ + { &pinyin_table[101], &pinyin_table[2], &pinyin_table[97], &pinyin_table[361], }, /* den ai => de nai */ + { &pinyin_table[101], &pinyin_table[4], &pinyin_table[97], &pinyin_table[363], }, /* den an => de nan */ + { &pinyin_table[101], &pinyin_table[5], &pinyin_table[97], &pinyin_table[364], }, /* den ang => de nang */ + { &pinyin_table[101], &pinyin_table[6], &pinyin_table[97], &pinyin_table[365], }, /* den ao => de nao */ + { &pinyin_table[101], &pinyin_table[128], &pinyin_table[97], &pinyin_table[366], }, /* den e => de ne */ + { &pinyin_table[101], &pinyin_table[129], &pinyin_table[97], &pinyin_table[368], }, /* den ei => de nei */ + { &pinyin_table[101], &pinyin_table[130], &pinyin_table[97], &pinyin_table[370], }, /* den en => de nen */ + { &pinyin_table[101], &pinyin_table[402], &pinyin_table[97], &pinyin_table[391], }, /* den ou => de nou */ + { &pinyin_table[106], &pinyin_table[0], &pinyin_table[105], &pinyin_table[161], }, /* diang a => dian ga */ + { &pinyin_table[106], &pinyin_table[2], &pinyin_table[105], &pinyin_table[163], }, /* diang ai => dian gai */ + { &pinyin_table[106], &pinyin_table[4], &pinyin_table[105], &pinyin_table[165], }, /* diang an => dian gan */ + { &pinyin_table[106], &pinyin_table[5], &pinyin_table[105], &pinyin_table[166], }, /* diang ang => dian gang */ + { &pinyin_table[106], &pinyin_table[6], &pinyin_table[105], &pinyin_table[167], }, /* diang ao => dian gao */ + { &pinyin_table[106], &pinyin_table[128], &pinyin_table[105], &pinyin_table[168], }, /* diang e => dian ge */ + { &pinyin_table[106], &pinyin_table[129], &pinyin_table[105], &pinyin_table[170], }, /* diang ei => dian gei */ + { &pinyin_table[106], &pinyin_table[130], &pinyin_table[105], &pinyin_table[172], }, /* diang en => dian gen */ + { &pinyin_table[106], &pinyin_table[402], &pinyin_table[105], &pinyin_table[178], }, /* diang ou => dian gou */ + { &pinyin_table[108], &pinyin_table[459], &pinyin_table[103], &pinyin_table[131], }, /* die r => di er */ + { &pinyin_table[111], &pinyin_table[0], &pinyin_table[103], &pinyin_table[359], }, /* din a => di na */ + { &pinyin_table[111], &pinyin_table[2], &pinyin_table[103], &pinyin_table[361], }, /* din ai => di nai */ + { &pinyin_table[111], &pinyin_table[4], &pinyin_table[103], &pinyin_table[363], }, /* din an => di nan */ + { &pinyin_table[111], &pinyin_table[5], &pinyin_table[103], &pinyin_table[364], }, /* din ang => di nang */ + { &pinyin_table[111], &pinyin_table[6], &pinyin_table[103], &pinyin_table[365], }, /* din ao => di nao */ + { &pinyin_table[111], &pinyin_table[128], &pinyin_table[103], &pinyin_table[366], }, /* din e => di ne */ + { &pinyin_table[111], &pinyin_table[129], &pinyin_table[103], &pinyin_table[368], }, /* din ei => di nei */ + { &pinyin_table[111], &pinyin_table[130], &pinyin_table[103], &pinyin_table[370], }, /* din en => di nen */ + { &pinyin_table[111], &pinyin_table[402], &pinyin_table[103], &pinyin_table[391], }, /* din ou => di nou */ + { &pinyin_table[122], &pinyin_table[0], &pinyin_table[121], &pinyin_table[161], }, /* duang a => duan ga */ + { &pinyin_table[122], &pinyin_table[2], &pinyin_table[121], &pinyin_table[163], }, /* duang ai => duan gai */ + { &pinyin_table[122], &pinyin_table[4], &pinyin_table[121], &pinyin_table[165], }, /* duang an => duan gan */ + { &pinyin_table[122], &pinyin_table[5], &pinyin_table[121], &pinyin_table[166], }, /* duang ang => duan gang */ + { &pinyin_table[122], &pinyin_table[6], &pinyin_table[121], &pinyin_table[167], }, /* duang ao => duan gao */ + { &pinyin_table[122], &pinyin_table[128], &pinyin_table[121], &pinyin_table[168], }, /* duang e => duan ge */ + { &pinyin_table[122], &pinyin_table[129], &pinyin_table[121], &pinyin_table[170], }, /* duang ei => duan gei */ + { &pinyin_table[122], &pinyin_table[130], &pinyin_table[121], &pinyin_table[172], }, /* duang en => duan gen */ + { &pinyin_table[122], &pinyin_table[402], &pinyin_table[121], &pinyin_table[178], }, /* duang ou => duan gou */ + { &pinyin_table[126], &pinyin_table[0], &pinyin_table[120], &pinyin_table[359], }, /* dun a => du na */ + { &pinyin_table[126], &pinyin_table[4], &pinyin_table[120], &pinyin_table[363], }, /* dun an => du nan */ + { &pinyin_table[126], &pinyin_table[5], &pinyin_table[120], &pinyin_table[364], }, /* dun ang => du nang */ + { &pinyin_table[126], &pinyin_table[6], &pinyin_table[120], &pinyin_table[365], }, /* dun ao => du nao */ + { &pinyin_table[126], &pinyin_table[128], &pinyin_table[120], &pinyin_table[366], }, /* dun e => du ne */ + { &pinyin_table[126], &pinyin_table[129], &pinyin_table[120], &pinyin_table[368], }, /* dun ei => du nei */ + { &pinyin_table[130], &pinyin_table[4], &pinyin_table[128], &pinyin_table[363], }, /* en an => e nan */ + { &pinyin_table[130], &pinyin_table[5], &pinyin_table[128], &pinyin_table[364], }, /* en ang => e nang */ + { &pinyin_table[130], &pinyin_table[6], &pinyin_table[128], &pinyin_table[365], }, /* en ao => e nao */ + { &pinyin_table[130], &pinyin_table[128], &pinyin_table[128], &pinyin_table[366], }, /* en e => e ne */ + { &pinyin_table[130], &pinyin_table[129], &pinyin_table[128], &pinyin_table[368], }, /* en ei => e nei */ + { &pinyin_table[131], &pinyin_table[4], &pinyin_table[128], &pinyin_table[464], }, /* er an => e ran */ + { &pinyin_table[131], &pinyin_table[5], &pinyin_table[128], &pinyin_table[465], }, /* er ang => e rang */ + { &pinyin_table[131], &pinyin_table[130], &pinyin_table[128], &pinyin_table[471], }, /* er en => e ren */ + { &pinyin_table[131], &pinyin_table[402], &pinyin_table[128], &pinyin_table[488], }, /* er ou => e rou */ + { &pinyin_table[137], &pinyin_table[5], &pinyin_table[133], &pinyin_table[364], }, /* fan ang => fa nang */ + { &pinyin_table[137], &pinyin_table[6], &pinyin_table[133], &pinyin_table[365], }, /* fan ao => fa nao */ + { &pinyin_table[137], &pinyin_table[129], &pinyin_table[133], &pinyin_table[368], }, /* fan ei => fa nei */ + { &pinyin_table[138], &pinyin_table[5], &pinyin_table[137], &pinyin_table[166], }, /* fang ang => fan gang */ + { &pinyin_table[138], &pinyin_table[6], &pinyin_table[137], &pinyin_table[167], }, /* fang ao => fan gao */ + { &pinyin_table[138], &pinyin_table[128], &pinyin_table[137], &pinyin_table[168], }, /* fang e => fan ge */ + { &pinyin_table[138], &pinyin_table[129], &pinyin_table[137], &pinyin_table[170], }, /* fang ei => fan gei */ + { &pinyin_table[138], &pinyin_table[130], &pinyin_table[137], &pinyin_table[172], }, /* fang en => fan gen */ + { &pinyin_table[145], &pinyin_table[5], &pinyin_table[144], &pinyin_table[166], }, /* feng ang => fen gang */ + { &pinyin_table[145], &pinyin_table[6], &pinyin_table[144], &pinyin_table[167], }, /* feng ao => fen gao */ + { &pinyin_table[145], &pinyin_table[128], &pinyin_table[144], &pinyin_table[168], }, /* feng e => fen ge */ + { &pinyin_table[145], &pinyin_table[129], &pinyin_table[144], &pinyin_table[170], }, /* feng ei => fen gei */ + { &pinyin_table[145], &pinyin_table[130], &pinyin_table[144], &pinyin_table[172], }, /* feng en => fen gen */ + { &pinyin_table[145], &pinyin_table[402], &pinyin_table[144], &pinyin_table[178], }, /* feng ou => fen gou */ + { &pinyin_table[147], &pinyin_table[0], &pinyin_table[146], &pinyin_table[359], }, /* fon a => fo na */ + { &pinyin_table[147], &pinyin_table[2], &pinyin_table[146], &pinyin_table[361], }, /* fon ai => fo nai */ + { &pinyin_table[147], &pinyin_table[4], &pinyin_table[146], &pinyin_table[363], }, /* fon an => fo nan */ + { &pinyin_table[147], &pinyin_table[5], &pinyin_table[146], &pinyin_table[364], }, /* fon ang => fo nang */ + { &pinyin_table[147], &pinyin_table[6], &pinyin_table[146], &pinyin_table[365], }, /* fon ao => fo nao */ + { &pinyin_table[147], &pinyin_table[128], &pinyin_table[146], &pinyin_table[366], }, /* fon e => fo ne */ + { &pinyin_table[147], &pinyin_table[129], &pinyin_table[146], &pinyin_table[368], }, /* fon ei => fo nei */ + { &pinyin_table[147], &pinyin_table[130], &pinyin_table[146], &pinyin_table[370], }, /* fon en => fo nen */ + { &pinyin_table[147], &pinyin_table[402], &pinyin_table[146], &pinyin_table[391], }, /* fon ou => fo nou */ + { &pinyin_table[158], &pinyin_table[0], &pinyin_table[150], &pinyin_table[359], }, /* fun a => fu na */ + { &pinyin_table[158], &pinyin_table[2], &pinyin_table[150], &pinyin_table[361], }, /* fun ai => fu nai */ + { &pinyin_table[158], &pinyin_table[4], &pinyin_table[150], &pinyin_table[363], }, /* fun an => fu nan */ + { &pinyin_table[158], &pinyin_table[5], &pinyin_table[150], &pinyin_table[364], }, /* fun ang => fu nang */ + { &pinyin_table[158], &pinyin_table[6], &pinyin_table[150], &pinyin_table[365], }, /* fun ao => fu nao */ + { &pinyin_table[158], &pinyin_table[128], &pinyin_table[150], &pinyin_table[366], }, /* fun e => fu ne */ + { &pinyin_table[158], &pinyin_table[129], &pinyin_table[150], &pinyin_table[368], }, /* fun ei => fu nei */ + { &pinyin_table[158], &pinyin_table[130], &pinyin_table[150], &pinyin_table[370], }, /* fun en => fu nen */ + { &pinyin_table[158], &pinyin_table[402], &pinyin_table[150], &pinyin_table[391], }, /* fun ou => fu nou */ + { &pinyin_table[165], &pinyin_table[128], &pinyin_table[161], &pinyin_table[366], }, /* gan e => ga ne */ + { &pinyin_table[165], &pinyin_table[129], &pinyin_table[161], &pinyin_table[368], }, /* gan ei => ga nei */ + { &pinyin_table[166], &pinyin_table[0], &pinyin_table[165], &pinyin_table[161], }, /* gang a => gan ga */ + { &pinyin_table[166], &pinyin_table[2], &pinyin_table[165], &pinyin_table[163], }, /* gang ai => gan gai */ + { &pinyin_table[166], &pinyin_table[4], &pinyin_table[165], &pinyin_table[165], }, /* gang an => gan gan */ + { &pinyin_table[166], &pinyin_table[5], &pinyin_table[165], &pinyin_table[166], }, /* gang ang => gan gang */ + { &pinyin_table[166], &pinyin_table[128], &pinyin_table[165], &pinyin_table[168], }, /* gang e => gan ge */ + { &pinyin_table[166], &pinyin_table[129], &pinyin_table[165], &pinyin_table[170], }, /* gang ei => gan gei */ + { &pinyin_table[166], &pinyin_table[130], &pinyin_table[165], &pinyin_table[172], }, /* gang en => gan gen */ + { &pinyin_table[166], &pinyin_table[402], &pinyin_table[165], &pinyin_table[178], }, /* gang ou => gan gou */ + { &pinyin_table[172], &pinyin_table[0], &pinyin_table[168], &pinyin_table[359], }, /* gen a => ge na */ + { &pinyin_table[172], &pinyin_table[4], &pinyin_table[168], &pinyin_table[363], }, /* gen an => ge nan */ + { &pinyin_table[172], &pinyin_table[5], &pinyin_table[168], &pinyin_table[364], }, /* gen ang => ge nang */ + { &pinyin_table[172], &pinyin_table[6], &pinyin_table[168], &pinyin_table[365], }, /* gen ao => ge nao */ + { &pinyin_table[172], &pinyin_table[128], &pinyin_table[168], &pinyin_table[366], }, /* gen e => ge ne */ + { &pinyin_table[172], &pinyin_table[129], &pinyin_table[168], &pinyin_table[368], }, /* gen ei => ge nei */ + { &pinyin_table[173], &pinyin_table[5], &pinyin_table[172], &pinyin_table[166], }, /* geng ang => gen gang */ + { &pinyin_table[173], &pinyin_table[6], &pinyin_table[172], &pinyin_table[167], }, /* geng ao => gen gao */ + { &pinyin_table[173], &pinyin_table[128], &pinyin_table[172], &pinyin_table[168], }, /* geng e => gen ge */ + { &pinyin_table[173], &pinyin_table[129], &pinyin_table[172], &pinyin_table[170], }, /* geng ei => gen gei */ + { &pinyin_table[173], &pinyin_table[130], &pinyin_table[172], &pinyin_table[172], }, /* geng en => gen gen */ + { &pinyin_table[173], &pinyin_table[402], &pinyin_table[172], &pinyin_table[178], }, /* geng ou => gen gou */ + { &pinyin_table[184], &pinyin_table[129], &pinyin_table[180], &pinyin_table[368], }, /* guan ei => gua nei */ + { &pinyin_table[185], &pinyin_table[2], &pinyin_table[184], &pinyin_table[163], }, /* guang ai => guan gai */ + { &pinyin_table[185], &pinyin_table[5], &pinyin_table[184], &pinyin_table[166], }, /* guang ang => guan gang */ + { &pinyin_table[185], &pinyin_table[6], &pinyin_table[184], &pinyin_table[167], }, /* guang ao => guan gao */ + { &pinyin_table[185], &pinyin_table[128], &pinyin_table[184], &pinyin_table[168], }, /* guang e => guan ge */ + { &pinyin_table[185], &pinyin_table[129], &pinyin_table[184], &pinyin_table[170], }, /* guang ei => guan gei */ + { &pinyin_table[185], &pinyin_table[130], &pinyin_table[184], &pinyin_table[172], }, /* guang en => guan gen */ + { &pinyin_table[189], &pinyin_table[4], &pinyin_table[179], &pinyin_table[363], }, /* gun an => gu nan */ + { &pinyin_table[189], &pinyin_table[5], &pinyin_table[179], &pinyin_table[364], }, /* gun ang => gu nang */ + { &pinyin_table[189], &pinyin_table[6], &pinyin_table[179], &pinyin_table[365], }, /* gun ao => gu nao */ + { &pinyin_table[189], &pinyin_table[128], &pinyin_table[179], &pinyin_table[366], }, /* gun e => gu ne */ + { &pinyin_table[189], &pinyin_table[129], &pinyin_table[179], &pinyin_table[368], }, /* gun ei => gu nei */ + { &pinyin_table[196], &pinyin_table[5], &pinyin_table[192], &pinyin_table[364], }, /* han ang => ha nang */ + { &pinyin_table[196], &pinyin_table[6], &pinyin_table[192], &pinyin_table[365], }, /* han ao => ha nao */ + { &pinyin_table[196], &pinyin_table[129], &pinyin_table[192], &pinyin_table[368], }, /* han ei => ha nei */ + { &pinyin_table[197], &pinyin_table[2], &pinyin_table[196], &pinyin_table[163], }, /* hang ai => han gai */ + { &pinyin_table[197], &pinyin_table[5], &pinyin_table[196], &pinyin_table[166], }, /* hang ang => han gang */ + { &pinyin_table[197], &pinyin_table[6], &pinyin_table[196], &pinyin_table[167], }, /* hang ao => han gao */ + { &pinyin_table[197], &pinyin_table[128], &pinyin_table[196], &pinyin_table[168], }, /* hang e => han ge */ + { &pinyin_table[197], &pinyin_table[129], &pinyin_table[196], &pinyin_table[170], }, /* hang ei => han gei */ + { &pinyin_table[197], &pinyin_table[130], &pinyin_table[196], &pinyin_table[172], }, /* hang en => han gen */ + { &pinyin_table[197], &pinyin_table[402], &pinyin_table[196], &pinyin_table[178], }, /* hang ou => han gou */ + { &pinyin_table[203], &pinyin_table[0], &pinyin_table[199], &pinyin_table[359], }, /* hen a => he na */ + { &pinyin_table[203], &pinyin_table[4], &pinyin_table[199], &pinyin_table[363], }, /* hen an => he nan */ + { &pinyin_table[203], &pinyin_table[5], &pinyin_table[199], &pinyin_table[364], }, /* hen ang => he nang */ + { &pinyin_table[203], &pinyin_table[6], &pinyin_table[199], &pinyin_table[365], }, /* hen ao => he nao */ + { &pinyin_table[203], &pinyin_table[129], &pinyin_table[199], &pinyin_table[368], }, /* hen ei => he nei */ + { &pinyin_table[204], &pinyin_table[2], &pinyin_table[203], &pinyin_table[163], }, /* heng ai => hen gai */ + { &pinyin_table[204], &pinyin_table[4], &pinyin_table[203], &pinyin_table[165], }, /* heng an => hen gan */ + { &pinyin_table[204], &pinyin_table[5], &pinyin_table[203], &pinyin_table[166], }, /* heng ang => hen gang */ + { &pinyin_table[204], &pinyin_table[6], &pinyin_table[203], &pinyin_table[167], }, /* heng ao => hen gao */ + { &pinyin_table[204], &pinyin_table[129], &pinyin_table[203], &pinyin_table[170], }, /* heng ei => hen gei */ + { &pinyin_table[204], &pinyin_table[130], &pinyin_table[203], &pinyin_table[172], }, /* heng en => hen gen */ + { &pinyin_table[204], &pinyin_table[402], &pinyin_table[203], &pinyin_table[178], }, /* heng ou => hen gou */ + { &pinyin_table[216], &pinyin_table[0], &pinyin_table[212], &pinyin_table[359], }, /* huan a => hua na */ + { &pinyin_table[216], &pinyin_table[4], &pinyin_table[212], &pinyin_table[363], }, /* huan an => hua nan */ + { &pinyin_table[216], &pinyin_table[5], &pinyin_table[212], &pinyin_table[364], }, /* huan ang => hua nang */ + { &pinyin_table[216], &pinyin_table[6], &pinyin_table[212], &pinyin_table[365], }, /* huan ao => hua nao */ + { &pinyin_table[216], &pinyin_table[128], &pinyin_table[212], &pinyin_table[366], }, /* huan e => hua ne */ + { &pinyin_table[216], &pinyin_table[129], &pinyin_table[212], &pinyin_table[368], }, /* huan ei => hua nei */ + { &pinyin_table[216], &pinyin_table[130], &pinyin_table[212], &pinyin_table[370], }, /* huan en => hua nen */ + { &pinyin_table[217], &pinyin_table[2], &pinyin_table[216], &pinyin_table[163], }, /* huang ai => huan gai */ + { &pinyin_table[217], &pinyin_table[5], &pinyin_table[216], &pinyin_table[166], }, /* huang ang => huan gang */ + { &pinyin_table[217], &pinyin_table[6], &pinyin_table[216], &pinyin_table[167], }, /* huang ao => huan gao */ + { &pinyin_table[217], &pinyin_table[128], &pinyin_table[216], &pinyin_table[168], }, /* huang e => huan ge */ + { &pinyin_table[217], &pinyin_table[129], &pinyin_table[216], &pinyin_table[170], }, /* huang ei => huan gei */ + { &pinyin_table[217], &pinyin_table[402], &pinyin_table[216], &pinyin_table[178], }, /* huang ou => huan gou */ + { &pinyin_table[221], &pinyin_table[4], &pinyin_table[211], &pinyin_table[363], }, /* hun an => hu nan */ + { &pinyin_table[221], &pinyin_table[5], &pinyin_table[211], &pinyin_table[364], }, /* hun ang => hu nang */ + { &pinyin_table[221], &pinyin_table[6], &pinyin_table[211], &pinyin_table[365], }, /* hun ao => hu nao */ + { &pinyin_table[221], &pinyin_table[129], &pinyin_table[211], &pinyin_table[368], }, /* hun ei => hu nei */ + { &pinyin_table[228], &pinyin_table[0], &pinyin_table[225], &pinyin_table[359], }, /* jian a => jia na */ + { &pinyin_table[228], &pinyin_table[2], &pinyin_table[225], &pinyin_table[361], }, /* jian ai => jia nai */ + { &pinyin_table[228], &pinyin_table[5], &pinyin_table[225], &pinyin_table[364], }, /* jian ang => jia nang */ + { &pinyin_table[228], &pinyin_table[128], &pinyin_table[225], &pinyin_table[366], }, /* jian e => jia ne */ + { &pinyin_table[228], &pinyin_table[129], &pinyin_table[225], &pinyin_table[368], }, /* jian ei => jia nei */ + { &pinyin_table[229], &pinyin_table[5], &pinyin_table[228], &pinyin_table[166], }, /* jiang ang => jian gang */ + { &pinyin_table[229], &pinyin_table[6], &pinyin_table[228], &pinyin_table[167], }, /* jiang ao => jian gao */ + { &pinyin_table[229], &pinyin_table[128], &pinyin_table[228], &pinyin_table[168], }, /* jiang e => jian ge */ + { &pinyin_table[229], &pinyin_table[129], &pinyin_table[228], &pinyin_table[170], }, /* jiang ei => jian gei */ + { &pinyin_table[229], &pinyin_table[402], &pinyin_table[228], &pinyin_table[178], }, /* jiang ou => jian gou */ + { &pinyin_table[231], &pinyin_table[459], &pinyin_table[224], &pinyin_table[131], }, /* jie r => ji er */ + { &pinyin_table[234], &pinyin_table[0], &pinyin_table[224], &pinyin_table[359], }, /* jin a => ji na */ + { &pinyin_table[234], &pinyin_table[4], &pinyin_table[224], &pinyin_table[363], }, /* jin an => ji nan */ + { &pinyin_table[234], &pinyin_table[5], &pinyin_table[224], &pinyin_table[364], }, /* jin ang => ji nang */ + { &pinyin_table[234], &pinyin_table[6], &pinyin_table[224], &pinyin_table[365], }, /* jin ao => ji nao */ + { &pinyin_table[234], &pinyin_table[129], &pinyin_table[224], &pinyin_table[368], }, /* jin ei => ji nei */ + { &pinyin_table[235], &pinyin_table[5], &pinyin_table[234], &pinyin_table[166], }, /* jing ang => jin gang */ + { &pinyin_table[235], &pinyin_table[6], &pinyin_table[234], &pinyin_table[167], }, /* jing ao => jin gao */ + { &pinyin_table[235], &pinyin_table[129], &pinyin_table[234], &pinyin_table[170], }, /* jing ei => jin gei */ + { &pinyin_table[235], &pinyin_table[130], &pinyin_table[234], &pinyin_table[172], }, /* jing en => jin gen */ + { &pinyin_table[235], &pinyin_table[402], &pinyin_table[234], &pinyin_table[178], }, /* jing ou => jin gou */ + { &pinyin_table[244], &pinyin_table[0], &pinyin_table[243], &pinyin_table[161], }, /* juang a => juan ga */ + { &pinyin_table[244], &pinyin_table[2], &pinyin_table[243], &pinyin_table[163], }, /* juang ai => juan gai */ + { &pinyin_table[244], &pinyin_table[4], &pinyin_table[243], &pinyin_table[165], }, /* juang an => juan gan */ + { &pinyin_table[244], &pinyin_table[5], &pinyin_table[243], &pinyin_table[166], }, /* juang ang => juan gang */ + { &pinyin_table[244], &pinyin_table[6], &pinyin_table[243], &pinyin_table[167], }, /* juang ao => juan gao */ + { &pinyin_table[244], &pinyin_table[128], &pinyin_table[243], &pinyin_table[168], }, /* juang e => juan ge */ + { &pinyin_table[244], &pinyin_table[129], &pinyin_table[243], &pinyin_table[170], }, /* juang ei => juan gei */ + { &pinyin_table[244], &pinyin_table[130], &pinyin_table[243], &pinyin_table[172], }, /* juang en => juan gen */ + { &pinyin_table[244], &pinyin_table[402], &pinyin_table[243], &pinyin_table[178], }, /* juang ou => juan gou */ + { &pinyin_table[245], &pinyin_table[459], &pinyin_table[242], &pinyin_table[131], }, /* jue r => ju er */ + { &pinyin_table[246], &pinyin_table[0], &pinyin_table[245], &pinyin_table[359], }, /* juen a => jue na */ + { &pinyin_table[246], &pinyin_table[2], &pinyin_table[245], &pinyin_table[361], }, /* juen ai => jue nai */ + { &pinyin_table[246], &pinyin_table[4], &pinyin_table[245], &pinyin_table[363], }, /* juen an => jue nan */ + { &pinyin_table[246], &pinyin_table[5], &pinyin_table[245], &pinyin_table[364], }, /* juen ang => jue nang */ + { &pinyin_table[246], &pinyin_table[6], &pinyin_table[245], &pinyin_table[365], }, /* juen ao => jue nao */ + { &pinyin_table[246], &pinyin_table[128], &pinyin_table[245], &pinyin_table[366], }, /* juen e => jue ne */ + { &pinyin_table[246], &pinyin_table[129], &pinyin_table[245], &pinyin_table[368], }, /* juen ei => jue nei */ + { &pinyin_table[246], &pinyin_table[130], &pinyin_table[245], &pinyin_table[370], }, /* juen en => jue nen */ + { &pinyin_table[246], &pinyin_table[402], &pinyin_table[245], &pinyin_table[391], }, /* juen ou => jue nou */ + { &pinyin_table[247], &pinyin_table[0], &pinyin_table[242], &pinyin_table[359], }, /* jun a => ju na */ + { &pinyin_table[247], &pinyin_table[2], &pinyin_table[242], &pinyin_table[361], }, /* jun ai => ju nai */ + { &pinyin_table[247], &pinyin_table[128], &pinyin_table[242], &pinyin_table[366], }, /* jun e => ju ne */ + { &pinyin_table[247], &pinyin_table[129], &pinyin_table[242], &pinyin_table[368], }, /* jun ei => ju nei */ + { &pinyin_table[259], &pinyin_table[129], &pinyin_table[255], &pinyin_table[368], }, /* kan ei => ka nei */ + { &pinyin_table[260], &pinyin_table[4], &pinyin_table[259], &pinyin_table[165], }, /* kang an => kan gan */ + { &pinyin_table[260], &pinyin_table[5], &pinyin_table[259], &pinyin_table[166], }, /* kang ang => kan gang */ + { &pinyin_table[260], &pinyin_table[6], &pinyin_table[259], &pinyin_table[167], }, /* kang ao => kan gao */ + { &pinyin_table[260], &pinyin_table[128], &pinyin_table[259], &pinyin_table[168], }, /* kang e => kan ge */ + { &pinyin_table[260], &pinyin_table[129], &pinyin_table[259], &pinyin_table[170], }, /* kang ei => kan gei */ + { &pinyin_table[260], &pinyin_table[130], &pinyin_table[259], &pinyin_table[172], }, /* kang en => kan gen */ + { &pinyin_table[260], &pinyin_table[402], &pinyin_table[259], &pinyin_table[178], }, /* kang ou => kan gou */ + { &pinyin_table[266], &pinyin_table[0], &pinyin_table[262], &pinyin_table[359], }, /* ken a => ke na */ + { &pinyin_table[266], &pinyin_table[2], &pinyin_table[262], &pinyin_table[361], }, /* ken ai => ke nai */ + { &pinyin_table[266], &pinyin_table[4], &pinyin_table[262], &pinyin_table[363], }, /* ken an => ke nan */ + { &pinyin_table[266], &pinyin_table[5], &pinyin_table[262], &pinyin_table[364], }, /* ken ang => ke nang */ + { &pinyin_table[266], &pinyin_table[6], &pinyin_table[262], &pinyin_table[365], }, /* ken ao => ke nao */ + { &pinyin_table[266], &pinyin_table[128], &pinyin_table[262], &pinyin_table[366], }, /* ken e => ke ne */ + { &pinyin_table[266], &pinyin_table[129], &pinyin_table[262], &pinyin_table[368], }, /* ken ei => ke nei */ + { &pinyin_table[267], &pinyin_table[2], &pinyin_table[266], &pinyin_table[163], }, /* keng ai => ken gai */ + { &pinyin_table[267], &pinyin_table[4], &pinyin_table[266], &pinyin_table[165], }, /* keng an => ken gan */ + { &pinyin_table[267], &pinyin_table[5], &pinyin_table[266], &pinyin_table[166], }, /* keng ang => ken gang */ + { &pinyin_table[267], &pinyin_table[6], &pinyin_table[266], &pinyin_table[167], }, /* keng ao => ken gao */ + { &pinyin_table[267], &pinyin_table[128], &pinyin_table[266], &pinyin_table[168], }, /* keng e => ken ge */ + { &pinyin_table[267], &pinyin_table[129], &pinyin_table[266], &pinyin_table[170], }, /* keng ei => ken gei */ + { &pinyin_table[267], &pinyin_table[130], &pinyin_table[266], &pinyin_table[172], }, /* keng en => ken gen */ + { &pinyin_table[267], &pinyin_table[402], &pinyin_table[266], &pinyin_table[178], }, /* keng ou => ken gou */ + { &pinyin_table[278], &pinyin_table[0], &pinyin_table[274], &pinyin_table[359], }, /* kuan a => kua na */ + { &pinyin_table[278], &pinyin_table[129], &pinyin_table[274], &pinyin_table[368], }, /* kuan ei => kua nei */ + { &pinyin_table[279], &pinyin_table[5], &pinyin_table[278], &pinyin_table[166], }, /* kuang ang => kuan gang */ + { &pinyin_table[279], &pinyin_table[128], &pinyin_table[278], &pinyin_table[168], }, /* kuang e => kuan ge */ + { &pinyin_table[279], &pinyin_table[129], &pinyin_table[278], &pinyin_table[170], }, /* kuang ei => kuan gei */ + { &pinyin_table[279], &pinyin_table[130], &pinyin_table[278], &pinyin_table[172], }, /* kuang en => kuan gen */ + { &pinyin_table[283], &pinyin_table[4], &pinyin_table[273], &pinyin_table[363], }, /* kun an => ku nan */ + { &pinyin_table[283], &pinyin_table[5], &pinyin_table[273], &pinyin_table[364], }, /* kun ang => ku nang */ + { &pinyin_table[283], &pinyin_table[6], &pinyin_table[273], &pinyin_table[365], }, /* kun ao => ku nao */ + { &pinyin_table[283], &pinyin_table[128], &pinyin_table[273], &pinyin_table[366], }, /* kun e => ku ne */ + { &pinyin_table[283], &pinyin_table[129], &pinyin_table[273], &pinyin_table[368], }, /* kun ei => ku nei */ + { &pinyin_table[290], &pinyin_table[0], &pinyin_table[286], &pinyin_table[359], }, /* lan a => la na */ + { &pinyin_table[290], &pinyin_table[4], &pinyin_table[286], &pinyin_table[363], }, /* lan an => la nan */ + { &pinyin_table[290], &pinyin_table[5], &pinyin_table[286], &pinyin_table[364], }, /* lan ang => la nang */ + { &pinyin_table[290], &pinyin_table[6], &pinyin_table[286], &pinyin_table[365], }, /* lan ao => la nao */ + { &pinyin_table[290], &pinyin_table[128], &pinyin_table[286], &pinyin_table[366], }, /* lan e => la ne */ + { &pinyin_table[290], &pinyin_table[129], &pinyin_table[286], &pinyin_table[368], }, /* lan ei => la nei */ + { &pinyin_table[291], &pinyin_table[4], &pinyin_table[290], &pinyin_table[165], }, /* lang an => lan gan */ + { &pinyin_table[291], &pinyin_table[5], &pinyin_table[290], &pinyin_table[166], }, /* lang ang => lan gang */ + { &pinyin_table[291], &pinyin_table[6], &pinyin_table[290], &pinyin_table[167], }, /* lang ao => lan gao */ + { &pinyin_table[291], &pinyin_table[128], &pinyin_table[290], &pinyin_table[168], }, /* lang e => lan ge */ + { &pinyin_table[291], &pinyin_table[129], &pinyin_table[290], &pinyin_table[170], }, /* lang ei => lan gei */ + { &pinyin_table[291], &pinyin_table[130], &pinyin_table[290], &pinyin_table[172], }, /* lang en => lan gen */ + { &pinyin_table[291], &pinyin_table[402], &pinyin_table[290], &pinyin_table[178], }, /* lang ou => lan gou */ + { &pinyin_table[297], &pinyin_table[0], &pinyin_table[293], &pinyin_table[359], }, /* len a => le na */ + { &pinyin_table[297], &pinyin_table[2], &pinyin_table[293], &pinyin_table[361], }, /* len ai => le nai */ + { &pinyin_table[297], &pinyin_table[4], &pinyin_table[293], &pinyin_table[363], }, /* len an => le nan */ + { &pinyin_table[297], &pinyin_table[5], &pinyin_table[293], &pinyin_table[364], }, /* len ang => le nang */ + { &pinyin_table[297], &pinyin_table[6], &pinyin_table[293], &pinyin_table[365], }, /* len ao => le nao */ + { &pinyin_table[297], &pinyin_table[128], &pinyin_table[293], &pinyin_table[366], }, /* len e => le ne */ + { &pinyin_table[297], &pinyin_table[129], &pinyin_table[293], &pinyin_table[368], }, /* len ei => le nei */ + { &pinyin_table[297], &pinyin_table[130], &pinyin_table[293], &pinyin_table[370], }, /* len en => le nen */ + { &pinyin_table[297], &pinyin_table[402], &pinyin_table[293], &pinyin_table[391], }, /* len ou => le nou */ + { &pinyin_table[303], &pinyin_table[129], &pinyin_table[300], &pinyin_table[368], }, /* lian ei => lia nei */ + { &pinyin_table[304], &pinyin_table[5], &pinyin_table[303], &pinyin_table[166], }, /* liang ang => lian gang */ + { &pinyin_table[304], &pinyin_table[6], &pinyin_table[303], &pinyin_table[167], }, /* liang ao => lian gao */ + { &pinyin_table[304], &pinyin_table[128], &pinyin_table[303], &pinyin_table[168], }, /* liang e => lian ge */ + { &pinyin_table[304], &pinyin_table[129], &pinyin_table[303], &pinyin_table[170], }, /* liang ei => lian gei */ + { &pinyin_table[304], &pinyin_table[130], &pinyin_table[303], &pinyin_table[172], }, /* liang en => lian gen */ + { &pinyin_table[304], &pinyin_table[402], &pinyin_table[303], &pinyin_table[178], }, /* liang ou => lian gou */ + { &pinyin_table[306], &pinyin_table[459], &pinyin_table[299], &pinyin_table[131], }, /* lie r => li er */ + { &pinyin_table[309], &pinyin_table[0], &pinyin_table[299], &pinyin_table[359], }, /* lin a => li na */ + { &pinyin_table[309], &pinyin_table[4], &pinyin_table[299], &pinyin_table[363], }, /* lin an => li nan */ + { &pinyin_table[309], &pinyin_table[5], &pinyin_table[299], &pinyin_table[364], }, /* lin ang => li nang */ + { &pinyin_table[309], &pinyin_table[6], &pinyin_table[299], &pinyin_table[365], }, /* lin ao => li nao */ + { &pinyin_table[309], &pinyin_table[128], &pinyin_table[299], &pinyin_table[366], }, /* lin e => li ne */ + { &pinyin_table[309], &pinyin_table[129], &pinyin_table[299], &pinyin_table[368], }, /* lin ei => li nei */ + { &pinyin_table[310], &pinyin_table[5], &pinyin_table[309], &pinyin_table[166], }, /* ling ang => lin gang */ + { &pinyin_table[310], &pinyin_table[6], &pinyin_table[309], &pinyin_table[167], }, /* ling ao => lin gao */ + { &pinyin_table[310], &pinyin_table[128], &pinyin_table[309], &pinyin_table[168], }, /* ling e => lin ge */ + { &pinyin_table[310], &pinyin_table[129], &pinyin_table[309], &pinyin_table[170], }, /* ling ei => lin gei */ + { &pinyin_table[310], &pinyin_table[130], &pinyin_table[309], &pinyin_table[172], }, /* ling en => lin gen */ + { &pinyin_table[310], &pinyin_table[402], &pinyin_table[309], &pinyin_table[178], }, /* ling ou => lin gou */ + { &pinyin_table[316], &pinyin_table[0], &pinyin_table[313], &pinyin_table[359], }, /* lon a => lo na */ + { &pinyin_table[316], &pinyin_table[2], &pinyin_table[313], &pinyin_table[361], }, /* lon ai => lo nai */ + { &pinyin_table[316], &pinyin_table[4], &pinyin_table[313], &pinyin_table[363], }, /* lon an => lo nan */ + { &pinyin_table[316], &pinyin_table[5], &pinyin_table[313], &pinyin_table[364], }, /* lon ang => lo nang */ + { &pinyin_table[316], &pinyin_table[6], &pinyin_table[313], &pinyin_table[365], }, /* lon ao => lo nao */ + { &pinyin_table[316], &pinyin_table[128], &pinyin_table[313], &pinyin_table[366], }, /* lon e => lo ne */ + { &pinyin_table[316], &pinyin_table[129], &pinyin_table[313], &pinyin_table[368], }, /* lon ei => lo nei */ + { &pinyin_table[316], &pinyin_table[130], &pinyin_table[313], &pinyin_table[370], }, /* lon en => lo nen */ + { &pinyin_table[316], &pinyin_table[402], &pinyin_table[313], &pinyin_table[391], }, /* lon ou => lo nou */ + { &pinyin_table[321], &pinyin_table[0], &pinyin_table[320], &pinyin_table[161], }, /* luang a => luan ga */ + { &pinyin_table[321], &pinyin_table[2], &pinyin_table[320], &pinyin_table[163], }, /* luang ai => luan gai */ + { &pinyin_table[321], &pinyin_table[4], &pinyin_table[320], &pinyin_table[165], }, /* luang an => luan gan */ + { &pinyin_table[321], &pinyin_table[5], &pinyin_table[320], &pinyin_table[166], }, /* luang ang => luan gang */ + { &pinyin_table[321], &pinyin_table[6], &pinyin_table[320], &pinyin_table[167], }, /* luang ao => luan gao */ + { &pinyin_table[321], &pinyin_table[128], &pinyin_table[320], &pinyin_table[168], }, /* luang e => luan ge */ + { &pinyin_table[321], &pinyin_table[129], &pinyin_table[320], &pinyin_table[170], }, /* luang ei => luan gei */ + { &pinyin_table[321], &pinyin_table[130], &pinyin_table[320], &pinyin_table[172], }, /* luang en => luan gen */ + { &pinyin_table[321], &pinyin_table[402], &pinyin_table[320], &pinyin_table[178], }, /* luang ou => luan gou */ + { &pinyin_table[322], &pinyin_table[459], &pinyin_table[319], &pinyin_table[131], }, /* lue r => lu er */ + { &pinyin_table[326], &pinyin_table[0], &pinyin_table[319], &pinyin_table[359], }, /* lun a => lu na */ + { &pinyin_table[326], &pinyin_table[2], &pinyin_table[319], &pinyin_table[361], }, /* lun ai => lu nai */ + { &pinyin_table[326], &pinyin_table[4], &pinyin_table[319], &pinyin_table[363], }, /* lun an => lu nan */ + { &pinyin_table[326], &pinyin_table[5], &pinyin_table[319], &pinyin_table[364], }, /* lun ang => lu nang */ + { &pinyin_table[326], &pinyin_table[6], &pinyin_table[319], &pinyin_table[365], }, /* lun ao => lu nao */ + { &pinyin_table[326], &pinyin_table[128], &pinyin_table[319], &pinyin_table[366], }, /* lun e => lu ne */ + { &pinyin_table[326], &pinyin_table[129], &pinyin_table[319], &pinyin_table[368], }, /* lun ei => lu nei */ + { &pinyin_table[329], &pinyin_table[459], &pinyin_table[328], &pinyin_table[131], }, /* lve r => lv er */ + { &pinyin_table[335], &pinyin_table[2], &pinyin_table[331], &pinyin_table[361], }, /* man ai => ma nai */ + { &pinyin_table[335], &pinyin_table[4], &pinyin_table[331], &pinyin_table[363], }, /* man an => ma nan */ + { &pinyin_table[335], &pinyin_table[5], &pinyin_table[331], &pinyin_table[364], }, /* man ang => ma nang */ + { &pinyin_table[335], &pinyin_table[6], &pinyin_table[331], &pinyin_table[365], }, /* man ao => ma nao */ + { &pinyin_table[335], &pinyin_table[128], &pinyin_table[331], &pinyin_table[366], }, /* man e => ma ne */ + { &pinyin_table[335], &pinyin_table[129], &pinyin_table[331], &pinyin_table[368], }, /* man ei => ma nei */ + { &pinyin_table[336], &pinyin_table[2], &pinyin_table[335], &pinyin_table[163], }, /* mang ai => man gai */ + { &pinyin_table[336], &pinyin_table[4], &pinyin_table[335], &pinyin_table[165], }, /* mang an => man gan */ + { &pinyin_table[336], &pinyin_table[5], &pinyin_table[335], &pinyin_table[166], }, /* mang ang => man gang */ + { &pinyin_table[336], &pinyin_table[6], &pinyin_table[335], &pinyin_table[167], }, /* mang ao => man gao */ + { &pinyin_table[336], &pinyin_table[128], &pinyin_table[335], &pinyin_table[168], }, /* mang e => man ge */ + { &pinyin_table[336], &pinyin_table[129], &pinyin_table[335], &pinyin_table[170], }, /* mang ei => man gei */ + { &pinyin_table[336], &pinyin_table[130], &pinyin_table[335], &pinyin_table[172], }, /* mang en => man gen */ + { &pinyin_table[336], &pinyin_table[402], &pinyin_table[335], &pinyin_table[178], }, /* mang ou => man gou */ + { &pinyin_table[342], &pinyin_table[5], &pinyin_table[338], &pinyin_table[364], }, /* men ang => me nang */ + { &pinyin_table[342], &pinyin_table[6], &pinyin_table[338], &pinyin_table[365], }, /* men ao => me nao */ + { &pinyin_table[342], &pinyin_table[128], &pinyin_table[338], &pinyin_table[366], }, /* men e => me ne */ + { &pinyin_table[342], &pinyin_table[129], &pinyin_table[338], &pinyin_table[368], }, /* men ei => me nei */ + { &pinyin_table[343], &pinyin_table[2], &pinyin_table[342], &pinyin_table[163], }, /* meng ai => men gai */ + { &pinyin_table[343], &pinyin_table[5], &pinyin_table[342], &pinyin_table[166], }, /* meng ang => men gang */ + { &pinyin_table[343], &pinyin_table[6], &pinyin_table[342], &pinyin_table[167], }, /* meng ao => men gao */ + { &pinyin_table[343], &pinyin_table[128], &pinyin_table[342], &pinyin_table[168], }, /* meng e => men ge */ + { &pinyin_table[343], &pinyin_table[129], &pinyin_table[342], &pinyin_table[170], }, /* meng ei => men gei */ + { &pinyin_table[343], &pinyin_table[402], &pinyin_table[342], &pinyin_table[178], }, /* meng ou => men gou */ + { &pinyin_table[346], &pinyin_table[0], &pinyin_table[345], &pinyin_table[161], }, /* miang a => mian ga */ + { &pinyin_table[346], &pinyin_table[2], &pinyin_table[345], &pinyin_table[163], }, /* miang ai => mian gai */ + { &pinyin_table[346], &pinyin_table[4], &pinyin_table[345], &pinyin_table[165], }, /* miang an => mian gan */ + { &pinyin_table[346], &pinyin_table[5], &pinyin_table[345], &pinyin_table[166], }, /* miang ang => mian gang */ + { &pinyin_table[346], &pinyin_table[6], &pinyin_table[345], &pinyin_table[167], }, /* miang ao => mian gao */ + { &pinyin_table[346], &pinyin_table[128], &pinyin_table[345], &pinyin_table[168], }, /* miang e => mian ge */ + { &pinyin_table[346], &pinyin_table[129], &pinyin_table[345], &pinyin_table[170], }, /* miang ei => mian gei */ + { &pinyin_table[346], &pinyin_table[130], &pinyin_table[345], &pinyin_table[172], }, /* miang en => mian gen */ + { &pinyin_table[346], &pinyin_table[402], &pinyin_table[345], &pinyin_table[178], }, /* miang ou => mian gou */ + { &pinyin_table[348], &pinyin_table[459], &pinyin_table[344], &pinyin_table[131], }, /* mie r => mi er */ + { &pinyin_table[351], &pinyin_table[0], &pinyin_table[344], &pinyin_table[359], }, /* min a => mi na */ + { &pinyin_table[351], &pinyin_table[128], &pinyin_table[344], &pinyin_table[366], }, /* min e => mi ne */ + { &pinyin_table[351], &pinyin_table[129], &pinyin_table[344], &pinyin_table[368], }, /* min ei => mi nei */ + { &pinyin_table[352], &pinyin_table[4], &pinyin_table[351], &pinyin_table[165], }, /* ming an => min gan */ + { &pinyin_table[352], &pinyin_table[5], &pinyin_table[351], &pinyin_table[166], }, /* ming ang => min gang */ + { &pinyin_table[352], &pinyin_table[6], &pinyin_table[351], &pinyin_table[167], }, /* ming ao => min gao */ + { &pinyin_table[352], &pinyin_table[128], &pinyin_table[351], &pinyin_table[168], }, /* ming e => min ge */ + { &pinyin_table[352], &pinyin_table[129], &pinyin_table[351], &pinyin_table[170], }, /* ming ei => min gei */ + { &pinyin_table[352], &pinyin_table[402], &pinyin_table[351], &pinyin_table[178], }, /* ming ou => min gou */ + { &pinyin_table[363], &pinyin_table[0], &pinyin_table[359], &pinyin_table[359], }, /* nan a => na na */ + { &pinyin_table[363], &pinyin_table[5], &pinyin_table[359], &pinyin_table[364], }, /* nan ang => na nang */ + { &pinyin_table[363], &pinyin_table[128], &pinyin_table[359], &pinyin_table[366], }, /* nan e => na ne */ + { &pinyin_table[363], &pinyin_table[129], &pinyin_table[359], &pinyin_table[368], }, /* nan ei => na nei */ + { &pinyin_table[364], &pinyin_table[0], &pinyin_table[363], &pinyin_table[161], }, /* nang a => nan ga */ + { &pinyin_table[364], &pinyin_table[2], &pinyin_table[363], &pinyin_table[163], }, /* nang ai => nan gai */ + { &pinyin_table[364], &pinyin_table[4], &pinyin_table[363], &pinyin_table[165], }, /* nang an => nan gan */ + { &pinyin_table[364], &pinyin_table[5], &pinyin_table[363], &pinyin_table[166], }, /* nang ang => nan gang */ + { &pinyin_table[364], &pinyin_table[6], &pinyin_table[363], &pinyin_table[167], }, /* nang ao => nan gao */ + { &pinyin_table[364], &pinyin_table[128], &pinyin_table[363], &pinyin_table[168], }, /* nang e => nan ge */ + { &pinyin_table[364], &pinyin_table[129], &pinyin_table[363], &pinyin_table[170], }, /* nang ei => nan gei */ + { &pinyin_table[364], &pinyin_table[130], &pinyin_table[363], &pinyin_table[172], }, /* nang en => nan gen */ + { &pinyin_table[364], &pinyin_table[402], &pinyin_table[363], &pinyin_table[178], }, /* nang ou => nan gou */ + { &pinyin_table[370], &pinyin_table[0], &pinyin_table[366], &pinyin_table[359], }, /* nen a => ne na */ + { &pinyin_table[370], &pinyin_table[2], &pinyin_table[366], &pinyin_table[361], }, /* nen ai => ne nai */ + { &pinyin_table[370], &pinyin_table[4], &pinyin_table[366], &pinyin_table[363], }, /* nen an => ne nan */ + { &pinyin_table[370], &pinyin_table[5], &pinyin_table[366], &pinyin_table[364], }, /* nen ang => ne nang */ + { &pinyin_table[370], &pinyin_table[6], &pinyin_table[366], &pinyin_table[365], }, /* nen ao => ne nao */ + { &pinyin_table[370], &pinyin_table[128], &pinyin_table[366], &pinyin_table[366], }, /* nen e => ne ne */ + { &pinyin_table[370], &pinyin_table[129], &pinyin_table[366], &pinyin_table[368], }, /* nen ei => ne nei */ + { &pinyin_table[370], &pinyin_table[130], &pinyin_table[366], &pinyin_table[370], }, /* nen en => ne nen */ + { &pinyin_table[371], &pinyin_table[128], &pinyin_table[370], &pinyin_table[168], }, /* neng e => nen ge */ + { &pinyin_table[371], &pinyin_table[129], &pinyin_table[370], &pinyin_table[170], }, /* neng ei => nen gei */ + { &pinyin_table[377], &pinyin_table[2], &pinyin_table[376], &pinyin_table[163], }, /* niang ai => nian gai */ + { &pinyin_table[377], &pinyin_table[4], &pinyin_table[376], &pinyin_table[165], }, /* niang an => nian gan */ + { &pinyin_table[377], &pinyin_table[5], &pinyin_table[376], &pinyin_table[166], }, /* niang ang => nian gang */ + { &pinyin_table[377], &pinyin_table[6], &pinyin_table[376], &pinyin_table[167], }, /* niang ao => nian gao */ + { &pinyin_table[377], &pinyin_table[128], &pinyin_table[376], &pinyin_table[168], }, /* niang e => nian ge */ + { &pinyin_table[377], &pinyin_table[129], &pinyin_table[376], &pinyin_table[170], }, /* niang ei => nian gei */ + { &pinyin_table[377], &pinyin_table[130], &pinyin_table[376], &pinyin_table[172], }, /* niang en => nian gen */ + { &pinyin_table[377], &pinyin_table[402], &pinyin_table[376], &pinyin_table[178], }, /* niang ou => nian gou */ + { &pinyin_table[379], &pinyin_table[459], &pinyin_table[372], &pinyin_table[131], }, /* nie r => ni er */ + { &pinyin_table[382], &pinyin_table[0], &pinyin_table[372], &pinyin_table[359], }, /* nin a => ni na */ + { &pinyin_table[382], &pinyin_table[4], &pinyin_table[372], &pinyin_table[363], }, /* nin an => ni nan */ + { &pinyin_table[382], &pinyin_table[5], &pinyin_table[372], &pinyin_table[364], }, /* nin ang => ni nang */ + { &pinyin_table[382], &pinyin_table[6], &pinyin_table[372], &pinyin_table[365], }, /* nin ao => ni nao */ + { &pinyin_table[382], &pinyin_table[128], &pinyin_table[372], &pinyin_table[366], }, /* nin e => ni ne */ + { &pinyin_table[382], &pinyin_table[129], &pinyin_table[372], &pinyin_table[368], }, /* nin ei => ni nei */ + { &pinyin_table[383], &pinyin_table[2], &pinyin_table[382], &pinyin_table[163], }, /* ning ai => nin gai */ + { &pinyin_table[383], &pinyin_table[5], &pinyin_table[382], &pinyin_table[166], }, /* ning ang => nin gang */ + { &pinyin_table[383], &pinyin_table[6], &pinyin_table[382], &pinyin_table[167], }, /* ning ao => nin gao */ + { &pinyin_table[383], &pinyin_table[129], &pinyin_table[382], &pinyin_table[170], }, /* ning ei => nin gei */ + { &pinyin_table[383], &pinyin_table[130], &pinyin_table[382], &pinyin_table[172], }, /* ning en => nin gen */ + { &pinyin_table[383], &pinyin_table[402], &pinyin_table[382], &pinyin_table[178], }, /* ning ou => nin gou */ + { &pinyin_table[394], &pinyin_table[0], &pinyin_table[393], &pinyin_table[161], }, /* nuang a => nuan ga */ + { &pinyin_table[394], &pinyin_table[2], &pinyin_table[393], &pinyin_table[163], }, /* nuang ai => nuan gai */ + { &pinyin_table[394], &pinyin_table[4], &pinyin_table[393], &pinyin_table[165], }, /* nuang an => nuan gan */ + { &pinyin_table[394], &pinyin_table[5], &pinyin_table[393], &pinyin_table[166], }, /* nuang ang => nuan gang */ + { &pinyin_table[394], &pinyin_table[6], &pinyin_table[393], &pinyin_table[167], }, /* nuang ao => nuan gao */ + { &pinyin_table[394], &pinyin_table[128], &pinyin_table[393], &pinyin_table[168], }, /* nuang e => nuan ge */ + { &pinyin_table[394], &pinyin_table[129], &pinyin_table[393], &pinyin_table[170], }, /* nuang ei => nuan gei */ + { &pinyin_table[394], &pinyin_table[130], &pinyin_table[393], &pinyin_table[172], }, /* nuang en => nuan gen */ + { &pinyin_table[394], &pinyin_table[402], &pinyin_table[393], &pinyin_table[178], }, /* nuang ou => nuan gou */ + { &pinyin_table[395], &pinyin_table[459], &pinyin_table[392], &pinyin_table[131], }, /* nue r => nu er */ + { &pinyin_table[397], &pinyin_table[0], &pinyin_table[392], &pinyin_table[359], }, /* nun a => nu na */ + { &pinyin_table[397], &pinyin_table[2], &pinyin_table[392], &pinyin_table[361], }, /* nun ai => nu nai */ + { &pinyin_table[397], &pinyin_table[4], &pinyin_table[392], &pinyin_table[363], }, /* nun an => nu nan */ + { &pinyin_table[397], &pinyin_table[5], &pinyin_table[392], &pinyin_table[364], }, /* nun ang => nu nang */ + { &pinyin_table[397], &pinyin_table[6], &pinyin_table[392], &pinyin_table[365], }, /* nun ao => nu nao */ + { &pinyin_table[397], &pinyin_table[128], &pinyin_table[392], &pinyin_table[366], }, /* nun e => nu ne */ + { &pinyin_table[397], &pinyin_table[129], &pinyin_table[392], &pinyin_table[368], }, /* nun ei => nu nei */ + { &pinyin_table[397], &pinyin_table[130], &pinyin_table[392], &pinyin_table[370], }, /* nun en => nu nen */ + { &pinyin_table[397], &pinyin_table[402], &pinyin_table[392], &pinyin_table[391], }, /* nun ou => nu nou */ + { &pinyin_table[400], &pinyin_table[459], &pinyin_table[399], &pinyin_table[131], }, /* nve r => nv er */ + { &pinyin_table[408], &pinyin_table[0], &pinyin_table[404], &pinyin_table[359], }, /* pan a => pa na */ + { &pinyin_table[408], &pinyin_table[5], &pinyin_table[404], &pinyin_table[364], }, /* pan ang => pa nang */ + { &pinyin_table[408], &pinyin_table[6], &pinyin_table[404], &pinyin_table[365], }, /* pan ao => pa nao */ + { &pinyin_table[408], &pinyin_table[128], &pinyin_table[404], &pinyin_table[366], }, /* pan e => pa ne */ + { &pinyin_table[408], &pinyin_table[129], &pinyin_table[404], &pinyin_table[368], }, /* pan ei => pa nei */ + { &pinyin_table[409], &pinyin_table[5], &pinyin_table[408], &pinyin_table[166], }, /* pang ang => pan gang */ + { &pinyin_table[409], &pinyin_table[6], &pinyin_table[408], &pinyin_table[167], }, /* pang ao => pan gao */ + { &pinyin_table[409], &pinyin_table[128], &pinyin_table[408], &pinyin_table[168], }, /* pang e => pan ge */ + { &pinyin_table[409], &pinyin_table[129], &pinyin_table[408], &pinyin_table[170], }, /* pang ei => pan gei */ + { &pinyin_table[409], &pinyin_table[130], &pinyin_table[408], &pinyin_table[172], }, /* pang en => pan gen */ + { &pinyin_table[409], &pinyin_table[402], &pinyin_table[408], &pinyin_table[178], }, /* pang ou => pan gou */ + { &pinyin_table[415], &pinyin_table[5], &pinyin_table[414], &pinyin_table[166], }, /* peng ang => pen gang */ + { &pinyin_table[415], &pinyin_table[6], &pinyin_table[414], &pinyin_table[167], }, /* peng ao => pen gao */ + { &pinyin_table[415], &pinyin_table[128], &pinyin_table[414], &pinyin_table[168], }, /* peng e => pen ge */ + { &pinyin_table[415], &pinyin_table[129], &pinyin_table[414], &pinyin_table[170], }, /* peng ei => pen gei */ + { &pinyin_table[418], &pinyin_table[0], &pinyin_table[417], &pinyin_table[161], }, /* piang a => pian ga */ + { &pinyin_table[418], &pinyin_table[2], &pinyin_table[417], &pinyin_table[163], }, /* piang ai => pian gai */ + { &pinyin_table[418], &pinyin_table[4], &pinyin_table[417], &pinyin_table[165], }, /* piang an => pian gan */ + { &pinyin_table[418], &pinyin_table[5], &pinyin_table[417], &pinyin_table[166], }, /* piang ang => pian gang */ + { &pinyin_table[418], &pinyin_table[6], &pinyin_table[417], &pinyin_table[167], }, /* piang ao => pian gao */ + { &pinyin_table[418], &pinyin_table[128], &pinyin_table[417], &pinyin_table[168], }, /* piang e => pian ge */ + { &pinyin_table[418], &pinyin_table[129], &pinyin_table[417], &pinyin_table[170], }, /* piang ei => pian gei */ + { &pinyin_table[418], &pinyin_table[130], &pinyin_table[417], &pinyin_table[172], }, /* piang en => pian gen */ + { &pinyin_table[418], &pinyin_table[402], &pinyin_table[417], &pinyin_table[178], }, /* piang ou => pian gou */ + { &pinyin_table[420], &pinyin_table[459], &pinyin_table[416], &pinyin_table[131], }, /* pie r => pi er */ + { &pinyin_table[423], &pinyin_table[0], &pinyin_table[416], &pinyin_table[359], }, /* pin a => pi na */ + { &pinyin_table[423], &pinyin_table[5], &pinyin_table[416], &pinyin_table[364], }, /* pin ang => pi nang */ + { &pinyin_table[423], &pinyin_table[6], &pinyin_table[416], &pinyin_table[365], }, /* pin ao => pi nao */ + { &pinyin_table[423], &pinyin_table[128], &pinyin_table[416], &pinyin_table[366], }, /* pin e => pi ne */ + { &pinyin_table[423], &pinyin_table[129], &pinyin_table[416], &pinyin_table[368], }, /* pin ei => pi nei */ + { &pinyin_table[424], &pinyin_table[5], &pinyin_table[423], &pinyin_table[166], }, /* ping ang => pin gang */ + { &pinyin_table[424], &pinyin_table[6], &pinyin_table[423], &pinyin_table[167], }, /* ping ao => pin gao */ + { &pinyin_table[424], &pinyin_table[128], &pinyin_table[423], &pinyin_table[168], }, /* ping e => pin ge */ + { &pinyin_table[424], &pinyin_table[129], &pinyin_table[423], &pinyin_table[170], }, /* ping ei => pin gei */ + { &pinyin_table[424], &pinyin_table[130], &pinyin_table[423], &pinyin_table[172], }, /* ping en => pin gen */ + { &pinyin_table[424], &pinyin_table[402], &pinyin_table[423], &pinyin_table[178], }, /* ping ou => pin gou */ + { &pinyin_table[433], &pinyin_table[129], &pinyin_table[430], &pinyin_table[368], }, /* qian ei => qia nei */ + { &pinyin_table[434], &pinyin_table[2], &pinyin_table[433], &pinyin_table[163], }, /* qiang ai => qian gai */ + { &pinyin_table[434], &pinyin_table[4], &pinyin_table[433], &pinyin_table[165], }, /* qiang an => qian gan */ + { &pinyin_table[434], &pinyin_table[5], &pinyin_table[433], &pinyin_table[166], }, /* qiang ang => qian gang */ + { &pinyin_table[434], &pinyin_table[6], &pinyin_table[433], &pinyin_table[167], }, /* qiang ao => qian gao */ + { &pinyin_table[434], &pinyin_table[128], &pinyin_table[433], &pinyin_table[168], }, /* qiang e => qian ge */ + { &pinyin_table[434], &pinyin_table[129], &pinyin_table[433], &pinyin_table[170], }, /* qiang ei => qian gei */ + { &pinyin_table[434], &pinyin_table[130], &pinyin_table[433], &pinyin_table[172], }, /* qiang en => qian gen */ + { &pinyin_table[434], &pinyin_table[402], &pinyin_table[433], &pinyin_table[178], }, /* qiang ou => qian gou */ + { &pinyin_table[436], &pinyin_table[459], &pinyin_table[429], &pinyin_table[131], }, /* qie r => qi er */ + { &pinyin_table[439], &pinyin_table[0], &pinyin_table[429], &pinyin_table[359], }, /* qin a => qi na */ + { &pinyin_table[439], &pinyin_table[5], &pinyin_table[429], &pinyin_table[364], }, /* qin ang => qi nang */ + { &pinyin_table[439], &pinyin_table[6], &pinyin_table[429], &pinyin_table[365], }, /* qin ao => qi nao */ + { &pinyin_table[439], &pinyin_table[128], &pinyin_table[429], &pinyin_table[366], }, /* qin e => qi ne */ + { &pinyin_table[439], &pinyin_table[129], &pinyin_table[429], &pinyin_table[368], }, /* qin ei => qi nei */ + { &pinyin_table[440], &pinyin_table[5], &pinyin_table[439], &pinyin_table[166], }, /* qing ang => qin gang */ + { &pinyin_table[440], &pinyin_table[6], &pinyin_table[439], &pinyin_table[167], }, /* qing ao => qin gao */ + { &pinyin_table[440], &pinyin_table[128], &pinyin_table[439], &pinyin_table[168], }, /* qing e => qin ge */ + { &pinyin_table[440], &pinyin_table[129], &pinyin_table[439], &pinyin_table[170], }, /* qing ei => qin gei */ + { &pinyin_table[440], &pinyin_table[130], &pinyin_table[439], &pinyin_table[172], }, /* qing en => qin gen */ + { &pinyin_table[440], &pinyin_table[402], &pinyin_table[439], &pinyin_table[178], }, /* qing ou => qin gou */ + { &pinyin_table[449], &pinyin_table[0], &pinyin_table[448], &pinyin_table[161], }, /* quang a => quan ga */ + { &pinyin_table[449], &pinyin_table[2], &pinyin_table[448], &pinyin_table[163], }, /* quang ai => quan gai */ + { &pinyin_table[449], &pinyin_table[4], &pinyin_table[448], &pinyin_table[165], }, /* quang an => quan gan */ + { &pinyin_table[449], &pinyin_table[5], &pinyin_table[448], &pinyin_table[166], }, /* quang ang => quan gang */ + { &pinyin_table[449], &pinyin_table[6], &pinyin_table[448], &pinyin_table[167], }, /* quang ao => quan gao */ + { &pinyin_table[449], &pinyin_table[128], &pinyin_table[448], &pinyin_table[168], }, /* quang e => quan ge */ + { &pinyin_table[449], &pinyin_table[129], &pinyin_table[448], &pinyin_table[170], }, /* quang ei => quan gei */ + { &pinyin_table[449], &pinyin_table[130], &pinyin_table[448], &pinyin_table[172], }, /* quang en => quan gen */ + { &pinyin_table[449], &pinyin_table[402], &pinyin_table[448], &pinyin_table[178], }, /* quang ou => quan gou */ + { &pinyin_table[450], &pinyin_table[459], &pinyin_table[447], &pinyin_table[131], }, /* que r => qu er */ + { &pinyin_table[451], &pinyin_table[0], &pinyin_table[450], &pinyin_table[359], }, /* quen a => que na */ + { &pinyin_table[451], &pinyin_table[2], &pinyin_table[450], &pinyin_table[361], }, /* quen ai => que nai */ + { &pinyin_table[451], &pinyin_table[4], &pinyin_table[450], &pinyin_table[363], }, /* quen an => que nan */ + { &pinyin_table[451], &pinyin_table[5], &pinyin_table[450], &pinyin_table[364], }, /* quen ang => que nang */ + { &pinyin_table[451], &pinyin_table[6], &pinyin_table[450], &pinyin_table[365], }, /* quen ao => que nao */ + { &pinyin_table[451], &pinyin_table[128], &pinyin_table[450], &pinyin_table[366], }, /* quen e => que ne */ + { &pinyin_table[451], &pinyin_table[129], &pinyin_table[450], &pinyin_table[368], }, /* quen ei => que nei */ + { &pinyin_table[451], &pinyin_table[130], &pinyin_table[450], &pinyin_table[370], }, /* quen en => que nen */ + { &pinyin_table[451], &pinyin_table[402], &pinyin_table[450], &pinyin_table[391], }, /* quen ou => que nou */ + { &pinyin_table[452], &pinyin_table[0], &pinyin_table[447], &pinyin_table[359], }, /* qun a => qu na */ + { &pinyin_table[452], &pinyin_table[4], &pinyin_table[447], &pinyin_table[363], }, /* qun an => qu nan */ + { &pinyin_table[452], &pinyin_table[5], &pinyin_table[447], &pinyin_table[364], }, /* qun ang => qu nang */ + { &pinyin_table[452], &pinyin_table[6], &pinyin_table[447], &pinyin_table[365], }, /* qun ao => qu nao */ + { &pinyin_table[452], &pinyin_table[128], &pinyin_table[447], &pinyin_table[366], }, /* qun e => qu ne */ + { &pinyin_table[452], &pinyin_table[129], &pinyin_table[447], &pinyin_table[368], }, /* qun ei => qu nei */ + { &pinyin_table[465], &pinyin_table[5], &pinyin_table[464], &pinyin_table[166], }, /* rang ang => ran gang */ + { &pinyin_table[465], &pinyin_table[6], &pinyin_table[464], &pinyin_table[167], }, /* rang ao => ran gao */ + { &pinyin_table[465], &pinyin_table[129], &pinyin_table[464], &pinyin_table[170], }, /* rang ei => ran gei */ + { &pinyin_table[465], &pinyin_table[130], &pinyin_table[464], &pinyin_table[172], }, /* rang en => ran gen */ + { &pinyin_table[471], &pinyin_table[6], &pinyin_table[467], &pinyin_table[365], }, /* ren ao => re nao */ + { &pinyin_table[471], &pinyin_table[128], &pinyin_table[467], &pinyin_table[366], }, /* ren e => re ne */ + { &pinyin_table[471], &pinyin_table[129], &pinyin_table[467], &pinyin_table[368], }, /* ren ei => re nei */ + { &pinyin_table[472], &pinyin_table[0], &pinyin_table[471], &pinyin_table[161], }, /* reng a => ren ga */ + { &pinyin_table[472], &pinyin_table[2], &pinyin_table[471], &pinyin_table[163], }, /* reng ai => ren gai */ + { &pinyin_table[472], &pinyin_table[4], &pinyin_table[471], &pinyin_table[165], }, /* reng an => ren gan */ + { &pinyin_table[472], &pinyin_table[5], &pinyin_table[471], &pinyin_table[166], }, /* reng ang => ren gang */ + { &pinyin_table[472], &pinyin_table[6], &pinyin_table[471], &pinyin_table[167], }, /* reng ao => ren gao */ + { &pinyin_table[472], &pinyin_table[128], &pinyin_table[471], &pinyin_table[168], }, /* reng e => ren ge */ + { &pinyin_table[472], &pinyin_table[129], &pinyin_table[471], &pinyin_table[170], }, /* reng ei => ren gei */ + { &pinyin_table[472], &pinyin_table[130], &pinyin_table[471], &pinyin_table[172], }, /* reng en => ren gen */ + { &pinyin_table[472], &pinyin_table[402], &pinyin_table[471], &pinyin_table[178], }, /* reng ou => ren gou */ + { &pinyin_table[478], &pinyin_table[459], &pinyin_table[473], &pinyin_table[131], }, /* rie r => ri er */ + { &pinyin_table[479], &pinyin_table[0], &pinyin_table[473], &pinyin_table[359], }, /* rin a => ri na */ + { &pinyin_table[479], &pinyin_table[2], &pinyin_table[473], &pinyin_table[361], }, /* rin ai => ri nai */ + { &pinyin_table[479], &pinyin_table[4], &pinyin_table[473], &pinyin_table[363], }, /* rin an => ri nan */ + { &pinyin_table[479], &pinyin_table[5], &pinyin_table[473], &pinyin_table[364], }, /* rin ang => ri nang */ + { &pinyin_table[479], &pinyin_table[6], &pinyin_table[473], &pinyin_table[365], }, /* rin ao => ri nao */ + { &pinyin_table[479], &pinyin_table[128], &pinyin_table[473], &pinyin_table[366], }, /* rin e => ri ne */ + { &pinyin_table[479], &pinyin_table[129], &pinyin_table[473], &pinyin_table[368], }, /* rin ei => ri nei */ + { &pinyin_table[479], &pinyin_table[130], &pinyin_table[473], &pinyin_table[370], }, /* rin en => ri nen */ + { &pinyin_table[479], &pinyin_table[402], &pinyin_table[473], &pinyin_table[391], }, /* rin ou => ri nou */ + { &pinyin_table[491], &pinyin_table[0], &pinyin_table[490], &pinyin_table[161], }, /* ruang a => ruan ga */ + { &pinyin_table[491], &pinyin_table[2], &pinyin_table[490], &pinyin_table[163], }, /* ruang ai => ruan gai */ + { &pinyin_table[491], &pinyin_table[4], &pinyin_table[490], &pinyin_table[165], }, /* ruang an => ruan gan */ + { &pinyin_table[491], &pinyin_table[5], &pinyin_table[490], &pinyin_table[166], }, /* ruang ang => ruan gang */ + { &pinyin_table[491], &pinyin_table[6], &pinyin_table[490], &pinyin_table[167], }, /* ruang ao => ruan gao */ + { &pinyin_table[491], &pinyin_table[128], &pinyin_table[490], &pinyin_table[168], }, /* ruang e => ruan ge */ + { &pinyin_table[491], &pinyin_table[129], &pinyin_table[490], &pinyin_table[170], }, /* ruang ei => ruan gei */ + { &pinyin_table[491], &pinyin_table[130], &pinyin_table[490], &pinyin_table[172], }, /* ruang en => ruan gen */ + { &pinyin_table[491], &pinyin_table[402], &pinyin_table[490], &pinyin_table[178], }, /* ruang ou => ruan gou */ + { &pinyin_table[492], &pinyin_table[459], &pinyin_table[489], &pinyin_table[131], }, /* rue r => ru er */ + { &pinyin_table[496], &pinyin_table[0], &pinyin_table[489], &pinyin_table[359], }, /* run a => ru na */ + { &pinyin_table[496], &pinyin_table[2], &pinyin_table[489], &pinyin_table[361], }, /* run ai => ru nai */ + { &pinyin_table[496], &pinyin_table[4], &pinyin_table[489], &pinyin_table[363], }, /* run an => ru nan */ + { &pinyin_table[496], &pinyin_table[5], &pinyin_table[489], &pinyin_table[364], }, /* run ang => ru nang */ + { &pinyin_table[496], &pinyin_table[6], &pinyin_table[489], &pinyin_table[365], }, /* run ao => ru nao */ + { &pinyin_table[496], &pinyin_table[128], &pinyin_table[489], &pinyin_table[366], }, /* run e => ru ne */ + { &pinyin_table[496], &pinyin_table[129], &pinyin_table[489], &pinyin_table[368], }, /* run ei => ru nei */ + { &pinyin_table[496], &pinyin_table[130], &pinyin_table[489], &pinyin_table[370], }, /* run en => ru nen */ + { &pinyin_table[505], &pinyin_table[0], &pinyin_table[501], &pinyin_table[359], }, /* san a => sa na */ + { &pinyin_table[505], &pinyin_table[129], &pinyin_table[501], &pinyin_table[368], }, /* san ei => sa nei */ + { &pinyin_table[506], &pinyin_table[2], &pinyin_table[505], &pinyin_table[163], }, /* sang ai => san gai */ + { &pinyin_table[506], &pinyin_table[4], &pinyin_table[505], &pinyin_table[165], }, /* sang an => san gan */ + { &pinyin_table[506], &pinyin_table[5], &pinyin_table[505], &pinyin_table[166], }, /* sang ang => san gang */ + { &pinyin_table[506], &pinyin_table[6], &pinyin_table[505], &pinyin_table[167], }, /* sang ao => san gao */ + { &pinyin_table[506], &pinyin_table[128], &pinyin_table[505], &pinyin_table[168], }, /* sang e => san ge */ + { &pinyin_table[506], &pinyin_table[129], &pinyin_table[505], &pinyin_table[170], }, /* sang ei => san gei */ + { &pinyin_table[506], &pinyin_table[130], &pinyin_table[505], &pinyin_table[172], }, /* sang en => san gen */ + { &pinyin_table[512], &pinyin_table[0], &pinyin_table[508], &pinyin_table[359], }, /* sen a => se na */ + { &pinyin_table[512], &pinyin_table[2], &pinyin_table[508], &pinyin_table[361], }, /* sen ai => se nai */ + { &pinyin_table[512], &pinyin_table[4], &pinyin_table[508], &pinyin_table[363], }, /* sen an => se nan */ + { &pinyin_table[512], &pinyin_table[5], &pinyin_table[508], &pinyin_table[364], }, /* sen ang => se nang */ + { &pinyin_table[512], &pinyin_table[6], &pinyin_table[508], &pinyin_table[365], }, /* sen ao => se nao */ + { &pinyin_table[512], &pinyin_table[128], &pinyin_table[508], &pinyin_table[366], }, /* sen e => se ne */ + { &pinyin_table[512], &pinyin_table[129], &pinyin_table[508], &pinyin_table[368], }, /* sen ei => se nei */ + { &pinyin_table[513], &pinyin_table[2], &pinyin_table[512], &pinyin_table[163], }, /* seng ai => sen gai */ + { &pinyin_table[513], &pinyin_table[4], &pinyin_table[512], &pinyin_table[165], }, /* seng an => sen gan */ + { &pinyin_table[513], &pinyin_table[5], &pinyin_table[512], &pinyin_table[166], }, /* seng ang => sen gang */ + { &pinyin_table[513], &pinyin_table[6], &pinyin_table[512], &pinyin_table[167], }, /* seng ao => sen gao */ + { &pinyin_table[513], &pinyin_table[128], &pinyin_table[512], &pinyin_table[168], }, /* seng e => sen ge */ + { &pinyin_table[513], &pinyin_table[129], &pinyin_table[512], &pinyin_table[170], }, /* seng ei => sen gei */ + { &pinyin_table[513], &pinyin_table[130], &pinyin_table[512], &pinyin_table[172], }, /* seng en => sen gen */ + { &pinyin_table[513], &pinyin_table[402], &pinyin_table[512], &pinyin_table[178], }, /* seng ou => sen gou */ + { &pinyin_table[519], &pinyin_table[0], &pinyin_table[515], &pinyin_table[359], }, /* shan a => sha na */ + { &pinyin_table[519], &pinyin_table[4], &pinyin_table[515], &pinyin_table[363], }, /* shan an => sha nan */ + { &pinyin_table[519], &pinyin_table[129], &pinyin_table[515], &pinyin_table[368], }, /* shan ei => sha nei */ + { &pinyin_table[520], &pinyin_table[2], &pinyin_table[519], &pinyin_table[163], }, /* shang ai => shan gai */ + { &pinyin_table[520], &pinyin_table[5], &pinyin_table[519], &pinyin_table[166], }, /* shang ang => shan gang */ + { &pinyin_table[520], &pinyin_table[6], &pinyin_table[519], &pinyin_table[167], }, /* shang ao => shan gao */ + { &pinyin_table[520], &pinyin_table[128], &pinyin_table[519], &pinyin_table[168], }, /* shang e => shan ge */ + { &pinyin_table[520], &pinyin_table[129], &pinyin_table[519], &pinyin_table[170], }, /* shang ei => shan gei */ + { &pinyin_table[520], &pinyin_table[130], &pinyin_table[519], &pinyin_table[172], }, /* shang en => shan gen */ + { &pinyin_table[520], &pinyin_table[402], &pinyin_table[519], &pinyin_table[178], }, /* shang ou => shan gou */ + { &pinyin_table[526], &pinyin_table[129], &pinyin_table[522], &pinyin_table[368], }, /* shen ei => she nei */ + { &pinyin_table[527], &pinyin_table[4], &pinyin_table[526], &pinyin_table[165], }, /* sheng an => shen gan */ + { &pinyin_table[527], &pinyin_table[5], &pinyin_table[526], &pinyin_table[166], }, /* sheng ang => shen gang */ + { &pinyin_table[527], &pinyin_table[6], &pinyin_table[526], &pinyin_table[167], }, /* sheng ao => shen gao */ + { &pinyin_table[527], &pinyin_table[128], &pinyin_table[526], &pinyin_table[168], }, /* sheng e => shen ge */ + { &pinyin_table[527], &pinyin_table[129], &pinyin_table[526], &pinyin_table[170], }, /* sheng ei => shen gei */ + { &pinyin_table[527], &pinyin_table[402], &pinyin_table[526], &pinyin_table[178], }, /* sheng ou => shen gou */ + { &pinyin_table[537], &pinyin_table[0], &pinyin_table[533], &pinyin_table[359], }, /* shuan a => shua na */ + { &pinyin_table[537], &pinyin_table[2], &pinyin_table[533], &pinyin_table[361], }, /* shuan ai => shua nai */ + { &pinyin_table[537], &pinyin_table[4], &pinyin_table[533], &pinyin_table[363], }, /* shuan an => shua nan */ + { &pinyin_table[537], &pinyin_table[5], &pinyin_table[533], &pinyin_table[364], }, /* shuan ang => shua nang */ + { &pinyin_table[537], &pinyin_table[6], &pinyin_table[533], &pinyin_table[365], }, /* shuan ao => shua nao */ + { &pinyin_table[537], &pinyin_table[128], &pinyin_table[533], &pinyin_table[366], }, /* shuan e => shua ne */ + { &pinyin_table[537], &pinyin_table[129], &pinyin_table[533], &pinyin_table[368], }, /* shuan ei => shua nei */ + { &pinyin_table[538], &pinyin_table[129], &pinyin_table[537], &pinyin_table[170], }, /* shuang ei => shuan gei */ + { &pinyin_table[542], &pinyin_table[4], &pinyin_table[532], &pinyin_table[363], }, /* shun an => shu nan */ + { &pinyin_table[542], &pinyin_table[5], &pinyin_table[532], &pinyin_table[364], }, /* shun ang => shu nang */ + { &pinyin_table[542], &pinyin_table[6], &pinyin_table[532], &pinyin_table[365], }, /* shun ao => shu nao */ + { &pinyin_table[542], &pinyin_table[128], &pinyin_table[532], &pinyin_table[366], }, /* shun e => shu ne */ + { &pinyin_table[542], &pinyin_table[129], &pinyin_table[532], &pinyin_table[368], }, /* shun ei => shu nei */ + { &pinyin_table[554], &pinyin_table[0], &pinyin_table[553], &pinyin_table[161], }, /* suang a => suan ga */ + { &pinyin_table[554], &pinyin_table[2], &pinyin_table[553], &pinyin_table[163], }, /* suang ai => suan gai */ + { &pinyin_table[554], &pinyin_table[4], &pinyin_table[553], &pinyin_table[165], }, /* suang an => suan gan */ + { &pinyin_table[554], &pinyin_table[5], &pinyin_table[553], &pinyin_table[166], }, /* suang ang => suan gang */ + { &pinyin_table[554], &pinyin_table[6], &pinyin_table[553], &pinyin_table[167], }, /* suang ao => suan gao */ + { &pinyin_table[554], &pinyin_table[128], &pinyin_table[553], &pinyin_table[168], }, /* suang e => suan ge */ + { &pinyin_table[554], &pinyin_table[129], &pinyin_table[553], &pinyin_table[170], }, /* suang ei => suan gei */ + { &pinyin_table[554], &pinyin_table[130], &pinyin_table[553], &pinyin_table[172], }, /* suang en => suan gen */ + { &pinyin_table[554], &pinyin_table[402], &pinyin_table[553], &pinyin_table[178], }, /* suang ou => suan gou */ + { &pinyin_table[558], &pinyin_table[0], &pinyin_table[550], &pinyin_table[359], }, /* sun a => su na */ + { &pinyin_table[558], &pinyin_table[4], &pinyin_table[550], &pinyin_table[363], }, /* sun an => su nan */ + { &pinyin_table[558], &pinyin_table[5], &pinyin_table[550], &pinyin_table[364], }, /* sun ang => su nang */ + { &pinyin_table[558], &pinyin_table[6], &pinyin_table[550], &pinyin_table[365], }, /* sun ao => su nao */ + { &pinyin_table[558], &pinyin_table[128], &pinyin_table[550], &pinyin_table[366], }, /* sun e => su ne */ + { &pinyin_table[558], &pinyin_table[129], &pinyin_table[550], &pinyin_table[368], }, /* sun ei => su nei */ + { &pinyin_table[565], &pinyin_table[0], &pinyin_table[561], &pinyin_table[359], }, /* tan a => ta na */ + { &pinyin_table[565], &pinyin_table[5], &pinyin_table[561], &pinyin_table[364], }, /* tan ang => ta nang */ + { &pinyin_table[565], &pinyin_table[6], &pinyin_table[561], &pinyin_table[365], }, /* tan ao => ta nao */ + { &pinyin_table[565], &pinyin_table[128], &pinyin_table[561], &pinyin_table[366], }, /* tan e => ta ne */ + { &pinyin_table[565], &pinyin_table[129], &pinyin_table[561], &pinyin_table[368], }, /* tan ei => ta nei */ + { &pinyin_table[566], &pinyin_table[2], &pinyin_table[565], &pinyin_table[163], }, /* tang ai => tan gai */ + { &pinyin_table[566], &pinyin_table[4], &pinyin_table[565], &pinyin_table[165], }, /* tang an => tan gan */ + { &pinyin_table[566], &pinyin_table[5], &pinyin_table[565], &pinyin_table[166], }, /* tang ang => tan gang */ + { &pinyin_table[566], &pinyin_table[128], &pinyin_table[565], &pinyin_table[168], }, /* tang e => tan ge */ + { &pinyin_table[566], &pinyin_table[129], &pinyin_table[565], &pinyin_table[170], }, /* tang ei => tan gei */ + { &pinyin_table[566], &pinyin_table[402], &pinyin_table[565], &pinyin_table[178], }, /* tang ou => tan gou */ + { &pinyin_table[571], &pinyin_table[0], &pinyin_table[568], &pinyin_table[359], }, /* ten a => te na */ + { &pinyin_table[571], &pinyin_table[2], &pinyin_table[568], &pinyin_table[361], }, /* ten ai => te nai */ + { &pinyin_table[571], &pinyin_table[4], &pinyin_table[568], &pinyin_table[363], }, /* ten an => te nan */ + { &pinyin_table[571], &pinyin_table[5], &pinyin_table[568], &pinyin_table[364], }, /* ten ang => te nang */ + { &pinyin_table[571], &pinyin_table[6], &pinyin_table[568], &pinyin_table[365], }, /* ten ao => te nao */ + { &pinyin_table[571], &pinyin_table[128], &pinyin_table[568], &pinyin_table[366], }, /* ten e => te ne */ + { &pinyin_table[571], &pinyin_table[129], &pinyin_table[568], &pinyin_table[368], }, /* ten ei => te nei */ + { &pinyin_table[571], &pinyin_table[130], &pinyin_table[568], &pinyin_table[370], }, /* ten en => te nen */ + { &pinyin_table[571], &pinyin_table[402], &pinyin_table[568], &pinyin_table[391], }, /* ten ou => te nou */ + { &pinyin_table[575], &pinyin_table[0], &pinyin_table[574], &pinyin_table[161], }, /* tiang a => tian ga */ + { &pinyin_table[575], &pinyin_table[2], &pinyin_table[574], &pinyin_table[163], }, /* tiang ai => tian gai */ + { &pinyin_table[575], &pinyin_table[4], &pinyin_table[574], &pinyin_table[165], }, /* tiang an => tian gan */ + { &pinyin_table[575], &pinyin_table[5], &pinyin_table[574], &pinyin_table[166], }, /* tiang ang => tian gang */ + { &pinyin_table[575], &pinyin_table[6], &pinyin_table[574], &pinyin_table[167], }, /* tiang ao => tian gao */ + { &pinyin_table[575], &pinyin_table[128], &pinyin_table[574], &pinyin_table[168], }, /* tiang e => tian ge */ + { &pinyin_table[575], &pinyin_table[129], &pinyin_table[574], &pinyin_table[170], }, /* tiang ei => tian gei */ + { &pinyin_table[575], &pinyin_table[130], &pinyin_table[574], &pinyin_table[172], }, /* tiang en => tian gen */ + { &pinyin_table[575], &pinyin_table[402], &pinyin_table[574], &pinyin_table[178], }, /* tiang ou => tian gou */ + { &pinyin_table[577], &pinyin_table[459], &pinyin_table[573], &pinyin_table[131], }, /* tie r => ti er */ + { &pinyin_table[580], &pinyin_table[0], &pinyin_table[573], &pinyin_table[359], }, /* tin a => ti na */ + { &pinyin_table[580], &pinyin_table[2], &pinyin_table[573], &pinyin_table[361], }, /* tin ai => ti nai */ + { &pinyin_table[580], &pinyin_table[4], &pinyin_table[573], &pinyin_table[363], }, /* tin an => ti nan */ + { &pinyin_table[580], &pinyin_table[5], &pinyin_table[573], &pinyin_table[364], }, /* tin ang => ti nang */ + { &pinyin_table[580], &pinyin_table[6], &pinyin_table[573], &pinyin_table[365], }, /* tin ao => ti nao */ + { &pinyin_table[580], &pinyin_table[128], &pinyin_table[573], &pinyin_table[366], }, /* tin e => ti ne */ + { &pinyin_table[580], &pinyin_table[129], &pinyin_table[573], &pinyin_table[368], }, /* tin ei => ti nei */ + { &pinyin_table[580], &pinyin_table[130], &pinyin_table[573], &pinyin_table[370], }, /* tin en => ti nen */ + { &pinyin_table[580], &pinyin_table[402], &pinyin_table[573], &pinyin_table[391], }, /* tin ou => ti nou */ + { &pinyin_table[589], &pinyin_table[0], &pinyin_table[588], &pinyin_table[161], }, /* tuang a => tuan ga */ + { &pinyin_table[589], &pinyin_table[2], &pinyin_table[588], &pinyin_table[163], }, /* tuang ai => tuan gai */ + { &pinyin_table[589], &pinyin_table[4], &pinyin_table[588], &pinyin_table[165], }, /* tuang an => tuan gan */ + { &pinyin_table[589], &pinyin_table[5], &pinyin_table[588], &pinyin_table[166], }, /* tuang ang => tuan gang */ + { &pinyin_table[589], &pinyin_table[6], &pinyin_table[588], &pinyin_table[167], }, /* tuang ao => tuan gao */ + { &pinyin_table[589], &pinyin_table[128], &pinyin_table[588], &pinyin_table[168], }, /* tuang e => tuan ge */ + { &pinyin_table[589], &pinyin_table[129], &pinyin_table[588], &pinyin_table[170], }, /* tuang ei => tuan gei */ + { &pinyin_table[589], &pinyin_table[130], &pinyin_table[588], &pinyin_table[172], }, /* tuang en => tuan gen */ + { &pinyin_table[589], &pinyin_table[402], &pinyin_table[588], &pinyin_table[178], }, /* tuang ou => tuan gou */ + { &pinyin_table[593], &pinyin_table[0], &pinyin_table[587], &pinyin_table[359], }, /* tun a => tu na */ + { &pinyin_table[593], &pinyin_table[2], &pinyin_table[587], &pinyin_table[361], }, /* tun ai => tu nai */ + { &pinyin_table[593], &pinyin_table[4], &pinyin_table[587], &pinyin_table[363], }, /* tun an => tu nan */ + { &pinyin_table[593], &pinyin_table[5], &pinyin_table[587], &pinyin_table[364], }, /* tun ang => tu nang */ + { &pinyin_table[593], &pinyin_table[6], &pinyin_table[587], &pinyin_table[365], }, /* tun ao => tu nao */ + { &pinyin_table[593], &pinyin_table[128], &pinyin_table[587], &pinyin_table[366], }, /* tun e => tu ne */ + { &pinyin_table[593], &pinyin_table[129], &pinyin_table[587], &pinyin_table[368], }, /* tun ei => tu nei */ + { &pinyin_table[593], &pinyin_table[130], &pinyin_table[587], &pinyin_table[370], }, /* tun en => tu nen */ + { &pinyin_table[600], &pinyin_table[129], &pinyin_table[596], &pinyin_table[368], }, /* wan ei => wa nei */ + { &pinyin_table[601], &pinyin_table[5], &pinyin_table[600], &pinyin_table[166], }, /* wang ang => wan gang */ + { &pinyin_table[601], &pinyin_table[6], &pinyin_table[600], &pinyin_table[167], }, /* wang ao => wan gao */ + { &pinyin_table[601], &pinyin_table[128], &pinyin_table[600], &pinyin_table[168], }, /* wang e => wan ge */ + { &pinyin_table[601], &pinyin_table[129], &pinyin_table[600], &pinyin_table[170], }, /* wang ei => wan gei */ + { &pinyin_table[601], &pinyin_table[402], &pinyin_table[600], &pinyin_table[178], }, /* wang ou => wan gou */ + { &pinyin_table[606], &pinyin_table[0], &pinyin_table[605], &pinyin_table[161], }, /* weng a => wen ga */ + { &pinyin_table[606], &pinyin_table[2], &pinyin_table[605], &pinyin_table[163], }, /* weng ai => wen gai */ + { &pinyin_table[606], &pinyin_table[4], &pinyin_table[605], &pinyin_table[165], }, /* weng an => wen gan */ + { &pinyin_table[606], &pinyin_table[5], &pinyin_table[605], &pinyin_table[166], }, /* weng ang => wen gang */ + { &pinyin_table[606], &pinyin_table[6], &pinyin_table[605], &pinyin_table[167], }, /* weng ao => wen gao */ + { &pinyin_table[606], &pinyin_table[128], &pinyin_table[605], &pinyin_table[168], }, /* weng e => wen ge */ + { &pinyin_table[606], &pinyin_table[129], &pinyin_table[605], &pinyin_table[170], }, /* weng ei => wen gei */ + { &pinyin_table[606], &pinyin_table[130], &pinyin_table[605], &pinyin_table[172], }, /* weng en => wen gen */ + { &pinyin_table[606], &pinyin_table[402], &pinyin_table[605], &pinyin_table[178], }, /* weng ou => wen gou */ + { &pinyin_table[614], &pinyin_table[0], &pinyin_table[611], &pinyin_table[359], }, /* xian a => xia na */ + { &pinyin_table[614], &pinyin_table[5], &pinyin_table[611], &pinyin_table[364], }, /* xian ang => xia nang */ + { &pinyin_table[614], &pinyin_table[6], &pinyin_table[611], &pinyin_table[365], }, /* xian ao => xia nao */ + { &pinyin_table[614], &pinyin_table[129], &pinyin_table[611], &pinyin_table[368], }, /* xian ei => xia nei */ + { &pinyin_table[615], &pinyin_table[5], &pinyin_table[614], &pinyin_table[166], }, /* xiang ang => xian gang */ + { &pinyin_table[615], &pinyin_table[6], &pinyin_table[614], &pinyin_table[167], }, /* xiang ao => xian gao */ + { &pinyin_table[615], &pinyin_table[129], &pinyin_table[614], &pinyin_table[170], }, /* xiang ei => xian gei */ + { &pinyin_table[615], &pinyin_table[130], &pinyin_table[614], &pinyin_table[172], }, /* xiang en => xian gen */ + { &pinyin_table[615], &pinyin_table[402], &pinyin_table[614], &pinyin_table[178], }, /* xiang ou => xian gou */ + { &pinyin_table[617], &pinyin_table[459], &pinyin_table[610], &pinyin_table[131], }, /* xie r => xi er */ + { &pinyin_table[620], &pinyin_table[0], &pinyin_table[610], &pinyin_table[359], }, /* xin a => xi na */ + { &pinyin_table[620], &pinyin_table[4], &pinyin_table[610], &pinyin_table[363], }, /* xin an => xi nan */ + { &pinyin_table[620], &pinyin_table[128], &pinyin_table[610], &pinyin_table[366], }, /* xin e => xi ne */ + { &pinyin_table[620], &pinyin_table[129], &pinyin_table[610], &pinyin_table[368], }, /* xin ei => xi nei */ + { &pinyin_table[620], &pinyin_table[130], &pinyin_table[610], &pinyin_table[370], }, /* xin en => xi nen */ + { &pinyin_table[621], &pinyin_table[4], &pinyin_table[620], &pinyin_table[165], }, /* xing an => xin gan */ + { &pinyin_table[621], &pinyin_table[5], &pinyin_table[620], &pinyin_table[166], }, /* xing ang => xin gang */ + { &pinyin_table[621], &pinyin_table[6], &pinyin_table[620], &pinyin_table[167], }, /* xing ao => xin gao */ + { &pinyin_table[621], &pinyin_table[128], &pinyin_table[620], &pinyin_table[168], }, /* xing e => xin ge */ + { &pinyin_table[621], &pinyin_table[129], &pinyin_table[620], &pinyin_table[170], }, /* xing ei => xin gei */ + { &pinyin_table[621], &pinyin_table[130], &pinyin_table[620], &pinyin_table[172], }, /* xing en => xin gen */ + { &pinyin_table[621], &pinyin_table[402], &pinyin_table[620], &pinyin_table[178], }, /* xing ou => xin gou */ + { &pinyin_table[630], &pinyin_table[0], &pinyin_table[629], &pinyin_table[161], }, /* xuang a => xuan ga */ + { &pinyin_table[630], &pinyin_table[2], &pinyin_table[629], &pinyin_table[163], }, /* xuang ai => xuan gai */ + { &pinyin_table[630], &pinyin_table[4], &pinyin_table[629], &pinyin_table[165], }, /* xuang an => xuan gan */ + { &pinyin_table[630], &pinyin_table[5], &pinyin_table[629], &pinyin_table[166], }, /* xuang ang => xuan gang */ + { &pinyin_table[630], &pinyin_table[6], &pinyin_table[629], &pinyin_table[167], }, /* xuang ao => xuan gao */ + { &pinyin_table[630], &pinyin_table[128], &pinyin_table[629], &pinyin_table[168], }, /* xuang e => xuan ge */ + { &pinyin_table[630], &pinyin_table[129], &pinyin_table[629], &pinyin_table[170], }, /* xuang ei => xuan gei */ + { &pinyin_table[630], &pinyin_table[130], &pinyin_table[629], &pinyin_table[172], }, /* xuang en => xuan gen */ + { &pinyin_table[630], &pinyin_table[402], &pinyin_table[629], &pinyin_table[178], }, /* xuang ou => xuan gou */ + { &pinyin_table[631], &pinyin_table[459], &pinyin_table[628], &pinyin_table[131], }, /* xue r => xu er */ + { &pinyin_table[632], &pinyin_table[0], &pinyin_table[631], &pinyin_table[359], }, /* xuen a => xue na */ + { &pinyin_table[632], &pinyin_table[2], &pinyin_table[631], &pinyin_table[361], }, /* xuen ai => xue nai */ + { &pinyin_table[632], &pinyin_table[4], &pinyin_table[631], &pinyin_table[363], }, /* xuen an => xue nan */ + { &pinyin_table[632], &pinyin_table[5], &pinyin_table[631], &pinyin_table[364], }, /* xuen ang => xue nang */ + { &pinyin_table[632], &pinyin_table[6], &pinyin_table[631], &pinyin_table[365], }, /* xuen ao => xue nao */ + { &pinyin_table[632], &pinyin_table[128], &pinyin_table[631], &pinyin_table[366], }, /* xuen e => xue ne */ + { &pinyin_table[632], &pinyin_table[129], &pinyin_table[631], &pinyin_table[368], }, /* xuen ei => xue nei */ + { &pinyin_table[632], &pinyin_table[130], &pinyin_table[631], &pinyin_table[370], }, /* xuen en => xue nen */ + { &pinyin_table[632], &pinyin_table[402], &pinyin_table[631], &pinyin_table[391], }, /* xuen ou => xue nou */ + { &pinyin_table[633], &pinyin_table[5], &pinyin_table[628], &pinyin_table[364], }, /* xun ang => xu nang */ + { &pinyin_table[633], &pinyin_table[6], &pinyin_table[628], &pinyin_table[365], }, /* xun ao => xu nao */ + { &pinyin_table[633], &pinyin_table[128], &pinyin_table[628], &pinyin_table[366], }, /* xun e => xu ne */ + { &pinyin_table[633], &pinyin_table[129], &pinyin_table[628], &pinyin_table[368], }, /* xun ei => xu nei */ + { &pinyin_table[644], &pinyin_table[0], &pinyin_table[641], &pinyin_table[359], }, /* yan a => ya na */ + { &pinyin_table[644], &pinyin_table[128], &pinyin_table[641], &pinyin_table[366], }, /* yan e => ya ne */ + { &pinyin_table[644], &pinyin_table[129], &pinyin_table[641], &pinyin_table[368], }, /* yan ei => ya nei */ + { &pinyin_table[645], &pinyin_table[2], &pinyin_table[644], &pinyin_table[163], }, /* yang ai => yan gai */ + { &pinyin_table[645], &pinyin_table[4], &pinyin_table[644], &pinyin_table[165], }, /* yang an => yan gan */ + { &pinyin_table[645], &pinyin_table[5], &pinyin_table[644], &pinyin_table[166], }, /* yang ang => yan gang */ + { &pinyin_table[645], &pinyin_table[6], &pinyin_table[644], &pinyin_table[167], }, /* yang ao => yan gao */ + { &pinyin_table[645], &pinyin_table[128], &pinyin_table[644], &pinyin_table[168], }, /* yang e => yan ge */ + { &pinyin_table[645], &pinyin_table[129], &pinyin_table[644], &pinyin_table[170], }, /* yang ei => yan gei */ + { &pinyin_table[645], &pinyin_table[402], &pinyin_table[644], &pinyin_table[178], }, /* yang ou => yan gou */ + { &pinyin_table[651], &pinyin_table[0], &pinyin_table[648], &pinyin_table[359], }, /* yin a => yi na */ + { &pinyin_table[651], &pinyin_table[2], &pinyin_table[648], &pinyin_table[361], }, /* yin ai => yi nai */ + { &pinyin_table[651], &pinyin_table[4], &pinyin_table[648], &pinyin_table[363], }, /* yin an => yi nan */ + { &pinyin_table[651], &pinyin_table[5], &pinyin_table[648], &pinyin_table[364], }, /* yin ang => yi nang */ + { &pinyin_table[651], &pinyin_table[6], &pinyin_table[648], &pinyin_table[365], }, /* yin ao => yi nao */ + { &pinyin_table[651], &pinyin_table[129], &pinyin_table[648], &pinyin_table[368], }, /* yin ei => yi nei */ + { &pinyin_table[652], &pinyin_table[2], &pinyin_table[651], &pinyin_table[163], }, /* ying ai => yin gai */ + { &pinyin_table[652], &pinyin_table[5], &pinyin_table[651], &pinyin_table[166], }, /* ying ang => yin gang */ + { &pinyin_table[652], &pinyin_table[6], &pinyin_table[651], &pinyin_table[167], }, /* ying ao => yin gao */ + { &pinyin_table[652], &pinyin_table[129], &pinyin_table[651], &pinyin_table[170], }, /* ying ei => yin gei */ + { &pinyin_table[652], &pinyin_table[130], &pinyin_table[651], &pinyin_table[172], }, /* ying en => yin gen */ + { &pinyin_table[652], &pinyin_table[402], &pinyin_table[651], &pinyin_table[178], }, /* ying ou => yin gou */ + { &pinyin_table[656], &pinyin_table[0], &pinyin_table[653], &pinyin_table[359], }, /* yon a => yo na */ + { &pinyin_table[656], &pinyin_table[2], &pinyin_table[653], &pinyin_table[361], }, /* yon ai => yo nai */ + { &pinyin_table[656], &pinyin_table[4], &pinyin_table[653], &pinyin_table[363], }, /* yon an => yo nan */ + { &pinyin_table[656], &pinyin_table[5], &pinyin_table[653], &pinyin_table[364], }, /* yon ang => yo nang */ + { &pinyin_table[656], &pinyin_table[6], &pinyin_table[653], &pinyin_table[365], }, /* yon ao => yo nao */ + { &pinyin_table[656], &pinyin_table[128], &pinyin_table[653], &pinyin_table[366], }, /* yon e => yo ne */ + { &pinyin_table[656], &pinyin_table[129], &pinyin_table[653], &pinyin_table[368], }, /* yon ei => yo nei */ + { &pinyin_table[656], &pinyin_table[130], &pinyin_table[653], &pinyin_table[370], }, /* yon en => yo nen */ + { &pinyin_table[656], &pinyin_table[402], &pinyin_table[653], &pinyin_table[391], }, /* yon ou => yo nou */ + { &pinyin_table[661], &pinyin_table[0], &pinyin_table[660], &pinyin_table[161], }, /* yuang a => yuan ga */ + { &pinyin_table[661], &pinyin_table[2], &pinyin_table[660], &pinyin_table[163], }, /* yuang ai => yuan gai */ + { &pinyin_table[661], &pinyin_table[4], &pinyin_table[660], &pinyin_table[165], }, /* yuang an => yuan gan */ + { &pinyin_table[661], &pinyin_table[5], &pinyin_table[660], &pinyin_table[166], }, /* yuang ang => yuan gang */ + { &pinyin_table[661], &pinyin_table[6], &pinyin_table[660], &pinyin_table[167], }, /* yuang ao => yuan gao */ + { &pinyin_table[661], &pinyin_table[128], &pinyin_table[660], &pinyin_table[168], }, /* yuang e => yuan ge */ + { &pinyin_table[661], &pinyin_table[129], &pinyin_table[660], &pinyin_table[170], }, /* yuang ei => yuan gei */ + { &pinyin_table[661], &pinyin_table[130], &pinyin_table[660], &pinyin_table[172], }, /* yuang en => yuan gen */ + { &pinyin_table[661], &pinyin_table[402], &pinyin_table[660], &pinyin_table[178], }, /* yuang ou => yuan gou */ + { &pinyin_table[662], &pinyin_table[459], &pinyin_table[659], &pinyin_table[131], }, /* yue r => yu er */ + { &pinyin_table[663], &pinyin_table[0], &pinyin_table[662], &pinyin_table[359], }, /* yuen a => yue na */ + { &pinyin_table[663], &pinyin_table[2], &pinyin_table[662], &pinyin_table[361], }, /* yuen ai => yue nai */ + { &pinyin_table[663], &pinyin_table[4], &pinyin_table[662], &pinyin_table[363], }, /* yuen an => yue nan */ + { &pinyin_table[663], &pinyin_table[5], &pinyin_table[662], &pinyin_table[364], }, /* yuen ang => yue nang */ + { &pinyin_table[663], &pinyin_table[6], &pinyin_table[662], &pinyin_table[365], }, /* yuen ao => yue nao */ + { &pinyin_table[663], &pinyin_table[128], &pinyin_table[662], &pinyin_table[366], }, /* yuen e => yue ne */ + { &pinyin_table[663], &pinyin_table[129], &pinyin_table[662], &pinyin_table[368], }, /* yuen ei => yue nei */ + { &pinyin_table[663], &pinyin_table[130], &pinyin_table[662], &pinyin_table[370], }, /* yuen en => yue nen */ + { &pinyin_table[663], &pinyin_table[402], &pinyin_table[662], &pinyin_table[391], }, /* yuen ou => yue nou */ + { &pinyin_table[664], &pinyin_table[0], &pinyin_table[659], &pinyin_table[359], }, /* yun a => yu na */ + { &pinyin_table[664], &pinyin_table[2], &pinyin_table[659], &pinyin_table[361], }, /* yun ai => yu nai */ + { &pinyin_table[664], &pinyin_table[4], &pinyin_table[659], &pinyin_table[363], }, /* yun an => yu nan */ + { &pinyin_table[664], &pinyin_table[5], &pinyin_table[659], &pinyin_table[364], }, /* yun ang => yu nang */ + { &pinyin_table[664], &pinyin_table[6], &pinyin_table[659], &pinyin_table[365], }, /* yun ao => yu nao */ + { &pinyin_table[664], &pinyin_table[128], &pinyin_table[659], &pinyin_table[366], }, /* yun e => yu ne */ + { &pinyin_table[664], &pinyin_table[129], &pinyin_table[659], &pinyin_table[368], }, /* yun ei => yu nei */ + { &pinyin_table[676], &pinyin_table[0], &pinyin_table[672], &pinyin_table[359], }, /* zan a => za na */ + { &pinyin_table[676], &pinyin_table[4], &pinyin_table[672], &pinyin_table[363], }, /* zan an => za nan */ + { &pinyin_table[676], &pinyin_table[5], &pinyin_table[672], &pinyin_table[364], }, /* zan ang => za nang */ + { &pinyin_table[676], &pinyin_table[6], &pinyin_table[672], &pinyin_table[365], }, /* zan ao => za nao */ + { &pinyin_table[676], &pinyin_table[128], &pinyin_table[672], &pinyin_table[366], }, /* zan e => za ne */ + { &pinyin_table[676], &pinyin_table[129], &pinyin_table[672], &pinyin_table[368], }, /* zan ei => za nei */ + { &pinyin_table[677], &pinyin_table[4], &pinyin_table[676], &pinyin_table[165], }, /* zang an => zan gan */ + { &pinyin_table[677], &pinyin_table[5], &pinyin_table[676], &pinyin_table[166], }, /* zang ang => zan gang */ + { &pinyin_table[677], &pinyin_table[6], &pinyin_table[676], &pinyin_table[167], }, /* zang ao => zan gao */ + { &pinyin_table[677], &pinyin_table[128], &pinyin_table[676], &pinyin_table[168], }, /* zang e => zan ge */ + { &pinyin_table[677], &pinyin_table[129], &pinyin_table[676], &pinyin_table[170], }, /* zang ei => zan gei */ + { &pinyin_table[677], &pinyin_table[130], &pinyin_table[676], &pinyin_table[172], }, /* zang en => zan gen */ + { &pinyin_table[677], &pinyin_table[402], &pinyin_table[676], &pinyin_table[178], }, /* zang ou => zan gou */ + { &pinyin_table[683], &pinyin_table[0], &pinyin_table[679], &pinyin_table[359], }, /* zen a => ze na */ + { &pinyin_table[683], &pinyin_table[4], &pinyin_table[679], &pinyin_table[363], }, /* zen an => ze nan */ + { &pinyin_table[683], &pinyin_table[6], &pinyin_table[679], &pinyin_table[365], }, /* zen ao => ze nao */ + { &pinyin_table[683], &pinyin_table[128], &pinyin_table[679], &pinyin_table[366], }, /* zen e => ze ne */ + { &pinyin_table[683], &pinyin_table[129], &pinyin_table[679], &pinyin_table[368], }, /* zen ei => ze nei */ + { &pinyin_table[684], &pinyin_table[2], &pinyin_table[683], &pinyin_table[163], }, /* zeng ai => zen gai */ + { &pinyin_table[684], &pinyin_table[4], &pinyin_table[683], &pinyin_table[165], }, /* zeng an => zen gan */ + { &pinyin_table[684], &pinyin_table[5], &pinyin_table[683], &pinyin_table[166], }, /* zeng ang => zen gang */ + { &pinyin_table[684], &pinyin_table[6], &pinyin_table[683], &pinyin_table[167], }, /* zeng ao => zen gao */ + { &pinyin_table[684], &pinyin_table[129], &pinyin_table[683], &pinyin_table[170], }, /* zeng ei => zen gei */ + { &pinyin_table[684], &pinyin_table[130], &pinyin_table[683], &pinyin_table[172], }, /* zeng en => zen gen */ + { &pinyin_table[684], &pinyin_table[402], &pinyin_table[683], &pinyin_table[178], }, /* zeng ou => zen gou */ + { &pinyin_table[690], &pinyin_table[129], &pinyin_table[686], &pinyin_table[368], }, /* zhan ei => zha nei */ + { &pinyin_table[691], &pinyin_table[4], &pinyin_table[690], &pinyin_table[165], }, /* zhang an => zhan gan */ + { &pinyin_table[691], &pinyin_table[5], &pinyin_table[690], &pinyin_table[166], }, /* zhang ang => zhan gang */ + { &pinyin_table[691], &pinyin_table[6], &pinyin_table[690], &pinyin_table[167], }, /* zhang ao => zhan gao */ + { &pinyin_table[691], &pinyin_table[128], &pinyin_table[690], &pinyin_table[168], }, /* zhang e => zhan ge */ + { &pinyin_table[691], &pinyin_table[129], &pinyin_table[690], &pinyin_table[170], }, /* zhang ei => zhan gei */ + { &pinyin_table[691], &pinyin_table[130], &pinyin_table[690], &pinyin_table[172], }, /* zhang en => zhan gen */ + { &pinyin_table[691], &pinyin_table[402], &pinyin_table[690], &pinyin_table[178], }, /* zhang ou => zhan gou */ + { &pinyin_table[697], &pinyin_table[0], &pinyin_table[693], &pinyin_table[359], }, /* zhen a => zhe na */ + { &pinyin_table[697], &pinyin_table[4], &pinyin_table[693], &pinyin_table[363], }, /* zhen an => zhe nan */ + { &pinyin_table[697], &pinyin_table[5], &pinyin_table[693], &pinyin_table[364], }, /* zhen ang => zhe nang */ + { &pinyin_table[697], &pinyin_table[6], &pinyin_table[693], &pinyin_table[365], }, /* zhen ao => zhe nao */ + { &pinyin_table[697], &pinyin_table[128], &pinyin_table[693], &pinyin_table[366], }, /* zhen e => zhe ne */ + { &pinyin_table[697], &pinyin_table[129], &pinyin_table[693], &pinyin_table[368], }, /* zhen ei => zhe nei */ + { &pinyin_table[698], &pinyin_table[2], &pinyin_table[697], &pinyin_table[163], }, /* zheng ai => zhen gai */ + { &pinyin_table[698], &pinyin_table[4], &pinyin_table[697], &pinyin_table[165], }, /* zheng an => zhen gan */ + { &pinyin_table[698], &pinyin_table[5], &pinyin_table[697], &pinyin_table[166], }, /* zheng ang => zhen gang */ + { &pinyin_table[698], &pinyin_table[6], &pinyin_table[697], &pinyin_table[167], }, /* zheng ao => zhen gao */ + { &pinyin_table[698], &pinyin_table[128], &pinyin_table[697], &pinyin_table[168], }, /* zheng e => zhen ge */ + { &pinyin_table[698], &pinyin_table[129], &pinyin_table[697], &pinyin_table[170], }, /* zheng ei => zhen gei */ + { &pinyin_table[698], &pinyin_table[130], &pinyin_table[697], &pinyin_table[172], }, /* zheng en => zhen gen */ + { &pinyin_table[698], &pinyin_table[402], &pinyin_table[697], &pinyin_table[178], }, /* zheng ou => zhen gou */ + { &pinyin_table[710], &pinyin_table[6], &pinyin_table[706], &pinyin_table[365], }, /* zhuan ao => zhua nao */ + { &pinyin_table[710], &pinyin_table[128], &pinyin_table[706], &pinyin_table[366], }, /* zhuan e => zhua ne */ + { &pinyin_table[710], &pinyin_table[129], &pinyin_table[706], &pinyin_table[368], }, /* zhuan ei => zhua nei */ + { &pinyin_table[711], &pinyin_table[2], &pinyin_table[710], &pinyin_table[163], }, /* zhuang ai => zhuan gai */ + { &pinyin_table[711], &pinyin_table[4], &pinyin_table[710], &pinyin_table[165], }, /* zhuang an => zhuan gan */ + { &pinyin_table[711], &pinyin_table[5], &pinyin_table[710], &pinyin_table[166], }, /* zhuang ang => zhuan gang */ + { &pinyin_table[711], &pinyin_table[6], &pinyin_table[710], &pinyin_table[167], }, /* zhuang ao => zhuan gao */ + { &pinyin_table[711], &pinyin_table[128], &pinyin_table[710], &pinyin_table[168], }, /* zhuang e => zhuan ge */ + { &pinyin_table[711], &pinyin_table[129], &pinyin_table[710], &pinyin_table[170], }, /* zhuang ei => zhuan gei */ + { &pinyin_table[711], &pinyin_table[130], &pinyin_table[710], &pinyin_table[172], }, /* zhuang en => zhuan gen */ + { &pinyin_table[711], &pinyin_table[402], &pinyin_table[710], &pinyin_table[178], }, /* zhuang ou => zhuan gou */ + { &pinyin_table[715], &pinyin_table[0], &pinyin_table[705], &pinyin_table[359], }, /* zhun a => zhu na */ + { &pinyin_table[715], &pinyin_table[4], &pinyin_table[705], &pinyin_table[363], }, /* zhun an => zhu nan */ + { &pinyin_table[715], &pinyin_table[5], &pinyin_table[705], &pinyin_table[364], }, /* zhun ang => zhu nang */ + { &pinyin_table[715], &pinyin_table[6], &pinyin_table[705], &pinyin_table[365], }, /* zhun ao => zhu nao */ + { &pinyin_table[715], &pinyin_table[128], &pinyin_table[705], &pinyin_table[366], }, /* zhun e => zhu ne */ + { &pinyin_table[715], &pinyin_table[129], &pinyin_table[705], &pinyin_table[368], }, /* zhun ei => zhu nei */ + { &pinyin_table[727], &pinyin_table[0], &pinyin_table[726], &pinyin_table[161], }, /* zuang a => zuan ga */ + { &pinyin_table[727], &pinyin_table[2], &pinyin_table[726], &pinyin_table[163], }, /* zuang ai => zuan gai */ + { &pinyin_table[727], &pinyin_table[4], &pinyin_table[726], &pinyin_table[165], }, /* zuang an => zuan gan */ + { &pinyin_table[727], &pinyin_table[5], &pinyin_table[726], &pinyin_table[166], }, /* zuang ang => zuan gang */ + { &pinyin_table[727], &pinyin_table[6], &pinyin_table[726], &pinyin_table[167], }, /* zuang ao => zuan gao */ + { &pinyin_table[727], &pinyin_table[128], &pinyin_table[726], &pinyin_table[168], }, /* zuang e => zuan ge */ + { &pinyin_table[727], &pinyin_table[129], &pinyin_table[726], &pinyin_table[170], }, /* zuang ei => zuan gei */ + { &pinyin_table[727], &pinyin_table[130], &pinyin_table[726], &pinyin_table[172], }, /* zuang en => zuan gen */ + { &pinyin_table[727], &pinyin_table[402], &pinyin_table[726], &pinyin_table[178], }, /* zuang ou => zuan gou */ + { &pinyin_table[731], &pinyin_table[0], &pinyin_table[723], &pinyin_table[359], }, /* zun a => zu na */ + { &pinyin_table[731], &pinyin_table[4], &pinyin_table[723], &pinyin_table[363], }, /* zun an => zu nan */ + { &pinyin_table[731], &pinyin_table[5], &pinyin_table[723], &pinyin_table[364], }, /* zun ang => zu nang */ + { &pinyin_table[731], &pinyin_table[6], &pinyin_table[723], &pinyin_table[365], }, /* zun ao => zu nao */ + { &pinyin_table[731], &pinyin_table[128], &pinyin_table[723], &pinyin_table[366], }, /* zun e => zu ne */ + { &pinyin_table[731], &pinyin_table[129], &pinyin_table[723], &pinyin_table[368], }, /* zun ei => zu nei */ +}; + diff --git a/src/PyZyBopomofo.h b/src/PyZyBopomofo.h deleted file mode 100644 index c376796..0000000 --- a/src/PyZyBopomofo.h +++ /dev/null @@ -1,81 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * Copyright (c) 2010 BYVoid - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_BOPOMOFO_H_ -#define __PYZY_BOPOMOFO_H_ - -#define MAX_BOPOMOFO_LEN (4) - -#define BOPOMOFO_ZERO (0) -#define BOPOMOFO_B (1) -#define BOPOMOFO_P (2) -#define BOPOMOFO_M (3) -#define BOPOMOFO_F (4) -#define BOPOMOFO_D (5) -#define BOPOMOFO_T (6) -#define BOPOMOFO_N (7) -#define BOPOMOFO_L (8) -#define BOPOMOFO_G (9) -#define BOPOMOFO_K (10) -#define BOPOMOFO_H (11) -#define BOPOMOFO_J (12) -#define BOPOMOFO_Q (13) -#define BOPOMOFO_X (14) -#define BOPOMOFO_ZH (15) -#define BOPOMOFO_CH (16) -#define BOPOMOFO_SH (17) -#define BOPOMOFO_R (18) -#define BOPOMOFO_Z (19) -#define BOPOMOFO_C (20) -#define BOPOMOFO_S (21) -#define BOPOMOFO_I (22) -#define BOPOMOFO_U (23) -#define BOPOMOFO_V (24) -#define BOPOMOFO_A (25) -#define BOPOMOFO_O (26) -#define BOPOMOFO_E (27) -#define BOPOMOFO_E2 (28) -#define BOPOMOFO_AI (29) -#define BOPOMOFO_EI (30) -#define BOPOMOFO_AO (31) -#define BOPOMOFO_OU (32) -#define BOPOMOFO_AN (33) -#define BOPOMOFO_EN (34) -#define BOPOMOFO_ANG (35) -#define BOPOMOFO_ENG (36) -#define BOPOMOFO_ER (37) -#define BOPOMOFO_TONE_2 (38) -#define BOPOMOFO_TONE_3 (39) -#define BOPOMOFO_TONE_4 (40) -#define BOPOMOFO_TONE_5 (41) - -const static wchar_t bopomofo_char[] = { - L'\0', L'ㄅ', L'ㄆ', L'ㄇ', L'ㄈ', L'ㄉ', L'ㄊ', L'ㄋ', L'ㄌ', L'ㄍ', L'ㄎ', - L'ㄏ', L'ㄐ', L'ㄑ', L'ㄒ', L'ㄓ', L'ㄔ', L'ㄕ', L'ㄖ', L'ㄗ', L'ㄘ', L'ㄙ', - - L'ㄧ', L'ㄨ', L'ㄩ', L'ㄚ', L'ㄛ', L'ㄜ', L'ㄝ', L'ㄞ', L'ㄟ', L'ㄠ', L'ㄡ', - L'ㄢ', L'ㄣ', L'ㄤ', L'ㄥ', L'ㄦ', - - L'ˊ', L'ˇ', L'ˋ', L'˙', -}; - -#endif /* __PYZY_BOPOMOFO_H_ */ diff --git a/src/PyZyBopomofoContext.cc b/src/PyZyBopomofoContext.cc deleted file mode 100644 index d1fa762..0000000 --- a/src/PyZyBopomofoContext.cc +++ /dev/null @@ -1,504 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * Copyright (c) 2010 BYVoid - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#include "PyZyBopomofoContext.h" -#include "PyZyConfig.h" -#include "PyZySimpTradConverter.h" -#include "PyZyPinyinParser.h" - -namespace PyZy { -#include "PyZyBopomofoKeyboard.h" - -const static char * bopomofo_select_keys[] = { - "1234567890", - "asdfghjkl;", - "1qaz2wsxed", - "asdfzxcvgb", - "1234qweras", - "aoeu;qjkix", - "aoeuhtnsid", - "aoeuidhtns", - "qweasdzxcr" -}; - -BopomofoContext::BopomofoContext (PhoneticContext::Observer *observer) - : PhoneticContext (observer), - m_bopomofo_schema (BOPOMOFO_KEYBOARD_STANDARD) -{ -} - -BopomofoContext::~BopomofoContext (void) -{ -} - -bool -BopomofoContext::insert (char ch) -{ - if (keyvalToBopomofo (ch) == BOPOMOFO_ZERO) { - return false; - } - - /* is full */ - if (G_UNLIKELY (m_text.length () >= MAX_PINYIN_LEN)) - return true; - - m_text.insert (m_cursor++, ch); - updateInputText (); - updateCursor (); - - if (G_UNLIKELY (!(m_config.option & PINYIN_INCOMPLETE_PINYIN))) { - updateSpecialPhrases (); - updatePinyin (); - } - else if (G_LIKELY (m_cursor <= m_pinyin_len + 2)) { - updateSpecialPhrases (); - updatePinyin (); - } - else { - if (updateSpecialPhrases ()) { - update (); - } - else { - updatePreeditText (); - updateAuxiliaryText (); - } - } - - return true; -} - -bool -BopomofoContext::removeCharBefore (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - m_cursor --; - m_text.erase (m_cursor, 1); - updateInputText (); - updateCursor (); - updateSpecialPhrases (); - updatePinyin (); - - return true; -} - -bool -BopomofoContext::removeCharAfter (void) -{ - if (G_UNLIKELY (m_cursor == m_text.length ())) - return false; - - m_text.erase (m_cursor, 1); - updateInputText (); - updatePreeditText (); - updateAuxiliaryText (); - - return true; -} - -bool -BopomofoContext::removeWordBefore (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - size_t cursor; - - if (G_UNLIKELY (m_cursor > m_pinyin_len)) { - cursor = m_pinyin_len; - } - else { - const Pinyin & p = *m_pinyin.back (); - cursor = m_cursor - p.len; - m_pinyin_len -= p.len; - m_pinyin.pop_back (); - } - - m_text.erase (cursor, m_cursor - cursor); - m_cursor = cursor; - updateInputText (); - updateCursor (); - updateSpecialPhrases (); - updatePhraseEditor (); - update (); - return true; -} - -bool -BopomofoContext::removeWordAfter (void) -{ - if (G_UNLIKELY (m_cursor == m_text.length ())) - return false; - - m_text.erase (m_cursor, -1); - updateInputText (); - updatePreeditText (); - updateAuxiliaryText (); - return true; -} - -bool -BopomofoContext::moveCursorLeft (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - m_cursor --; - updateCursor (); - updateSpecialPhrases (); - updatePinyin (); - - return true; -} - -bool -BopomofoContext::moveCursorRight (void) -{ - if (G_UNLIKELY (m_cursor == m_text.length ())) - return false; - - m_cursor ++; - updateCursor (); - updateSpecialPhrases (); - updatePinyin (); - - return true; -} - -bool -BopomofoContext::moveCursorLeftByWord (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - if (G_UNLIKELY (m_cursor > m_pinyin_len)) { - m_cursor = m_pinyin_len; - return true; - } - - const Pinyin & p = *m_pinyin.back (); - m_cursor -= p.len; - m_pinyin_len -= p.len; - m_pinyin.pop_back (); - - updateCursor (); - updateSpecialPhrases (); - updatePhraseEditor (); - update (); - - return true; -} - -bool -BopomofoContext::moveCursorRightByWord (void) -{ - return moveCursorToEnd (); -} - -bool -BopomofoContext::moveCursorToBegin (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - m_cursor = 0; - m_pinyin.clear (); - m_pinyin_len = 0; - - updateCursor (); - updateSpecialPhrases (); - updatePhraseEditor (); - update (); - - return true; -} - -bool -BopomofoContext::moveCursorToEnd (void) -{ - if (G_UNLIKELY (m_cursor == m_text.length ())) - return false; - - m_cursor = m_text.length (); - updateCursor (); - updateSpecialPhrases (); - updatePinyin (); - - return true; -} - -void -BopomofoContext::updatePinyin (void) -{ - if (G_UNLIKELY (m_text.empty ())) { - m_pinyin.clear (); - m_pinyin_len = 0; - } - else { - std::wstring bopomofo; - for(String::iterator i = m_text.begin (); i != m_text.end (); ++i) { - bopomofo += bopomofo_char[keyvalToBopomofo (*i)]; - } - - m_pinyin_len = PinyinParser::parseBopomofo ( - bopomofo, // bopomofo - m_cursor, // text length - m_config.option, // option - m_pinyin, // result - MAX_PHRASE_LEN); // max result length - } - - updatePhraseEditor (); - update (); -} - -void -BopomofoContext::updateAuxiliaryText (void) -{ - if (G_UNLIKELY (m_text.empty () || !hasCandidate (0))) { - m_auxiliary_text = ""; - PhoneticContext::updateAuxiliaryText (); - return; - } - - m_buffer.clear (); - - if (m_selected_special_phrase.empty ()) { - size_t si = 0; - size_t m_text_len = m_text.length(); - for (size_t i = m_phrase_editor.cursor (); i < m_pinyin.size (); ++i) { - if (G_LIKELY (i != m_phrase_editor.cursor ())) - m_buffer << ','; - m_buffer << (unichar *)m_pinyin[i]->bopomofo; - for (size_t sj = 0; m_pinyin[i]->bopomofo[sj] == bopomofo_char[keyvalToBopomofo(m_text.c_str()[si])] ; si++,sj++); - - if (si < m_text_len) { - int ch = keyvalToBopomofo(m_text.c_str()[si]); - if (ch >= BOPOMOFO_TONE_2 && ch <= BOPOMOFO_TONE_5) { - m_buffer.appendUnichar(bopomofo_char[ch]); - ++si; - } - } - } - - for (String::iterator i = m_text.begin () + m_pinyin_len; i != m_text.end (); i++) { - if (m_cursor == (size_t)(i - m_text.begin ())) - m_buffer << '|'; - m_buffer.appendUnichar (bopomofo_char[keyvalToBopomofo (*i)]); - } - if (m_cursor == m_text.length ()) - m_buffer << '|'; - } - else { - if (m_cursor < m_text.size ()) { - m_buffer << '|' << textAfterCursor (); - } - } - - m_auxiliary_text = m_buffer; - PhoneticContext::updateAuxiliaryText (); -} - -void -BopomofoContext::commit (CommitType type) -{ - if (G_UNLIKELY (m_buffer.empty ())) - return; - - m_buffer.clear (); - - if (G_LIKELY (type == TYPE_CONVERTED)) { - m_buffer << m_phrase_editor.selectedString (); - - const char *p; - - if (m_selected_special_phrase.empty ()) { - p = textAfterPinyin (m_buffer.utf8Length ()); - } - else { - m_buffer << m_selected_special_phrase; - p = textAfterCursor (); - } - - while (*p != '\0') { - m_buffer.appendUnichar ((unichar)bopomofo_char[keyvalToBopomofo (*p++)]); - } - - m_phrase_editor.commit (); - } - else if (type == TYPE_PHONETIC) { - const char *p = m_text; - while (*p != '\0') { - m_buffer.appendUnichar ((unichar)bopomofo_char[keyvalToBopomofo (*p++)]); - } - } else { - m_buffer = m_text; - m_phrase_editor.reset (); - } - - resetContext (); - updateInputText (); - updateCursor (); - update (); - PhoneticContext::commitText (m_buffer); -} - -void -BopomofoContext::updatePreeditText (void) -{ - /* preedit text = selected phrases + highlight candidate + rest text */ - if (G_UNLIKELY (m_phrase_editor.empty () && m_text.empty ())) { - m_preedit_text.clear (); - PhoneticContext::updatePreeditText (); - return; - } - - size_t edit_begin_word = 0; - size_t edit_end_word = 0; - size_t edit_begin_byte = 0; - size_t edit_end_byte = 0; - - m_buffer.clear (); - m_preedit_text.clear (); - - /* add selected phrases */ - m_buffer << m_phrase_editor.selectedString (); - - if (G_UNLIKELY (! m_selected_special_phrase.empty ())) { - /* add selected special phrase */ - m_buffer << m_selected_special_phrase; - edit_begin_word = edit_end_word = m_buffer.utf8Length (); - edit_begin_byte = edit_end_byte = m_buffer.size (); - - /* append text after cursor */ - m_buffer << textAfterCursor (); - } - else { - edit_begin_word = m_buffer.utf8Length (); - edit_begin_byte = m_buffer.size (); - - if (hasCandidate (0)) { - size_t index = m_focused_candidate; - - if (index < m_special_phrases.size ()) { - m_buffer << m_special_phrases[index].c_str (); - edit_end_word = m_buffer.utf8Length (); - edit_end_byte = m_buffer.size (); - - /* append text after cursor */ - m_buffer << textAfterCursor (); - } - else { - const Phrase & candidate = m_phrase_editor.candidate (index - m_special_phrases.size ()); - if (m_text.size () == m_cursor) { - /* cursor at end */ - if (m_config.modeSimp) - m_buffer << candidate; - else - SimpTradConverter::simpToTrad (candidate, m_buffer); - edit_end_word = m_buffer.utf8Length (); - edit_end_byte = m_buffer.size (); - /* append rest text */ - for (const char *p=m_text.c_str() + m_pinyin_len; *p ;++p) { - m_buffer.appendUnichar(bopomofo_char[keyvalToBopomofo(*p)]); - } - } - else { - for (const char *p = m_text.c_str (); *p; ++p) { - if ((size_t) (p - m_text.c_str ()) == m_cursor) - m_buffer << ' '; - m_buffer.appendUnichar (bopomofo_char[keyvalToBopomofo (*p)]); - } - edit_end_word = m_buffer.utf8Length (); - edit_end_byte = m_buffer.size (); - } - } - } - else { - edit_end_word = m_buffer.utf8Length (); - edit_end_byte = m_buffer.size (); - for (const char *p=m_text.c_str () + m_pinyin_len; *p ; ++p) { - m_buffer.appendUnichar (bopomofo_char[keyvalToBopomofo (*p)]); - } - } - } - - m_preedit_text.selected_text = m_buffer.substr (0, edit_begin_byte); - m_preedit_text.candidate_text = m_buffer.substr (edit_begin_byte, edit_end_byte - edit_begin_byte); - m_preedit_text.rest_text = m_buffer.substr (edit_end_byte); - - PhoneticContext::updatePreeditText (); -} - -Variant -BopomofoContext::getProperty (PropertyName name) const -{ - if (name == PROPERTY_BOPOMOFO_SCHEMA) { - return Variant::fromUnsignedInt(m_bopomofo_schema); - } - return PhoneticContext::getProperty (name); -} - -bool -BopomofoContext::setProperty (PropertyName name, const Variant &variant) -{ - if (name == PROPERTY_BOPOMOFO_SCHEMA) { - if (variant.getType () != Variant::TYPE_UNSIGNED_INT) { - return false; - } - const unsigned int schema = variant.getUnsignedInt (); - if (schema >= BOPOMOFO_KEYBOARD_LAST) { - return false; - } - - m_bopomofo_schema = schema; - return true; - } - - return PhoneticContext::setProperty (name, variant); -} - -static int -keyboard_cmp (const void * p1, const void * p2) -{ - const int s1 = GPOINTER_TO_INT (p1); - const unsigned char *s2 = (const unsigned char *) p2; - return s1 - s2[0]; -} - -int -BopomofoContext::keyvalToBopomofo(int ch) -{ - const unsigned int keyboard = m_bopomofo_schema; - const unsigned char *brs; - brs = (const unsigned char *) std::bsearch (GINT_TO_POINTER (ch), - bopomofo_keyboard[keyboard], - G_N_ELEMENTS (bopomofo_keyboard[keyboard]), - sizeof(bopomofo_keyboard[keyboard][0]), - keyboard_cmp); - if (G_UNLIKELY (brs == NULL)) - return BOPOMOFO_ZERO; - return brs[1]; -} - -}; // namespace PyZy diff --git a/src/PyZyBopomofoContext.h b/src/PyZyBopomofoContext.h deleted file mode 100644 index e329375..0000000 --- a/src/PyZyBopomofoContext.h +++ /dev/null @@ -1,70 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * Copyright (c) 2010 BYVoid - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_BOPOMOFO_CONTEXT_H_ -#define __PYZY_BOPOMOFO_CONTEXT_H_ - -#include "PyZyPhoneticContext.h" - -namespace PyZy { - -class BopomofoContext : public PhoneticContext { - -public: - explicit BopomofoContext (PhoneticContext::Observer *observer); - virtual ~BopomofoContext (void); - - /* API of InputContext */ - virtual bool insert (char ch); - virtual void commit (CommitType type); - - virtual bool removeCharBefore (void); - virtual bool removeCharAfter (void); - virtual bool removeWordBefore (void); - virtual bool removeWordAfter (void); - - virtual bool moveCursorLeft (void); - virtual bool moveCursorRight (void); - virtual bool moveCursorLeftByWord (void); - virtual bool moveCursorRightByWord (void); - virtual bool moveCursorToBegin (void); - virtual bool moveCursorToEnd (void); - - virtual Variant getProperty (PropertyName name) const; - virtual bool setProperty (PropertyName name, const Variant &variant); - -protected: - virtual void updateAuxiliaryText (); - virtual void updatePinyin (); - virtual void updatePreeditText (); - - bool processBopomofo ( - unsigned int keyval, unsigned int keycode, unsigned int modifiers); - int keyvalToBopomofo(int ch); - -private: - unsigned int m_bopomofo_schema; -}; - -}; - -#endif // __PYZY_BOPOMOFO_CONTEXT_H_ diff --git a/src/PyZyBopomofoKeyboard.h b/src/PyZyBopomofoKeyboard.h deleted file mode 100644 index 3384ba6..0000000 --- a/src/PyZyBopomofoKeyboard.h +++ /dev/null @@ -1,204 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * Copyright (c) 2010 BYVoid - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_BOPOMOFO_KEYBOARD_H_ -#define __PYZY_BOPOMOFO_KEYBOARD_H_ - -#include "PyZyBopomofo.h" - -static const unsigned char -bopomofo_keyboard[][41][2] = { - { - { ',' , BOPOMOFO_E2 }, - { '-' , BOPOMOFO_ER }, - { '.' , BOPOMOFO_OU }, - { '/' , BOPOMOFO_ENG }, - { '0' , BOPOMOFO_AN }, - { '1' , BOPOMOFO_B }, - { '2' , BOPOMOFO_D }, - { '3' , BOPOMOFO_TONE_3 }, - { '4' , BOPOMOFO_TONE_4 }, - { '5' , BOPOMOFO_ZH }, - { '6' , BOPOMOFO_TONE_2 }, - { '7' , BOPOMOFO_TONE_5 }, - { '8' , BOPOMOFO_A }, - { '9' , BOPOMOFO_AI }, - { ';' , BOPOMOFO_ANG }, - { 'a' , BOPOMOFO_M }, - { 'b' , BOPOMOFO_R }, - { 'c' , BOPOMOFO_H }, - { 'd' , BOPOMOFO_K }, - { 'e' , BOPOMOFO_G }, - { 'f' , BOPOMOFO_Q }, - { 'g' , BOPOMOFO_SH }, - { 'h' , BOPOMOFO_C }, - { 'i' , BOPOMOFO_O }, - { 'j' , BOPOMOFO_U }, - { 'k' , BOPOMOFO_E }, - { 'l' , BOPOMOFO_AO }, - { 'm' , BOPOMOFO_V }, - { 'n' , BOPOMOFO_S }, - { 'o' , BOPOMOFO_EI }, - { 'p' , BOPOMOFO_EN }, - { 'q' , BOPOMOFO_P }, - { 'r' , BOPOMOFO_J }, - { 's' , BOPOMOFO_N }, - { 't' , BOPOMOFO_CH }, - { 'u' , BOPOMOFO_I }, - { 'v' , BOPOMOFO_X }, - { 'w' , BOPOMOFO_T }, - { 'x' , BOPOMOFO_L }, - { 'y' , BOPOMOFO_Z }, - { 'z' , BOPOMOFO_F }, - }, - { - { '\'', BOPOMOFO_V }, - { ',' , BOPOMOFO_E2 }, - { '-' , BOPOMOFO_I }, - { '.' , BOPOMOFO_OU }, - { '/' , BOPOMOFO_ENG }, - { '0' , BOPOMOFO_AN }, - { '1' , BOPOMOFO_TONE_5 }, - { '2' , BOPOMOFO_B }, - { '3' , BOPOMOFO_D }, - { '6' , BOPOMOFO_ZH }, - { '8' , BOPOMOFO_A }, - { '9' , BOPOMOFO_AI }, - { ';' , BOPOMOFO_ANG }, - { '=' , BOPOMOFO_ER }, - { '[' , BOPOMOFO_U }, - { 'a' , BOPOMOFO_TONE_3 }, - { 'b' , BOPOMOFO_X }, - { 'c' , BOPOMOFO_L }, - { 'd' , BOPOMOFO_N }, - { 'e' , BOPOMOFO_T }, - { 'f' , BOPOMOFO_K }, - { 'g' , BOPOMOFO_Q }, - { 'h' , BOPOMOFO_SH }, - { 'i' , BOPOMOFO_O }, - { 'j' , BOPOMOFO_C }, - { 'k' , BOPOMOFO_E }, - { 'l' , BOPOMOFO_AO }, - { 'm' , BOPOMOFO_S }, - { 'n' , BOPOMOFO_R }, - { 'o' , BOPOMOFO_EI }, - { 'p' , BOPOMOFO_EN }, - { 'q' , BOPOMOFO_TONE_2 }, - { 'r' , BOPOMOFO_G }, - { 's' , BOPOMOFO_M }, - { 't' , BOPOMOFO_J }, - { 'u' , BOPOMOFO_Z }, - { 'v' , BOPOMOFO_H }, - { 'w' , BOPOMOFO_P }, - { 'x' , BOPOMOFO_F }, - { 'y' , BOPOMOFO_CH }, - { 'z' , BOPOMOFO_TONE_4 }, - }, - { - { '\'', BOPOMOFO_C }, - { ',' , BOPOMOFO_ZH }, - { '-' , BOPOMOFO_ENG }, - { '.' , BOPOMOFO_CH }, - { '/' , BOPOMOFO_SH }, - { '0' , BOPOMOFO_ANG }, - { '1' , BOPOMOFO_TONE_5 }, - { '2' , BOPOMOFO_TONE_2 }, - { '3' , BOPOMOFO_TONE_3 }, - { '4' , BOPOMOFO_TONE_4 }, - { '7' , BOPOMOFO_Q }, - { '8' , BOPOMOFO_AN }, - { '9' , BOPOMOFO_EN }, - { ';' , BOPOMOFO_Z }, - { '=' , BOPOMOFO_ER }, - { 'a' , BOPOMOFO_A }, - { 'b' , BOPOMOFO_B }, - { 'c' , BOPOMOFO_X }, - { 'd' , BOPOMOFO_D }, - { 'e' , BOPOMOFO_I }, - { 'f' , BOPOMOFO_F }, - { 'g' , BOPOMOFO_J }, - { 'h' , BOPOMOFO_H }, - { 'i' , BOPOMOFO_AI }, - { 'j' , BOPOMOFO_R }, - { 'k' , BOPOMOFO_K }, - { 'l' , BOPOMOFO_L }, - { 'm' , BOPOMOFO_M }, - { 'n' , BOPOMOFO_N }, - { 'o' , BOPOMOFO_O }, - { 'p' , BOPOMOFO_P }, - { 'q' , BOPOMOFO_EI }, - { 'r' , BOPOMOFO_E }, - { 's' , BOPOMOFO_S }, - { 't' , BOPOMOFO_T }, - { 'u' , BOPOMOFO_V }, - { 'v' , BOPOMOFO_G }, - { 'w' , BOPOMOFO_E2 }, - { 'x' , BOPOMOFO_U }, - { 'y' , BOPOMOFO_OU }, - { 'z' , BOPOMOFO_AO }, - }, - { - { ',' , BOPOMOFO_TONE_3 }, - { '-' , BOPOMOFO_H }, - { '.' , BOPOMOFO_TONE_4 }, - { '/' , BOPOMOFO_TONE_5 }, - { '0' , BOPOMOFO_K }, - { '1' , BOPOMOFO_B }, - { '2' , BOPOMOFO_P }, - { '3' , BOPOMOFO_M }, - { '4' , BOPOMOFO_F }, - { '5' , BOPOMOFO_D }, - { '6' , BOPOMOFO_T }, - { '7' , BOPOMOFO_N }, - { '8' , BOPOMOFO_L }, - { '9' , BOPOMOFO_G }, - { ';' , BOPOMOFO_AO }, - { 'a' , BOPOMOFO_I }, - { 'b' , BOPOMOFO_ENG }, - { 'c' , BOPOMOFO_EN }, - { 'd' , BOPOMOFO_V }, - { 'e' , BOPOMOFO_X }, - { 'f' , BOPOMOFO_A }, - { 'g' , BOPOMOFO_O }, - { 'h' , BOPOMOFO_E }, - { 'i' , BOPOMOFO_Z }, - { 'j' , BOPOMOFO_E2 }, - { 'k' , BOPOMOFO_AI }, - { 'l' , BOPOMOFO_EI }, - { 'm' , BOPOMOFO_TONE_2 }, - { 'n' , BOPOMOFO_ER }, - { 'o' , BOPOMOFO_C }, - { 'p' , BOPOMOFO_S }, - { 'q' , BOPOMOFO_J }, - { 'r' , BOPOMOFO_ZH }, - { 's' , BOPOMOFO_U }, - { 't' , BOPOMOFO_CH }, - { 'u' , BOPOMOFO_R }, - { 'v' , BOPOMOFO_ANG }, - { 'w' , BOPOMOFO_Q }, - { 'x' , BOPOMOFO_AN }, - { 'y' , BOPOMOFO_SH }, - { 'z' , BOPOMOFO_OU }, - }, -}; - -#endif // __PYZY_BOPOMOFO_KEYBOARD_H_ diff --git a/src/PyZyConfig.h b/src/PyZyConfig.h deleted file mode 100644 index faffefc..0000000 --- a/src/PyZyConfig.h +++ /dev/null @@ -1,44 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_CONFIG_H_ -#define __PYZY_CONFIG_H_ - -#include "PyZyConst.h" - -namespace PyZy { - -struct Config { - Config (void) - : option (PINYIN_INCOMPLETE_PINYIN | - PINYIN_CORRECT_ALL | - PINYIN_FUZZY_ALL), - specialPhrases (true), - modeSimp (true) { } - - unsigned int option; - bool specialPhrases; - bool modeSimp; -}; - -}; // namespace PyZy - -#endif // __PYZY_CONFIG_H_ diff --git a/src/PyZyConst.h b/src/PyZyConst.h deleted file mode 100644 index d8fb3cc..0000000 --- a/src/PyZyConst.h +++ /dev/null @@ -1,96 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_CONST_H_ -#define __PYZY_CONST_H_ - -/** - * PINYIN_INCOMPLETE_PINYIN - * - * Allows incomplete pinyin. - * If you enable it, you can get a candidate "你好"(nihao) from "nh" - */ -#define PINYIN_INCOMPLETE_PINYIN (1U << 0) - -#define PINYIN_CORRECT_GN_TO_NG (1U << 1) -#define PINYIN_CORRECT_MG_TO_NG (1U << 2) -#define PINYIN_CORRECT_IOU_TO_IU (1U << 3) -#define PINYIN_CORRECT_UEI_TO_UI (1U << 4) -#define PINYIN_CORRECT_UEN_TO_UN (1U << 5) -#define PINYIN_CORRECT_UE_TO_VE (1U << 6) -#define PINYIN_CORRECT_V_TO_U (1U << 7) -#define PINYIN_CORRECT_ON_TO_ONG (1U << 8) - -/** - * PINYIN_CORRECT_ALL - * - * Enables all typo correction rules which are supported by pyzy. - */ -#define PINYIN_CORRECT_ALL (0x000001fe) - -#define PINYIN_FUZZY_C_CH (1U << 9) -#define PINYIN_FUZZY_CH_C (1U << 10) -#define PINYIN_FUZZY_Z_ZH (1U << 11) -#define PINYIN_FUZZY_ZH_Z (1U << 12) -#define PINYIN_FUZZY_S_SH (1U << 13) -#define PINYIN_FUZZY_SH_S (1U << 14) -#define PINYIN_FUZZY_L_N (1U << 15) -#define PINYIN_FUZZY_N_L (1U << 16) -#define PINYIN_FUZZY_F_H (1U << 17) -#define PINYIN_FUZZY_H_F (1U << 18) -#define PINYIN_FUZZY_L_R (1U << 19) -#define PINYIN_FUZZY_R_L (1U << 20) -#define PINYIN_FUZZY_K_G (1U << 21) -#define PINYIN_FUZZY_G_K (1U << 22) - -#define PINYIN_FUZZY_AN_ANG (1U << 23) -#define PINYIN_FUZZY_ANG_AN (1U << 24) -#define PINYIN_FUZZY_EN_ENG (1U << 25) -#define PINYIN_FUZZY_ENG_EN (1U << 26) -#define PINYIN_FUZZY_IN_ING (1U << 27) -#define PINYIN_FUZZY_ING_IN (1U << 28) -#define PINYIN_FUZZY_IAN_IANG PINYIN_FUZZY_AN_ANG -#define PINYIN_FUZZY_IANG_IAN PINYIN_FUZZY_ANG_AN -#define PINYIN_FUZZY_UAN_UANG PINYIN_FUZZY_AN_ANG -#define PINYIN_FUZZY_UANG_UAN PINYIN_FUZZY_ANG_AN - -/** - * PINYIN_CORRECT_ALL - * - * Enables all pinyin correction rules which are supported by pyzy. - */ -#define PINYIN_FUZZY_ALL (0x1ffffe00) - -#define DOUBLE_PINYIN_KEYBOARD_MSPY (0) -#define DOUBLE_PINYIN_KEYBOARD_ZRM (1) -#define DOUBLE_PINYIN_KEYBOARD_ABC (2) -#define DOUBLE_PINYIN_KEYBOARD_ZGPY (3) -#define DOUBLE_PINYIN_KEYBOARD_PYJJ (4) -#define DOUBLE_PINYIN_KEYBOARD_XHE (5) -#define DOUBLE_PINYIN_KEYBOARD_LAST (6) /** Number of DoublePinyinSchema */ - -#define BOPOMOFO_KEYBOARD_STANDARD (0) -#define BOPOMOFO_KEYBOARD_CHING_YEAH (1) -#define BOPOMOFO_KEYBOARD_ETAN (2) -#define BOPOMOFO_KEYBOARD_IBM (3) -#define BOPOMOFO_KEYBOARD_LAST (4) /** Number of BopomofoSchema */ - -#endif // __PYZY_CONST_H_ diff --git a/src/PyZyDatabase.cc b/src/PyZyDatabase.cc deleted file mode 100644 index c9769b2..0000000 --- a/src/PyZyDatabase.cc +++ /dev/null @@ -1,739 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#include "PyZyDatabase.h" -#include -#include -#include -#include "PyZyConfig.h" -#include "PyZyUtil.h" -#include "PyZyPinyinArray.h" - -namespace PyZy { - -#define DB_CACHE_SIZE "5000" -#define DB_INDEX_SIZE (3) -/* define columns */ -#define DB_COLUMN_USER_FREQ (0) -#define DB_COLUMN_PHRASE (1) -#define DB_COLUMN_FREQ (2) -#define DB_COLUMN_S0 (3) - -#define DB_PREFETCH_LEN (6) -#define DB_BACKUP_TIMEOUT (60) - -#define USER_DICTIONARY_FILE "user-1.0.db" - - -std::unique_ptr Database::m_instance; - -class Conditions : public std::vector { -public: - Conditions (void) : std::vector (1) {} - - void double_ (void) { - size_t i = size (); - // To avoid a invalid referece caused by a memory reallocation, which - // may occur on push_back, we call reserve here. - reserve (i * 2); - do { - push_back (at (--i)); - } while (i > 0); - } - - void triple (void) { - size_t i = size (); - // To avoid a invalid referece caused by a memory reallocation, which - // may occur on push_back, we call reserve here. - reserve (i * 3); - do { - const std::string & value = at (--i); - push_back (value); - push_back (value); - } while (i > 0); - } - - void appendVPrintf (size_t begin, size_t end, const char *fmt, va_list args) { - char str[64]; - g_vsnprintf (str, sizeof(str), fmt, args); - for (size_t i = begin; i < end; i++) { - at (i) += str; - } - } - - void appendPrintf (size_t begin, size_t end, const char *fmt, ...) { - va_list args; - va_start (args, fmt); - appendVPrintf (begin, end, fmt, args); - va_end (args); - } -}; - -class SQLStmt { -public: - SQLStmt (sqlite3 *db) - : m_db (db), m_stmt (NULL) { - g_assert (m_db != NULL); - } - - ~SQLStmt () { - if (m_stmt != NULL) { - if (sqlite3_finalize (m_stmt) != SQLITE_OK) { - g_warning ("destroy sqlite stmt failed!"); - } - } - } - - bool prepare (const String &sql) { - if (sqlite3_prepare (m_db, - sql.c_str (), - sql.size (), - &m_stmt, - NULL) != SQLITE_OK) { - g_warning ("parse sql failed!\n %s", sql.c_str ()); - return false; - } - - return true; - } - - bool step (void) { - switch (sqlite3_step (m_stmt)) { - case SQLITE_ROW: - return true; - case SQLITE_DONE: - return false; - default: - g_warning ("sqlites step error!"); - return false; - } - } - - const char *columnText (int col) { - return (const char *) sqlite3_column_text (m_stmt, col); - } - - int columnInt (int col) { - return sqlite3_column_int (m_stmt, col); - } - -private: - sqlite3 *m_db; - sqlite3_stmt *m_stmt; -}; - -Query::Query (const PinyinArray & pinyin, - size_t pinyin_begin, - size_t pinyin_len, - unsigned int option) - : m_pinyin (pinyin), - m_pinyin_begin (pinyin_begin), - m_pinyin_len (pinyin_len), - m_option (option) -{ - g_assert (m_pinyin.size () >= pinyin_begin + pinyin_len); -} - -Query::~Query (void) -{ -} - -int -Query::fill (PhraseArray &phrases, int count) -{ - int row = 0; - - while (m_pinyin_len > 0) { - if (G_LIKELY (m_stmt.get () == NULL)) { - m_stmt = Database::instance ().query (m_pinyin, m_pinyin_begin, m_pinyin_len, -1, m_option); - g_assert (m_stmt.get () != NULL); - } - - while (m_stmt->step ()) { - Phrase phrase; - - g_strlcpy (phrase.phrase, - m_stmt->columnText (DB_COLUMN_PHRASE), - sizeof (phrase.phrase)); - phrase.freq = m_stmt->columnInt (DB_COLUMN_FREQ); - phrase.user_freq = m_stmt->columnInt (DB_COLUMN_USER_FREQ); - phrase.len = m_pinyin_len; - - for (size_t i = 0, column = DB_COLUMN_S0; i < m_pinyin_len; i++) { - phrase.pinyin_id[i].sheng = m_stmt->columnInt (column++); - phrase.pinyin_id[i].yun = m_stmt->columnInt (column++); - } - - phrases.push_back (phrase); - row ++; - if (G_UNLIKELY (row == count)) { - return row; - } - } - - m_stmt.reset (); - m_pinyin_len --; - } - - return row; -} - -Database::Database (const std::string &user_data_dir) - : m_db (NULL) - , m_timeout_id (0) - , m_timer (g_timer_new ()) - , m_user_data_dir (user_data_dir) -{ - open (); -} - -Database::~Database (void) -{ - g_timer_destroy (m_timer); - if (m_timeout_id != 0) { - saveUserDB (); - g_source_remove (m_timeout_id); - } - if (m_db) { - if (sqlite3_close (m_db) != SQLITE_OK) { - g_warning ("close sqlite database failed!"); - } - } -} - -inline bool -Database::executeSQL (const char *sql, sqlite3 *db) -{ - if (db == NULL) - db = m_db; - - char *errmsg = NULL; - if (sqlite3_exec (db, sql, NULL, NULL, &errmsg) != SQLITE_OK) { - g_warning ("%s: %s", errmsg, sql); - sqlite3_free (errmsg); - return false; - } - return true; -} - -bool -Database::open (void) -{ - do { -#if (SQLITE_VERSION_NUMBER >= 3006000) - sqlite3_initialize (); -#endif - static const char * maindb [] = { - PKGDATADIR"/db/local.db", - PKGDATADIR"/db/open-phrase.db", - PKGDATADIR"/db/android.db", - "main.db", - }; - - size_t i; - for (i = 0; i < G_N_ELEMENTS (maindb); i++) { - if (!g_file_test(maindb[i], G_FILE_TEST_IS_REGULAR)) - continue; - if (sqlite3_open_v2 (maindb[i], &m_db, - SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL) == SQLITE_OK) { - break; - } - } - - if (i == G_N_ELEMENTS (maindb)) { - g_warning ("can not open main database"); - break; - } - - m_sql.clear (); - - /* Set synchronous=OFF, write user database will become much faster. - * It will cause user database corrupted, if the operatering system - * crashes or computer loses power. - * */ - m_sql << "PRAGMA synchronous=OFF;\n"; - - /* Set the cache size for better performance */ - m_sql << "PRAGMA cache_size=" DB_CACHE_SIZE ";\n"; - - /* Using memory for temp store */ - // m_sql << "PRAGMA temp_store=MEMORY;\n"; - - /* Set journal mode */ - // m_sql << "PRAGMA journal_mode=PERSIST;\n"; - - /* Using EXCLUSIVE locking mode on databases - * for better performance */ - m_sql << "PRAGMA locking_mode=EXCLUSIVE;\n"; - if (!executeSQL (m_sql)) - break; - - loadUserDB (); -#if 0 - /* Attach user database */ - - g_mkdir_with_parents (m_user_data_dir, 0750); - m_buffer.clear (); - m_buffer << m_user_data_dir << G_DIR_SEPARATOR_S << USER_DICTIONARY_FILE; - - retval = openUserDB (m_buffer); - if (!retval) { - g_warning ("Can not open user database %s", m_buffer.c_str ()); - if (!openUserDB (":memory:")) - goto _failed; - } -#endif - - /* prefetch some tables */ - // prefetch (); - - return true; - } while (0); - - if (m_db) { - sqlite3_close (m_db); - m_db = NULL; - } - return false; -} - -bool -Database::loadUserDB (void) -{ - sqlite3 *userdb = NULL; - do { - /* Attach user database */ - m_sql.printf ("ATTACH DATABASE \":memory:\" AS userdb;"); - if (!executeSQL (m_sql)) - break; - - g_mkdir_with_parents (m_user_data_dir, 0750); - m_buffer.clear (); - m_buffer << m_user_data_dir << G_DIR_SEPARATOR_S << USER_DICTIONARY_FILE; - - unsigned int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE; - if (sqlite3_open_v2 (m_buffer, &userdb, flags, NULL) != SQLITE_OK && - sqlite3_open_v2 (":memory:", &userdb, flags, NULL) != SQLITE_OK) - break; - - m_sql = "BEGIN TRANSACTION;\n"; - /* create desc table*/ - m_sql << "CREATE TABLE IF NOT EXISTS desc (name PRIMARY KEY, value TEXT);\n"; - m_sql << "INSERT OR IGNORE INTO desc VALUES " << "('version', '1.2.0');\n" - << "INSERT OR IGNORE INTO desc VALUES " << "('uuid', '" << UUID () << "');\n" - << "INSERT OR IGNORE INTO desc VALUES " << "('hostname', '" << Hostname () << "');\n" - << "INSERT OR IGNORE INTO desc VALUES " << "('username', '" << Env ("USERNAME") << "');\n" - << "INSERT OR IGNORE INTO desc VALUES " << "('create-time', datetime());\n" - << "INSERT OR IGNORE INTO desc VALUES " << "('attach-time', datetime());\n"; - - /* create phrase tables */ - for (size_t i = 0; i < MAX_PHRASE_LEN; i++) { - m_sql.appendPrintf ("CREATE TABLE IF NOT EXISTS py_phrase_%d (user_freq, phrase TEXT, freq INTEGER ", i); - for (size_t j = 0; j <= i; j++) - m_sql.appendPrintf (",s%d INTEGER, y%d INTEGER", j, j); - m_sql << ");\n"; - } - - /* create index */ - m_sql << "CREATE UNIQUE INDEX IF NOT EXISTS " << "index_0_0 ON py_phrase_0(s0,y0,phrase);\n"; - m_sql << "CREATE UNIQUE INDEX IF NOT EXISTS " << "index_1_0 ON py_phrase_1(s0,y0,s1,y1,phrase);\n"; - m_sql << "CREATE INDEX IF NOT EXISTS " << "index_1_1 ON py_phrase_1(s0,s1,y1);\n"; - for (size_t i = 2; i < MAX_PHRASE_LEN; i++) { - m_sql << "CREATE UNIQUE INDEX IF NOT EXISTS " << "index_" << i << "_0 ON py_phrase_" << i - << "(s0,y0"; - for (size_t j = 1; j <= i; j++) - m_sql << ",s" << j << ",y" << j; - m_sql << ",phrase);\n"; - m_sql << "CREATE INDEX IF NOT EXISTS " << "index_" << i << "_1 ON py_phrase_" << i << "(s0,s1,s2,y2);\n"; - } - m_sql << "COMMIT;"; - - if (!executeSQL (m_sql, userdb)) - break; - - sqlite3_backup *backup = sqlite3_backup_init (m_db, "userdb", userdb, "main"); - - if (backup) { - sqlite3_backup_step (backup, -1); - sqlite3_backup_finish (backup); - } - - sqlite3_close (userdb); - return true; - } while (0); - - if (userdb) - sqlite3_close (userdb); - return false; -} - -bool -Database::saveUserDB (void) -{ - g_mkdir_with_parents (m_user_data_dir, 0750); - m_buffer.clear (); - m_buffer << m_user_data_dir << G_DIR_SEPARATOR_S << USER_DICTIONARY_FILE; - - String tmpfile = m_buffer + "-tmp"; - sqlite3 *userdb = NULL; - do { - /* remove tmpfile if it exist */ - g_unlink (tmpfile); - - unsigned int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE; - if (sqlite3_open_v2 (tmpfile, &userdb, flags, NULL) != SQLITE_OK) - break; - - sqlite3_backup *backup = sqlite3_backup_init (userdb, "main", m_db, "userdb"); - - if (backup == NULL) - break; - - sqlite3_backup_step (backup, -1); - sqlite3_backup_finish (backup); - sqlite3_close (userdb); - - g_rename (tmpfile, m_buffer); - - return true; - } while (0); - - if (userdb != NULL) - sqlite3_close (userdb); - g_unlink (tmpfile); - - return false; -} - -void -Database::prefetch (void) -{ - m_sql.clear (); - for (size_t i = 0; i < DB_PREFETCH_LEN; i++) - m_sql << "SELECT * FROM py_phrase_" << i << ";\n"; - - // g_debug ("prefetching ..."); - executeSQL (m_sql); - // g_debug ("done"); -} - -// This function should be return gboolean because g_timeout_add_seconds requires it. -gboolean -Database::timeoutCallback (void * data) -{ - Database *self = static_cast (data); - - /* Get elapsed time since last modification of database. */ - unsigned int elapsed = (unsigned int)g_timer_elapsed (self->m_timer, NULL); - - if (elapsed >= DB_BACKUP_TIMEOUT && - self->saveUserDB ()) { - self->m_timeout_id = 0; - return false; - } - - return true; -} - -void -Database::modified (void) -{ - /* Restart the timer */ - g_timer_start (m_timer); - - if (m_timeout_id != 0) - return; - - m_timeout_id = g_timeout_add_seconds (DB_BACKUP_TIMEOUT, - Database::timeoutCallback, - static_cast (this)); -} - -inline static bool -pinyin_option_check_sheng (unsigned int option, unsigned int id, unsigned int fid) -{ - switch ((id << 16) | fid) { - case (PINYIN_ID_C << 16) | PINYIN_ID_CH: - return (option & PINYIN_FUZZY_C_CH); - case (PINYIN_ID_CH << 16) | PINYIN_ID_C: - return (option & PINYIN_FUZZY_CH_C); - case (PINYIN_ID_Z << 16) | PINYIN_ID_ZH: - return (option & PINYIN_FUZZY_Z_ZH); - case (PINYIN_ID_ZH << 16) | PINYIN_ID_Z: - return (option & PINYIN_FUZZY_ZH_Z); - case (PINYIN_ID_S << 16) | PINYIN_ID_SH: - return (option & PINYIN_FUZZY_S_SH); - case (PINYIN_ID_SH << 16) | PINYIN_ID_S: - return (option & PINYIN_FUZZY_SH_S); - case (PINYIN_ID_L << 16) | PINYIN_ID_N: - return (option & PINYIN_FUZZY_L_N); - case (PINYIN_ID_N << 16) | PINYIN_ID_L: - return (option & PINYIN_FUZZY_N_L); - case (PINYIN_ID_F << 16) | PINYIN_ID_H: - return (option & PINYIN_FUZZY_F_H); - case (PINYIN_ID_H << 16) | PINYIN_ID_F: - return (option & PINYIN_FUZZY_H_F); - case (PINYIN_ID_L << 16) | PINYIN_ID_R: - return (option & PINYIN_FUZZY_L_R); - case (PINYIN_ID_R << 16) | PINYIN_ID_L: - return (option & PINYIN_FUZZY_R_L); - case (PINYIN_ID_K << 16) | PINYIN_ID_G: - return (option & PINYIN_FUZZY_K_G); - case (PINYIN_ID_G << 16) | PINYIN_ID_K: - return (option & PINYIN_FUZZY_G_K); - default: return false; - } -} - -inline static bool -pinyin_option_check_yun (unsigned int option, unsigned int id, unsigned int fid) -{ - switch ((id << 16) | fid) { - case (PINYIN_ID_AN << 16) | PINYIN_ID_ANG: - return (option & PINYIN_FUZZY_AN_ANG); - case (PINYIN_ID_ANG << 16) | PINYIN_ID_AN: - return (option & PINYIN_FUZZY_ANG_AN); - case (PINYIN_ID_EN << 16) | PINYIN_ID_ENG: - return (option & PINYIN_FUZZY_EN_ENG); - case (PINYIN_ID_ENG << 16) | PINYIN_ID_EN: - return (option & PINYIN_FUZZY_ENG_EN); - case (PINYIN_ID_IN << 16) | PINYIN_ID_ING: - return (option & PINYIN_FUZZY_IN_ING); - case (PINYIN_ID_ING << 16) | PINYIN_ID_IN: - return (option & PINYIN_FUZZY_ING_IN); - case (PINYIN_ID_IAN << 16) | PINYIN_ID_IANG: - return (option & PINYIN_FUZZY_IAN_IANG); - case (PINYIN_ID_IANG << 16) | PINYIN_ID_IAN: - return (option & PINYIN_FUZZY_IANG_IAN); - case (PINYIN_ID_UAN << 16) | PINYIN_ID_UANG: - return (option & PINYIN_FUZZY_UAN_UANG); - case (PINYIN_ID_UANG << 16) | PINYIN_ID_UAN: - return (option & PINYIN_FUZZY_UANG_UAN); - default: return false; - } -} - -SQLStmtPtr -Database::query (const PinyinArray &pinyin, - size_t pinyin_begin, - size_t pinyin_len, - int m, - unsigned int option) -{ - g_assert (pinyin_begin < pinyin.size ()); - g_assert (pinyin_len <= pinyin.size () - pinyin_begin); - g_assert (pinyin_len <= MAX_PHRASE_LEN); - - /* prepare sql */ - Conditions conditions; - - for (size_t i = 0; i < pinyin_len; i++) { - const Pinyin *p; - bool fs1, fs2; - p = pinyin[i + pinyin_begin]; - - fs1 = pinyin_option_check_sheng (option, p->pinyin_id[0].sheng, p->pinyin_id[1].sheng); - fs2 = pinyin_option_check_sheng (option, p->pinyin_id[0].sheng, p->pinyin_id[2].sheng); - - if (G_LIKELY (i > 0)) - conditions.appendPrintf (0, conditions.size (), - " AND "); - - if (G_UNLIKELY (fs1 || fs2)) { - if (G_LIKELY (i < DB_INDEX_SIZE)) { - if (fs1 && fs2 == 0) { - conditions.double_ (); - conditions.appendPrintf (0, conditions.size () >> 1, - "s%d=%d", i, p->pinyin_id[0].sheng); - conditions.appendPrintf (conditions.size () >> 1, conditions.size (), - "s%d=%d", i, p->pinyin_id[1].sheng); - } - else if (fs1 == 0 && fs2) { - conditions.double_ (); - conditions.appendPrintf (0, conditions.size () >> 1, - "s%d=%d", i, p->pinyin_id[0].sheng); - conditions.appendPrintf (conditions.size () >> 1, conditions.size (), - "s%d=%d", i, p->pinyin_id[2].sheng); - } - else { - size_t len = conditions.size (); - conditions.triple (); - conditions.appendPrintf (0, len, - "s%d=%d", i, p->pinyin_id[0].sheng); - conditions.appendPrintf (len, len << 1, - "s%d=%d", i, p->pinyin_id[1].sheng); - conditions.appendPrintf (len << 1, conditions.size (), - "s%d=%d", i, p->pinyin_id[2].sheng); - } - } - else { - if (fs1 && fs2 == 0) { - conditions.appendPrintf (0, conditions.size (), - "s%d IN (%d,%d)", i, p->pinyin_id[0].sheng, p->pinyin_id[1].sheng); - } - else if (fs1 == 0 && fs2) { - conditions.appendPrintf (0, conditions.size (), - "s%d IN (%d,%d)", i, p->pinyin_id[0].sheng, p->pinyin_id[2].sheng); - } - else { - conditions.appendPrintf (0, conditions.size (), - "s%d IN (%d,%d,%d)", i, p->pinyin_id[0].sheng, p->pinyin_id[1].sheng, p->pinyin_id[2].sheng); - } - } - } - else { - conditions.appendPrintf (0, conditions.size (), - "s%d=%d", i, p->pinyin_id[0].sheng); - } - - if (p->pinyin_id[0].yun != PINYIN_ID_ZERO) { - if (pinyin_option_check_yun (option, p->pinyin_id[0].yun, p->pinyin_id[1].yun)) { - if (G_LIKELY (i < DB_INDEX_SIZE)) { - conditions.double_ (); - conditions.appendPrintf (0, conditions.size () >> 1, - " AND y%d=%d", i, p->pinyin_id[0].yun); - conditions.appendPrintf (conditions.size () >> 1, conditions.size (), - " and y%d=%d", i, p->pinyin_id[1].yun); - } - else { - conditions.appendPrintf (0, conditions.size (), - " AND y%d IN (%d,%d)", i, p->pinyin_id[0].yun, p->pinyin_id[1].yun); - } - } - else { - conditions.appendPrintf (0, conditions.size (), - " AND y%d=%d", i, p->pinyin_id[0].yun); - } - } - } - - - m_buffer.clear (); - for (size_t i = 0; i < conditions.size (); i++) { - if (G_UNLIKELY (i == 0)) - m_buffer << " (" << conditions[i] << ")\n"; - else - m_buffer << " OR (" << conditions[i] << ")\n"; - } - - m_sql.clear (); - int id = pinyin_len - 1; - m_sql << "SELECT * FROM (" - "SELECT 0 AS user_freq, * FROM main.py_phrase_" << id << " WHERE " << m_buffer << " UNION ALL " - "SELECT * FROM userdb.py_phrase_" << id << " WHERE " << m_buffer << ") " - "GROUP BY phrase ORDER BY user_freq DESC, freq DESC"; - if (m > 0) - m_sql << " LIMIT " << m; -#if 0 - g_debug ("sql =\n%s", m_sql.c_str ()); -#endif - - /* query database */ - SQLStmtPtr stmt (new SQLStmt (m_db)); - - if (!stmt->prepare (m_sql)) { - stmt.reset (); - } - - return stmt; -} - -inline void -Database::phraseWhereSql (const Phrase & p, String & sql) -{ - sql << " WHERE"; - sql << " s0=" << p.pinyin_id[0].sheng - << " AND y0=" << p.pinyin_id[0].yun; - for (size_t i = 1; i < p.len; i++) { - sql << " AND s" << i << '=' << p.pinyin_id[i].sheng - << " AND y" << i << '=' << p.pinyin_id[i].yun; - } - sql << " AND phrase=\"" << p.phrase << "\""; - -} - -inline void -Database::phraseSql (const Phrase & p, String & sql) -{ - sql << "INSERT OR IGNORE INTO userdb.py_phrase_" << p.len - 1 - << " VALUES(" << 0 /* user_freq */ - << ",\"" << p.phrase << '"' /* phrase */ - << ',' << p.freq; /* freq */ - - for (size_t i = 0; i < p.len; i++) { - sql << ',' << p.pinyin_id[i].sheng << ',' << p.pinyin_id[i].yun; - } - - sql << ");\n"; - - sql << "UPDATE userdb.py_phrase_" << p.len - 1 - << " SET user_freq=user_freq+1"; - - phraseWhereSql (p, sql); - sql << ";\n"; -} - -void -Database::commit (const PhraseArray &phrases) -{ - Phrase phrase = {""}; - - m_sql = "BEGIN TRANSACTION;\n"; - for (size_t i = 0; i < phrases.size (); i++) { - phrase += phrases[i]; - phraseSql (phrases[i], m_sql); - } - if (phrases.size () > 1) - phraseSql (phrase, m_sql); - m_sql << "COMMIT;\n"; - - executeSQL (m_sql); - modified (); -} - -void -Database::remove (const Phrase & phrase) -{ - m_sql = "BEGIN TRANSACTION;\n"; - m_sql << "DELETE FROM userdb.py_phrase_" << phrase.len - 1; - phraseWhereSql (phrase, m_sql); - m_sql << ";\n"; - m_sql << "COMMIT;\n"; - - executeSQL (m_sql); - modified (); -} - -void -Database::init (const std::string & user_data_dir) -{ - if (m_instance.get () == NULL) { - m_instance.reset (new Database (user_data_dir)); - } -} - -void -Database::finalize (void) -{ - m_instance.reset (NULL); -} - -}; // namespace PyZy diff --git a/src/PyZyDatabase.h b/src/PyZyDatabase.h deleted file mode 100644 index 68984e0..0000000 --- a/src/PyZyDatabase.h +++ /dev/null @@ -1,114 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_DATABASE_H_ -#define __PYZY_DATABASE_H_ - -#include "PyZyUtil.h" -#include "PyZyString.h" -#include "PyZyTypes.h" -#include "PyZyPhraseArray.h" - -typedef struct sqlite3 sqlite3; - -namespace PyZy { - -class PinyinArray; -struct Phrase; - -class SQLStmt; -typedef std::shared_ptr SQLStmtPtr; - -class Database; - -class Query { -public: - Query (const PinyinArray & pinyin, - size_t pinyin_begin, - size_t pinyin_len, - unsigned int option); - ~Query (void); - int fill (PhraseArray &phrases, int count); - -private: - const PinyinArray & m_pinyin; - size_t m_pinyin_begin; - size_t m_pinyin_len; - unsigned int m_option; - SQLStmtPtr m_stmt; -}; - -class Database { -public: - ~Database (); -protected: - Database (const std::string & user_data_dir); - -public: - static void init (const std::string & data_dir); - - SQLStmtPtr query (const PinyinArray & pinyin, - size_t pinyin_begin, - size_t pinyin_len, - int m, - unsigned int option); - void commit (const PhraseArray & phrases); - void remove (const Phrase & phrase); - - void conditionsDouble (void); - void conditionsTriple (void); - - static void finalize (void); - static Database & instance (void) - { - if (m_instance == NULL) { - g_error ("Error: Please call InputContext::init () !"); - } - return *m_instance; - } - -private: - bool open (void); - bool loadUserDB (void); - bool saveUserDB (void); - void prefetch (void); - void phraseSql (const Phrase & p, String & sql); - void phraseWhereSql (const Phrase & p, String & sql); - bool executeSQL (const char *sql, sqlite3 *db = NULL); - void modified (void); - static gboolean timeoutCallback (void * data); - -private: - sqlite3 *m_db; /* sqlite3 database */ - - String m_sql; /* sql stmt */ - String m_buffer; /* temp buffer */ - unsigned int m_timeout_id; - GTimer *m_timer; - String m_user_data_dir; - -private: - static std::unique_ptr m_instance; -}; - -}; // namespace PyZy - -#endif // __PYZY_DATABASE_H_ diff --git a/src/PyZyDoublePinyinContext.cc b/src/PyZyDoublePinyinContext.cc deleted file mode 100644 index 7a7372a..0000000 --- a/src/PyZyDoublePinyinContext.cc +++ /dev/null @@ -1,519 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#include "PyZyDoublePinyinContext.h" -#include "PyZyConfig.h" -#include "PyZyPinyinParser.h" - -namespace PyZy { - -#define DEFINE_DOUBLE_PINYIN_TABLES -#include "PyZyDoublePinyinTable.h" - -/* - * c in 'a' ... 'z' => id = c - 'a' - * c == ';' => id = 26 - * else => id = -1 - */ -#define ID(c) \ - ((c >= 'a' && c <= 'z') ? c - 'a' : (c == ';' ? 26 : -1)) - -#define ID_TO_SHENG(id) \ - (double_pinyin_map[m_double_pinyin_schema].sheng[id]) -#define ID_TO_YUNS(id) \ - (double_pinyin_map[m_double_pinyin_schema].yun[id]) - -#define IS_ALPHA(c) \ - ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) - -DoublePinyinContext::DoublePinyinContext (PhoneticContext::Observer *observer) - : PinyinContext (observer), - m_double_pinyin_schema (DOUBLE_PINYIN_KEYBOARD_MSPY) -{ -} - -DoublePinyinContext::~DoublePinyinContext () -{ -} - -bool -DoublePinyinContext::insert (char ch) -{ - const int id = ID (ch); - - if (id == -1) { - /* it is not available ch */ - return false; - } - - if (G_UNLIKELY (m_text.empty () && - ID_TO_SHENG (id) == PINYIN_ID_VOID)) { - return false; - } - - /* is full */ - if (G_UNLIKELY (m_text.length () >= MAX_PINYIN_LEN)) - return true; - - m_text.insert (m_cursor++, ch); - - if (m_cursor > m_pinyin_len + 2 || updatePinyin (false) == false) { - if (!IS_ALPHA (ch)) { - m_text.erase (--m_cursor, 1); - return false; - } - else { - updateInputText (); - updateCursor (); - if (updateSpecialPhrases ()) { - update (); - } - else { - updatePreeditText (); - updateAuxiliaryText (); - } - return true; - } - } - else { - updateInputText (); - updateCursor (); - updateSpecialPhrases (); - updatePhraseEditor (); - update (); - return true; - } -} - -bool -DoublePinyinContext::removeCharBefore (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - m_cursor --; - m_text.erase (m_cursor, 1); - updateInputText (); - updateCursor (); - - if (updatePinyin (false)) { - updateSpecialPhrases (); - updatePhraseEditor (); - update (); - } - else { - if (updateSpecialPhrases ()) { - update (); - } - else { - updatePreeditText (); - updateAuxiliaryText (); - } - } - return true; -} - -bool -DoublePinyinContext::removeCharAfter (void) -{ - if (G_UNLIKELY (m_cursor == m_text.length ())) - return false; - - m_text.erase (m_cursor, 1); - updateInputText (); - - if (updateSpecialPhrases ()) { - update (); - } - else { - updatePreeditText (); - updateAuxiliaryText (); - } - return true; -} - -bool -DoublePinyinContext::removeWordBefore (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - if (G_UNLIKELY (m_cursor > m_pinyin_len)) { - m_text.erase (m_pinyin_len, m_cursor - m_pinyin_len); - m_cursor = m_pinyin_len; - updateInputText (); - updateCursor (); - if (updateSpecialPhrases ()) { - update (); - } - else { - updatePreeditText (); - updateAuxiliaryText (); - } - } - else { - m_pinyin_len = m_pinyin.back ().begin; - m_pinyin.pop_back (); - m_text.erase (m_pinyin_len, m_cursor - m_pinyin_len); - m_cursor = m_pinyin_len; - updateInputText (); - updateCursor (); - updateSpecialPhrases (); - updatePhraseEditor (); - update (); - } - - return true; -} - -bool -DoublePinyinContext::removeWordAfter (void) -{ - if (G_UNLIKELY (m_cursor == m_text.length ())) - return false; - - m_text.erase (m_cursor); - updateInputText (); - - if (updateSpecialPhrases ()) { - update (); - } - else { - updatePreeditText (); - updateAuxiliaryText (); - } - return true; -} - -bool -DoublePinyinContext::moveCursorLeft (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - m_cursor --; - updateCursor (); - - if (m_cursor >= m_pinyin_len) { - if (updateSpecialPhrases ()) { - update (); - } - else { - updatePreeditText (); - updateAuxiliaryText (); - } - } - else { - if (updatePinyin (false)) { - updateSpecialPhrases (); - updatePhraseEditor (); - update (); - } - else { - if (updateSpecialPhrases ()) { - update (); - } - else { - updatePreeditText (); - updateAuxiliaryText (); - } - } - } - - return true; -} - -bool -DoublePinyinContext::moveCursorRight (void) -{ - if (G_UNLIKELY (m_cursor == m_text.length ())) - return false; - - m_cursor ++; - updateCursor (); - if (updatePinyin (false)) { - updateSpecialPhrases (); - updatePhraseEditor (); - update (); - } - else { - if (updateSpecialPhrases ()) { - update (); - } - else { - updatePreeditText (); - updateAuxiliaryText (); - } - } - return true; -} - -bool -DoublePinyinContext::moveCursorLeftByWord (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - if (G_UNLIKELY (m_cursor > m_pinyin_len)) { - m_cursor = m_pinyin_len; - updateCursor (); - if (updateSpecialPhrases ()) { - update (); - } - else { - updatePreeditText (); - updateAuxiliaryText (); - } - } - else { - m_cursor = m_pinyin_len = m_pinyin.back ().begin; - m_pinyin.pop_back (); - updateCursor (); - updateSpecialPhrases (); - updatePhraseEditor (); - update (); - } - - return true; -} - -bool -DoublePinyinContext::moveCursorRightByWord (void) -{ - return moveCursorToEnd (); -} - -bool -DoublePinyinContext::moveCursorToBegin (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - m_cursor = 0; - m_pinyin.clear (); - m_pinyin_len = 0; - updateCursor (); - updateSpecialPhrases (); - updatePhraseEditor (); - update (); - - return true; -} - -bool -DoublePinyinContext::moveCursorToEnd (void) -{ - if (G_UNLIKELY (m_cursor == m_text.length ())) - return false; - - m_cursor = m_text.length (); - updateCursor (); - - if (updatePinyin (false)) { - updateSpecialPhrases (); - updatePhraseEditor (); - update (); - } - else { - if (updateSpecialPhrases ()) { - update (); - } - else { - updatePreeditText (); - updateAuxiliaryText (); - } - } - return true; -} - -inline const Pinyin * -DoublePinyinContext::isPinyin (int i) -{ - if ((m_config.option & PINYIN_INCOMPLETE_PINYIN) == 0) { - return NULL; - } - - char sheng = ID_TO_SHENG (i); - - if (sheng == PINYIN_ID_VOID) { - return NULL; - } - - return PinyinParser::isPinyin (sheng, 0, PINYIN_INCOMPLETE_PINYIN); -} - -inline const Pinyin * -DoublePinyinContext::isPinyin (int i, int j) -{ - const Pinyin *pinyin = NULL; - char sheng = ID_TO_SHENG (i); - const char *yun = ID_TO_YUNS (j); - - do { - if (sheng == PINYIN_ID_VOID || yun[0] == PINYIN_ID_VOID) - break; - - if (sheng == PINYIN_ID_ZERO && yun[0] == PINYIN_ID_ZERO) - break; - - if (yun[1] == PINYIN_ID_VOID) { - pinyin = PinyinParser::isPinyin ( - sheng, yun[0], - m_config.option & (PINYIN_FUZZY_ALL | PINYIN_CORRECT_V_TO_U)); - break; - } - - // Check sheng + yun[0] without all fuzzy pinyin options - pinyin = PinyinParser::isPinyin(sheng, yun[0], 0); - if (pinyin != NULL) - break; - - // Check sheng + yun[1] without all fuzzy pinyin options - pinyin = PinyinParser::isPinyin(sheng, yun[1], 0); - if (pinyin != NULL) - break; - - pinyin = PinyinParser::isPinyin ( - sheng, yun[0], m_config.option & (PINYIN_FUZZY_ALL)); - if (pinyin != NULL) - break; - - pinyin = PinyinParser::isPinyin ( - sheng, yun[1], m_config.option & (PINYIN_FUZZY_ALL)); - if (pinyin != NULL) - break; - - /* if sheng == j q x y and yun == v, try to correct v to u */ - if ((m_config.option & PINYIN_CORRECT_V_TO_U) == 0) - break; - - if (yun[0] == PINYIN_ID_V || yun[1] == PINYIN_ID_V) { - switch (sheng) { - case PINYIN_ID_J: - case PINYIN_ID_Q: - case PINYIN_ID_X: - case PINYIN_ID_Y: - pinyin = PinyinParser::isPinyin ( - sheng, PINYIN_ID_V, - m_config.option & ( - PINYIN_FUZZY_ALL | PINYIN_CORRECT_V_TO_U)); - } - } - } while (false); - - return pinyin; -} - -inline bool -DoublePinyinContext::updatePinyin (bool all) -{ - bool retval = false; - - if (all && - (m_pinyin_len != 0 || !m_pinyin.empty ())) { - m_pinyin.clear (); - m_pinyin_len = 0; - retval = true; - } - - if (m_pinyin_len > m_cursor) { - retval = true; - while (m_pinyin_len > m_cursor) { - m_pinyin_len = m_pinyin.back ().begin; - m_pinyin.pop_back (); - } - } - - if (m_pinyin_len == m_cursor) { - return retval; - } - - if (m_pinyin_len < m_cursor) { - size_t len = m_pinyin_len; - if (m_pinyin.empty () == false && - m_pinyin.back ()->flags & PINYIN_INCOMPLETE_PINYIN) { - const Pinyin *pinyin = isPinyin ( - ID (m_text[m_pinyin_len -1]),ID (m_text[m_pinyin_len])); - if (pinyin) { - m_pinyin.pop_back (); - m_pinyin.append (pinyin, m_pinyin_len - 1, 2); - m_pinyin_len += 1; - } - } - while (m_pinyin_len < m_cursor && m_pinyin.size () < MAX_PHRASE_LEN) { - const Pinyin *pinyin = NULL; - if (m_pinyin_len == m_cursor - 1) { - pinyin = isPinyin (ID (m_text[m_pinyin_len])); - } - else { - pinyin = isPinyin ( - ID (m_text[m_pinyin_len]), ID (m_text[m_pinyin_len + 1])); - if (pinyin == NULL) - pinyin = isPinyin (ID (m_text[m_pinyin_len])); - } - if (pinyin == NULL) - break; - if (pinyin->flags & PINYIN_INCOMPLETE_PINYIN) { - m_pinyin.append (pinyin, m_pinyin_len, 1); - m_pinyin_len += 1; - } - else { - m_pinyin.append (pinyin, m_pinyin_len, 2); - m_pinyin_len += 2; - } - } - if (len == m_pinyin_len) - return retval; - return true; - } - return retval; -} - -Variant -DoublePinyinContext::getProperty (PropertyName name) const -{ - if (name == PROPERTY_DOUBLE_PINYIN_SCHEMA) { - return Variant::fromUnsignedInt (m_double_pinyin_schema); - } - - return PhoneticContext::getProperty (name); -} - -bool -DoublePinyinContext::setProperty (PropertyName name, const Variant &variant) -{ - if (name == PROPERTY_DOUBLE_PINYIN_SCHEMA) { - if (variant.getType () != Variant::TYPE_UNSIGNED_INT) { - return false; - } - const unsigned int schema = variant.getUnsignedInt (); - if (schema >= DOUBLE_PINYIN_KEYBOARD_LAST) { - return false; - } - - m_double_pinyin_schema = schema; - return true; - } - - return PhoneticContext::setProperty (name, variant); -} - -}; // namespace PyZy diff --git a/src/PyZyDoublePinyinContext.h b/src/PyZyDoublePinyinContext.h deleted file mode 100644 index b6871ad..0000000 --- a/src/PyZyDoublePinyinContext.h +++ /dev/null @@ -1,64 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_DOUBLE_PINYIN_CONTEXT_H_ -#define __PYZY_DOUBLE_PINYIN_CONTEXT_H_ - -#include "PyZyPinyinContext.h" - -namespace PyZy { - -class DoublePinyinContext : public PinyinContext { - -public: - explicit DoublePinyinContext (PhoneticContext::Observer *observer); - virtual ~DoublePinyinContext (); - - virtual bool insert (char ch); - - virtual bool removeCharBefore (void); - virtual bool removeCharAfter (void); - virtual bool removeWordBefore (void); - virtual bool removeWordAfter (void); - - virtual bool moveCursorLeft (void); - virtual bool moveCursorRight (void); - virtual bool moveCursorLeftByWord (void); - virtual bool moveCursorRightByWord (void); - virtual bool moveCursorToBegin (void); - virtual bool moveCursorToEnd (void); - - virtual Variant getProperty (PropertyName name) const; - virtual bool setProperty (PropertyName name, const Variant &variant); - -protected: - virtual bool updatePinyin (bool all); - -private: - const Pinyin *isPinyin (int i, int j); - const Pinyin *isPinyin (int i); - - unsigned int m_double_pinyin_schema; -}; - -}; // namespace PyZy - -#endif // __PYZY_DOUBLE_PINYIN_CONTEXT_H_ diff --git a/src/PyZyDoublePinyinTable.h b/src/PyZyDoublePinyinTable.h deleted file mode 100644 index 68081ba..0000000 --- a/src/PyZyDoublePinyinTable.h +++ /dev/null @@ -1,391 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_DOUBLE_PINYIN_TABLE_H_ -#define __PYZY_DOUBLE_PINYIN_TABLE_H_ - -#ifdef DEFINE_DOUBLE_PINYIN_TABLES - -#define PINYIN_ID_AEO PINYIN_ID_ZERO - -static const char double_pinyin_mspy_sheng[] = { - PINYIN_ID_AEO, // A - PINYIN_ID_B, // B - PINYIN_ID_C, // C - PINYIN_ID_D, // D - PINYIN_ID_AEO, // E - PINYIN_ID_F, // F - PINYIN_ID_G, // G - PINYIN_ID_H, // H - PINYIN_ID_CH, // I - PINYIN_ID_J, // J - PINYIN_ID_K, // K - PINYIN_ID_L, // L - PINYIN_ID_M, // M - PINYIN_ID_N, // N - PINYIN_ID_ZERO, // O - PINYIN_ID_P, // P - PINYIN_ID_Q, // Q - PINYIN_ID_R, // R - PINYIN_ID_S, // S - PINYIN_ID_T, // T - PINYIN_ID_SH, // U - PINYIN_ID_ZH, // V - PINYIN_ID_W, // W - PINYIN_ID_X, // X - PINYIN_ID_Y, // Y - PINYIN_ID_Z, // Z - PINYIN_ID_VOID, // ; -}; -static const char double_pinyin_mspy_yun[][2] = { - { PINYIN_ID_A, PINYIN_ID_VOID }, // A - { PINYIN_ID_OU, PINYIN_ID_VOID }, // B - { PINYIN_ID_IAO, PINYIN_ID_VOID }, // C - { PINYIN_ID_UANG, PINYIN_ID_IANG }, // D - { PINYIN_ID_E, PINYIN_ID_VOID }, // E - { PINYIN_ID_EN, PINYIN_ID_VOID }, // F - { PINYIN_ID_ENG, PINYIN_ID_NG }, // G - { PINYIN_ID_ANG, PINYIN_ID_VOID }, // H - { PINYIN_ID_I, PINYIN_ID_VOID }, // I - { PINYIN_ID_AN, PINYIN_ID_VOID }, // J - { PINYIN_ID_AO, PINYIN_ID_VOID }, // K - { PINYIN_ID_AI, PINYIN_ID_VOID }, // L - { PINYIN_ID_IAN, PINYIN_ID_VOID }, // M - { PINYIN_ID_IN, PINYIN_ID_VOID }, // N - { PINYIN_ID_UO, PINYIN_ID_O }, // O - { PINYIN_ID_UN, PINYIN_ID_VOID }, // P - { PINYIN_ID_IU, PINYIN_ID_VOID }, // Q - { PINYIN_ID_UAN, PINYIN_ID_ER }, // R - { PINYIN_ID_ONG, PINYIN_ID_IONG }, // S - { PINYIN_ID_UE, PINYIN_ID_VOID }, // T - { PINYIN_ID_U, PINYIN_ID_VOID }, // U - { PINYIN_ID_UI, PINYIN_ID_UE }, // V - { PINYIN_ID_IA, PINYIN_ID_UA }, // W - { PINYIN_ID_IE, PINYIN_ID_VOID }, // X - { PINYIN_ID_UAI, PINYIN_ID_V }, // Y - { PINYIN_ID_EI, PINYIN_ID_VOID }, // Z - { PINYIN_ID_ING, PINYIN_ID_VOID }, // ; -}; -static const char double_pinyin_zrm_sheng[] = { - PINYIN_ID_AEO, // A - PINYIN_ID_B, // B - PINYIN_ID_C, // C - PINYIN_ID_D, // D - PINYIN_ID_AEO, // E - PINYIN_ID_F, // F - PINYIN_ID_G, // G - PINYIN_ID_H, // H - PINYIN_ID_CH, // I - PINYIN_ID_J, // J - PINYIN_ID_K, // K - PINYIN_ID_L, // L - PINYIN_ID_M, // M - PINYIN_ID_N, // N - PINYIN_ID_ZERO, // O - PINYIN_ID_P, // P - PINYIN_ID_Q, // Q - PINYIN_ID_R, // R - PINYIN_ID_S, // S - PINYIN_ID_T, // T - PINYIN_ID_SH, // U - PINYIN_ID_ZH, // V - PINYIN_ID_W, // W - PINYIN_ID_X, // X - PINYIN_ID_Y, // Y - PINYIN_ID_Z, // Z - PINYIN_ID_VOID, // ; -}; -static const char double_pinyin_zrm_yun[][2] = { - { PINYIN_ID_A, PINYIN_ID_VOID }, // A - { PINYIN_ID_OU, PINYIN_ID_VOID }, // B - { PINYIN_ID_IAO, PINYIN_ID_VOID }, // C - { PINYIN_ID_UANG, PINYIN_ID_IANG }, // D - { PINYIN_ID_E, PINYIN_ID_VOID }, // E - { PINYIN_ID_EN, PINYIN_ID_VOID }, // F - { PINYIN_ID_ENG, PINYIN_ID_NG }, // G - { PINYIN_ID_ANG, PINYIN_ID_VOID }, // H - { PINYIN_ID_I, PINYIN_ID_VOID }, // I - { PINYIN_ID_AN, PINYIN_ID_VOID }, // J - { PINYIN_ID_AO, PINYIN_ID_VOID }, // K - { PINYIN_ID_AI, PINYIN_ID_VOID }, // L - { PINYIN_ID_IAN, PINYIN_ID_VOID }, // M - { PINYIN_ID_IN, PINYIN_ID_VOID }, // N - { PINYIN_ID_UO, PINYIN_ID_O }, // O - { PINYIN_ID_UN, PINYIN_ID_VOID }, // P - { PINYIN_ID_IU, PINYIN_ID_VOID }, // Q - { PINYIN_ID_UAN, PINYIN_ID_ER }, // R - { PINYIN_ID_ONG, PINYIN_ID_IONG }, // S - { PINYIN_ID_UE, PINYIN_ID_VOID }, // T - { PINYIN_ID_U, PINYIN_ID_VOID }, // U - { PINYIN_ID_UI, PINYIN_ID_V }, // V - { PINYIN_ID_IA, PINYIN_ID_UA }, // W - { PINYIN_ID_IE, PINYIN_ID_VOID }, // X - { PINYIN_ID_UAI, PINYIN_ID_ING }, // Y - { PINYIN_ID_EI, PINYIN_ID_VOID }, // Z - { PINYIN_ID_VOID, PINYIN_ID_VOID }, // ; -}; -static const char double_pinyin_abc_sheng[] = { - PINYIN_ID_ZH, // A - PINYIN_ID_B, // B - PINYIN_ID_C, // C - PINYIN_ID_D, // D - PINYIN_ID_CH, // E - PINYIN_ID_F, // F - PINYIN_ID_G, // G - PINYIN_ID_H, // H - PINYIN_ID_VOID, // I - PINYIN_ID_J, // J - PINYIN_ID_K, // K - PINYIN_ID_L, // L - PINYIN_ID_M, // M - PINYIN_ID_N, // N - PINYIN_ID_ZERO, // O - PINYIN_ID_P, // P - PINYIN_ID_Q, // Q - PINYIN_ID_R, // R - PINYIN_ID_S, // S - PINYIN_ID_T, // T - PINYIN_ID_VOID, // U - PINYIN_ID_SH, // V - PINYIN_ID_W, // W - PINYIN_ID_X, // X - PINYIN_ID_Y, // Y - PINYIN_ID_Z, // Z - PINYIN_ID_VOID, // ; -}; -static const char double_pinyin_abc_yun[][2] = { - { PINYIN_ID_A, PINYIN_ID_VOID }, // A - { PINYIN_ID_OU, PINYIN_ID_VOID }, // B - { PINYIN_ID_IN, PINYIN_ID_UAI }, // C - { PINYIN_ID_IA, PINYIN_ID_UA }, // D - { PINYIN_ID_E, PINYIN_ID_VOID }, // E - { PINYIN_ID_EN, PINYIN_ID_VOID }, // F - { PINYIN_ID_ENG, PINYIN_ID_NG }, // G - { PINYIN_ID_ANG, PINYIN_ID_VOID }, // H - { PINYIN_ID_I, PINYIN_ID_VOID }, // I - { PINYIN_ID_AN, PINYIN_ID_VOID }, // J - { PINYIN_ID_AO, PINYIN_ID_VOID }, // K - { PINYIN_ID_AI, PINYIN_ID_VOID }, // L - { PINYIN_ID_UE, PINYIN_ID_UI }, // M - { PINYIN_ID_UN, PINYIN_ID_VOID }, // N - { PINYIN_ID_UO, PINYIN_ID_O }, // O - { PINYIN_ID_UAN, PINYIN_ID_VOID }, // P - { PINYIN_ID_EI, PINYIN_ID_VOID }, // Q - { PINYIN_ID_ER, PINYIN_ID_IU }, // R - { PINYIN_ID_ONG, PINYIN_ID_IONG }, // S - { PINYIN_ID_IANG, PINYIN_ID_UANG }, // T - { PINYIN_ID_U, PINYIN_ID_VOID }, // U - { PINYIN_ID_V, PINYIN_ID_UE }, // V - { PINYIN_ID_IAN, PINYIN_ID_VOID }, // W - { PINYIN_ID_IE, PINYIN_ID_VOID }, // X - { PINYIN_ID_ING, PINYIN_ID_VOID }, // Y - { PINYIN_ID_IAO, PINYIN_ID_VOID }, // Z - { PINYIN_ID_VOID, PINYIN_ID_VOID }, // ; -}; -static const char double_pinyin_zgpy_sheng[] = { - PINYIN_ID_CH, // A - PINYIN_ID_B, // B - PINYIN_ID_C, // C - PINYIN_ID_D, // D - PINYIN_ID_AEO, // E - PINYIN_ID_F, // F - PINYIN_ID_G, // G - PINYIN_ID_H, // H - PINYIN_ID_SH, // I - PINYIN_ID_J, // J - PINYIN_ID_K, // K - PINYIN_ID_L, // L - PINYIN_ID_M, // M - PINYIN_ID_N, // N - PINYIN_ID_ZERO, // O - PINYIN_ID_P, // P - PINYIN_ID_Q, // Q - PINYIN_ID_R, // R - PINYIN_ID_S, // S - PINYIN_ID_T, // T - PINYIN_ID_ZH, // U - PINYIN_ID_VOID, // V - PINYIN_ID_W, // W - PINYIN_ID_X, // X - PINYIN_ID_Y, // Y - PINYIN_ID_Z, // Z - PINYIN_ID_VOID, // ; -}; -static const char double_pinyin_zgpy_yun[][2] = { - { PINYIN_ID_A, PINYIN_ID_VOID }, // A - { PINYIN_ID_IAO, PINYIN_ID_VOID }, // B - { PINYIN_ID_VOID, PINYIN_ID_VOID }, // C - { PINYIN_ID_IE, PINYIN_ID_VOID }, // D - { PINYIN_ID_E, PINYIN_ID_VOID }, // E - { PINYIN_ID_IAN, PINYIN_ID_VOID }, // F - { PINYIN_ID_IANG, PINYIN_ID_UANG }, // G - { PINYIN_ID_ONG, PINYIN_ID_IONG }, // H - { PINYIN_ID_I, PINYIN_ID_VOID }, // I - { PINYIN_ID_ER, PINYIN_ID_IU }, // J - { PINYIN_ID_EI, PINYIN_ID_VOID }, // K - { PINYIN_ID_UAN, PINYIN_ID_VOID }, // L - { PINYIN_ID_UN, PINYIN_ID_VOID }, // M - { PINYIN_ID_UE, PINYIN_ID_UI }, // N - { PINYIN_ID_UO, PINYIN_ID_O }, // O - { PINYIN_ID_AI, PINYIN_ID_VOID }, // P - { PINYIN_ID_AO, PINYIN_ID_VOID }, // Q - { PINYIN_ID_AN, PINYIN_ID_VOID }, // R - { PINYIN_ID_ANG, PINYIN_ID_VOID }, // S - { PINYIN_ID_ENG, PINYIN_ID_NG }, // T - { PINYIN_ID_U, PINYIN_ID_VOID }, // U - { PINYIN_ID_V, PINYIN_ID_VOID }, // V - { PINYIN_ID_EN, PINYIN_ID_VOID }, // W - { PINYIN_ID_IA, PINYIN_ID_UA }, // X - { PINYIN_ID_IN, PINYIN_ID_UAI }, // Y - { PINYIN_ID_OU, PINYIN_ID_VOID }, // Z - { PINYIN_ID_ING, PINYIN_ID_VOID }, // ; -}; -static const char double_pinyin_pyjj_sheng[] = { - PINYIN_ID_ZERO, // A - PINYIN_ID_B, // B - PINYIN_ID_C, // C - PINYIN_ID_D, // D - PINYIN_ID_AEO, // E - PINYIN_ID_F, // F - PINYIN_ID_G, // G - PINYIN_ID_H, // H - PINYIN_ID_SH, // I - PINYIN_ID_J, // J - PINYIN_ID_K, // K - PINYIN_ID_L, // L - PINYIN_ID_M, // M - PINYIN_ID_N, // N - PINYIN_ID_ZERO, // O - PINYIN_ID_P, // P - PINYIN_ID_Q, // Q - PINYIN_ID_R, // R - PINYIN_ID_S, // S - PINYIN_ID_T, // T - PINYIN_ID_CH, // U - PINYIN_ID_ZH, // V - PINYIN_ID_W, // W - PINYIN_ID_X, // X - PINYIN_ID_Y, // Y - PINYIN_ID_Z, // Z - PINYIN_ID_VOID, // ; -}; -static const char double_pinyin_pyjj_yun[][2] = { - { PINYIN_ID_A, PINYIN_ID_VOID }, // A - { PINYIN_ID_IA, PINYIN_ID_UA }, // B - { PINYIN_ID_UAN, PINYIN_ID_VOID }, // C - { PINYIN_ID_AO, PINYIN_ID_VOID }, // D - { PINYIN_ID_E, PINYIN_ID_VOID }, // E - { PINYIN_ID_AN, PINYIN_ID_VOID }, // F - { PINYIN_ID_ANG, PINYIN_ID_VOID }, // G - { PINYIN_ID_IANG, PINYIN_ID_UANG }, // H - { PINYIN_ID_I, PINYIN_ID_VOID }, // I - { PINYIN_ID_IAN, PINYIN_ID_VOID }, // J - { PINYIN_ID_IAO, PINYIN_ID_VOID }, // K - { PINYIN_ID_IN, PINYIN_ID_VOID }, // L - { PINYIN_ID_IE, PINYIN_ID_VOID }, // M - { PINYIN_ID_IU, PINYIN_ID_VOID }, // N - { PINYIN_ID_UO, PINYIN_ID_O }, // O - { PINYIN_ID_OU, PINYIN_ID_VOID }, // P - { PINYIN_ID_ER, PINYIN_ID_ING }, // Q - { PINYIN_ID_EN, PINYIN_ID_VOID }, // R - { PINYIN_ID_AI, PINYIN_ID_VOID }, // S - { PINYIN_ID_ENG, PINYIN_ID_NG }, // T - { PINYIN_ID_U, PINYIN_ID_VOID }, // U - { PINYIN_ID_V, PINYIN_ID_UI }, // V - { PINYIN_ID_EI, PINYIN_ID_VOID }, // W - { PINYIN_ID_UAI, PINYIN_ID_UE }, // X - { PINYIN_ID_ONG, PINYIN_ID_IONG }, // Y - { PINYIN_ID_UN, PINYIN_ID_VOID }, // Z - { PINYIN_ID_VOID, PINYIN_ID_VOID }, // ; -}; -static const char double_pinyin_xhe_sheng[] = { - PINYIN_ID_AEO, // A - PINYIN_ID_B, // B - PINYIN_ID_C, // C - PINYIN_ID_D, // D - PINYIN_ID_AEO, // E - PINYIN_ID_F, // F - PINYIN_ID_G, // G - PINYIN_ID_H, // H - PINYIN_ID_CH, // I - PINYIN_ID_J, // J - PINYIN_ID_K, // K - PINYIN_ID_L, // L - PINYIN_ID_M, // M - PINYIN_ID_N, // N - PINYIN_ID_ZERO, // O - PINYIN_ID_P, // P - PINYIN_ID_Q, // Q - PINYIN_ID_R, // R - PINYIN_ID_S, // S - PINYIN_ID_T, // T - PINYIN_ID_SH, // U - PINYIN_ID_ZH, // V - PINYIN_ID_W, // W - PINYIN_ID_X, // X - PINYIN_ID_Y, // Y - PINYIN_ID_Z, // Z - PINYIN_ID_VOID, // ; -}; -static const char double_pinyin_xhe_yun[][2] = { - { PINYIN_ID_A, PINYIN_ID_VOID }, // A - { PINYIN_ID_IN, PINYIN_ID_VOID }, // B - { PINYIN_ID_AO, PINYIN_ID_VOID }, // C - { PINYIN_ID_AI, PINYIN_ID_VOID }, // D - { PINYIN_ID_E, PINYIN_ID_VOID }, // E - { PINYIN_ID_EN, PINYIN_ID_VOID }, // F - { PINYIN_ID_ENG, PINYIN_ID_NG }, // G - { PINYIN_ID_ANG, PINYIN_ID_VOID }, // H - { PINYIN_ID_I, PINYIN_ID_VOID }, // I - { PINYIN_ID_AN, PINYIN_ID_VOID }, // J - { PINYIN_ID_UAI, PINYIN_ID_ING }, // K - { PINYIN_ID_IANG, PINYIN_ID_UANG }, // L - { PINYIN_ID_IAN, PINYIN_ID_VOID }, // M - { PINYIN_ID_IAO, PINYIN_ID_VOID }, // N - { PINYIN_ID_UO, PINYIN_ID_O }, // O - { PINYIN_ID_IE, PINYIN_ID_VOID }, // P - { PINYIN_ID_IU, PINYIN_ID_VOID }, // Q - { PINYIN_ID_UAN, PINYIN_ID_ER }, // R - { PINYIN_ID_ONG, PINYIN_ID_IONG }, // S - { PINYIN_ID_UE, PINYIN_ID_VOID }, // T - { PINYIN_ID_U, PINYIN_ID_VOID }, // U - { PINYIN_ID_V, PINYIN_ID_UI }, // V - { PINYIN_ID_EI, PINYIN_ID_VOID }, // W - { PINYIN_ID_IA, PINYIN_ID_UA }, // X - { PINYIN_ID_UN, PINYIN_ID_VOID }, // Y - { PINYIN_ID_OU, PINYIN_ID_VOID }, // Z - { PINYIN_ID_VOID, PINYIN_ID_VOID }, // ; -}; - -static const struct { - const char (&sheng)[27]; - const char (&yun)[27][2]; -} double_pinyin_map [] = { - { double_pinyin_mspy_sheng, double_pinyin_mspy_yun }, - { double_pinyin_zrm_sheng, double_pinyin_zrm_yun }, - { double_pinyin_abc_sheng, double_pinyin_abc_yun }, - { double_pinyin_zgpy_sheng, double_pinyin_zgpy_yun }, - { double_pinyin_pyjj_sheng, double_pinyin_pyjj_yun }, - { double_pinyin_xhe_sheng, double_pinyin_xhe_yun }, -}; -#endif // DEFINE_DOUBLE_PINYIN_TABLE - -#endif // __PYZY_DOUBLE_PINYIN_TABLE_H_ diff --git a/src/PyZyDynamicSpecialPhrase.cc b/src/PyZyDynamicSpecialPhrase.cc deleted file mode 100644 index e4558e8..0000000 --- a/src/PyZyDynamicSpecialPhrase.cc +++ /dev/null @@ -1,208 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#include -#include "PyZyDynamicSpecialPhrase.h" - -namespace PyZy { - -DynamicSpecialPhrase::~DynamicSpecialPhrase (void) -{ -} - -std::string -DynamicSpecialPhrase::text (void) -{ - /* get the current time */ - std::time_t rawtime; - std::time (&rawtime); - m_time = *std::localtime (&rawtime); - - std::string result; - - size_t pos = 0; - size_t pnext; - int s = 0; - while (s != 2) { - switch (s) { - case 0: // expect "${" - pnext = m_text.find ("${", pos); - if (pnext == m_text.npos) { - result += m_text.substr (pos); - s = 2; - } - else { - result += m_text.substr (pos, pnext - pos); - pos = pnext + 2; - s = 1; - } - break; - case 1: // expect "}" - pnext = m_text.find ("}", pos); - if (pnext == m_text.npos) { - result += "${"; - result += m_text.substr (pos); - s = 2; - } - else { - result += variable (m_text.substr(pos, pnext - pos)); - pos = pnext + 1; - s = 0; - } - break; - default: /* should not be reached */ - g_assert_not_reached (); - } - } - return result; -} - -inline const std::string -DynamicSpecialPhrase::dec (int d, const char *fmt) -{ - char string [32]; - g_snprintf (string, sizeof (string), fmt, d); - return string; -} - -inline const std::string -DynamicSpecialPhrase::year_cn (bool yy) -{ - static const char * const digits[] = { - "〇", "一", "二", "三", "四", - "五", "六", "七", "八", "九" - }; - - int year = m_time.tm_year + 1900; - int bit = 0; - if (yy) { - year %= 100; - bit = 2; - } - - std::string result; - while (year != 0 || bit > 0) { - result.insert(0, digits[year % 10]); - year /= 10; - bit -= 1; - } - return result; -} - -inline const std::string -DynamicSpecialPhrase::month_cn (void) -{ - static const char * const month_num[] = { - "一", "二", "三", "四", "五", "六", "七", "八", - "九", "十", "十一", "十二" - }; - return month_num[m_time.tm_mon]; -} - -inline const std::string -DynamicSpecialPhrase::weekday_cn (void) -{ - static const char * const week_num[] = { - "日", "一", "二", "三", "四", "五", "六" - }; - return week_num[m_time.tm_wday]; -} - -inline const std::string -DynamicSpecialPhrase::hour_cn (unsigned int i) -{ - static const char * const hour_num[] = { - "零", "一", "二", "三", "四", - "五", "六", "七", "八", "九", - "十", "十一", "十二", "十三", "十四", - "十五", "十六", "十七", "十八", "十九", - "二十", "二十一", "二十二", "二十三", - }; - return hour_num[i]; -} - -inline const std::string -DynamicSpecialPhrase::fullhour_cn (void) -{ - return hour_cn (m_time.tm_hour); -} - -inline const std::string -DynamicSpecialPhrase::halfhour_cn (void) -{ - return hour_cn (m_time.tm_hour % 12); -} - -inline const std::string -DynamicSpecialPhrase::day_cn (void) -{ - static const char * const day_num[] = { - "", "一", "二", "三", "四", - "五", "六", "七", "八", "九", - "", "十","二十", "三十" - }; - unsigned int day = m_time.tm_mday; - return std::string (day_num[day / 10 + 10]) + day_num[day % 10]; -} - -inline const std::string -DynamicSpecialPhrase::minsec_cn (unsigned int i) -{ - static const char * const num[] = { - "", "一", "二", "三", "四", - "五", "六", "七", "八", "九", - "零", "十","二十", "三十", "四十" - "五十", "六十" - }; - return std::string (num[i / 10 + 10]) + num[i % 10]; -} - -inline const std::string -DynamicSpecialPhrase::variable (const std::string &name) -{ - if (name == "year") return dec (m_time.tm_year + 1900); - if (name == "year_yy") return dec ((m_time.tm_year + 1900) % 100, "%02d"); - if (name == "month") return dec (m_time.tm_mon + 1); - if (name == "month_mm") return dec (m_time.tm_mon + 1, "%02d"); - if (name == "day") return dec (m_time.tm_mday); - if (name == "day_dd") return dec (m_time.tm_mday, "%02d"); - if (name == "weekday") return dec (m_time.tm_wday + 1); - if (name == "fullhour") return dec (m_time.tm_hour, "%02d"); - if (name == "falfhour") return dec (m_time.tm_hour % 12, "%02d"); - if (name == "ampm") return m_time.tm_hour < 12 ? "AM" : "PM"; - if (name == "minute") return dec (m_time.tm_min, "%02d"); - if (name == "second") return dec (m_time.tm_sec, "%02d"); - if (name == "year_cn") return year_cn (); - if (name == "year_yy_cn") return year_cn (true); - if (name == "month_cn") return month_cn (); - if (name == "day_cn") return day_cn (); - if (name == "weekday_cn") return weekday_cn (); - if (name == "fullhour_cn") return fullhour_cn (); - if (name == "halfhour_cn") return halfhour_cn (); - if (name == "ampm_cn") return m_time.tm_hour < 12 ? "上午" : "下午"; - if (name == "minute_cn") return minsec_cn (m_time.tm_min); - if (name == "second_cn") return minsec_cn (m_time.tm_sec); - - return "${" + name + "}"; -} - -}; // namespace PyZy - diff --git a/src/PyZyDynamicSpecialPhrase.h b/src/PyZyDynamicSpecialPhrase.h deleted file mode 100644 index 2d84218..0000000 --- a/src/PyZyDynamicSpecialPhrase.h +++ /dev/null @@ -1,57 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_DYNAMIC_SPECIAL_PHRASE_H_ -#define __PYZY_DYNAMIC_SPECIAL_PHRASE_H_ - -#include -#include -#include "PyZySpecialPhrase.h" - -namespace PyZy { - -class DynamicSpecialPhrase : public SpecialPhrase { -public: - DynamicSpecialPhrase (const std::string &text, size_t pos) : - SpecialPhrase (pos), m_text (text) { } - ~DynamicSpecialPhrase (void); - - std::string text (void); - const std::string dec (int d, const char *fmt = "%d"); - const std::string year_cn (bool yy = false); - const std::string month_cn (void); - const std::string weekday_cn (void); - const std::string hour_cn (unsigned int i); - const std::string fullhour_cn (void); - const std::string halfhour_cn (void); - const std::string day_cn (void); - const std::string minsec_cn (unsigned int i); - const std::string variable (const std::string &name); - -private: - std::string m_text; - std::tm m_time; -}; - -}; // namespace PyZy - -#endif // __PYZY_DYNAMIC_SPECIAL_PHRASE_H_ - diff --git a/src/PyZyFullPinyinContext.cc b/src/PyZyFullPinyinContext.cc deleted file mode 100644 index 06ddd80..0000000 --- a/src/PyZyFullPinyinContext.cc +++ /dev/null @@ -1,254 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#include -#include "PyZyFullPinyinContext.h" -#include "PyZyConfig.h" -#include "PyZyPinyinParser.h" - - -namespace PyZy { - -FullPinyinContext::FullPinyinContext (PhoneticContext::Observer *observer) - : PinyinContext (observer) -{ -} - -FullPinyinContext::~FullPinyinContext (void) -{ -} - -bool -FullPinyinContext::insert (char ch) -{ - if (!islower(ch) && ch != '\'') { - /* it is not available ch */ - return false; - } - - /* is full */ - if (G_UNLIKELY (m_text.length () >= MAX_PINYIN_LEN)) - return true; - - m_text.insert (m_cursor++, ch); - updateInputText (); - updateCursor (); - - if (G_UNLIKELY (!(m_config.option & PINYIN_INCOMPLETE_PINYIN))) { - updateSpecialPhrases (); - updatePinyin (); - } - else if (G_LIKELY (m_cursor <= m_pinyin_len + 2)) { - updateSpecialPhrases (); - updatePinyin (); - } - else { - if (updateSpecialPhrases ()) { - update (); - } - else { - updatePreeditText (); - updateAuxiliaryText (); - } - } - return true; -} - -bool -FullPinyinContext::removeCharBefore (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - m_cursor --; - m_text.erase (m_cursor, 1); - updateInputText (); - updateCursor (); - updateSpecialPhrases (); - updatePinyin (); - - return true; -} - -bool -FullPinyinContext::removeCharAfter (void) -{ - if (G_UNLIKELY (m_cursor == m_text.length ())) - return false; - - m_text.erase (m_cursor, 1); - updateInputText (); - updatePreeditText (); - updateAuxiliaryText (); - - return true; -} - -bool -FullPinyinContext::removeWordBefore (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - size_t cursor; - - if (G_UNLIKELY (m_cursor > m_pinyin_len)) { - cursor = m_pinyin_len; - } - else { - const Pinyin & p = *m_pinyin.back (); - cursor = m_cursor - p.len; - m_pinyin_len -= p.len; - m_pinyin.pop_back (); - } - - m_text.erase (cursor, m_cursor - cursor); - m_cursor = cursor; - updateInputText (); - updateCursor (); - updateSpecialPhrases (); - updatePhraseEditor (); - update (); - return true; -} - -bool -FullPinyinContext::removeWordAfter (void) -{ - if (G_UNLIKELY (m_cursor == m_text.length ())) - return false; - - m_text.erase (m_cursor, -1); - updateInputText (); - updatePreeditText (); - updateAuxiliaryText (); - return true; -} - -bool -FullPinyinContext::moveCursorLeft (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - m_cursor --; - updateCursor (); - updateSpecialPhrases (); - updatePinyin (); - - return true; -} - -bool -FullPinyinContext::moveCursorRight (void) -{ - if (G_UNLIKELY (m_cursor == m_text.length ())) - return false; - - m_cursor ++; - updateCursor (); - updateSpecialPhrases (); - updatePinyin (); - - return true; -} - -bool -FullPinyinContext::moveCursorLeftByWord (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - if (G_UNLIKELY (m_cursor > m_pinyin_len)) { - m_cursor = m_pinyin_len; - return true; - } - - const Pinyin & p = *m_pinyin.back (); - m_cursor -= p.len; - m_pinyin_len -= p.len; - m_pinyin.pop_back (); - - updateCursor (); - updateSpecialPhrases (); - updatePhraseEditor (); - update (); - return true; -} - -bool -FullPinyinContext::moveCursorRightByWord (void) -{ - return moveCursorToEnd (); -} - -bool -FullPinyinContext::moveCursorToBegin (void) -{ - if (G_UNLIKELY (m_cursor == 0)) - return false; - - m_cursor = 0; - m_pinyin.clear (); - m_pinyin_len = 0; - - updateCursor (); - updateSpecialPhrases (); - updatePhraseEditor (); - update (); - return true; -} - -bool -FullPinyinContext::moveCursorToEnd (void) -{ - if (G_UNLIKELY (m_cursor == m_text.length ())) - return false; - - m_cursor = m_text.length (); - updateCursor (); - updateSpecialPhrases (); - updatePinyin (); - - return true; -} - -void -FullPinyinContext::updatePinyin (void) -{ - if (G_UNLIKELY (m_text.empty ())) { - m_pinyin.clear (); - m_pinyin_len = 0; - } - else { - m_pinyin_len = PinyinParser::parse ( - m_text, // text - m_cursor, // text length - m_config.option, // option - m_pinyin, // result - MAX_PHRASE_LEN); // max result length - } - - updatePhraseEditor (); - update (); -} - -}; // namespace PyZy diff --git a/src/PyZyFullPinyinContext.h b/src/PyZyFullPinyinContext.h deleted file mode 100644 index e2e9649..0000000 --- a/src/PyZyFullPinyinContext.h +++ /dev/null @@ -1,57 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_FULL_PINYIN_CONTEXT_H_ -#define __PYZY_FULL_PINYIN_CONTEXT_H_ - -#include "PyZyPinyinContext.h" - -namespace PyZy { - -class FullPinyinContext : public PinyinContext { - -public: - explicit FullPinyinContext (PhoneticContext::Observer *observer); - virtual ~FullPinyinContext (void); - -public: - virtual bool insert (char ch); - - virtual bool removeCharBefore (void); - virtual bool removeCharAfter (void); - virtual bool removeWordBefore (void); - virtual bool removeWordAfter (void); - - virtual bool moveCursorLeft (void); - virtual bool moveCursorRight (void); - virtual bool moveCursorLeftByWord (void); - virtual bool moveCursorRightByWord (void); - virtual bool moveCursorToBegin (void); - virtual bool moveCursorToEnd (void); - -protected: - virtual void updatePinyin (void); - -}; - -}; // namespace PyZy - -#endif // __PYZY_FULL_PINYIN_CONTEXT_H_ diff --git a/src/PyZyInputContext.cc b/src/PyZyInputContext.cc deleted file mode 100644 index 3da5cb2..0000000 --- a/src/PyZyInputContext.cc +++ /dev/null @@ -1,80 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#include "PyZyPhoneticContext.h" - -#include -#include - -#include "PyZyBopomofoContext.h" -#include "PyZyDatabase.h" -#include "PyZyDoublePinyinContext.h" -#include "PyZyFullPinyinContext.h" - -namespace PyZy { - -void -InputContext::init () -{ - const std::string cache_dir = - g_build_filename (g_get_user_cache_dir (), "pyzy", NULL); - const std::string config_dir = - g_build_filename (g_get_user_config_dir (), "pyzy", NULL); - init (cache_dir, config_dir); -} -void -InputContext::init (const std::string & user_cache_dir, - const std::string & user_config_dir) -{ - if (user_cache_dir.empty ()) { - g_error ("Error: user_cache_dir should not be empty"); - } - if (user_config_dir.empty ()) { - g_error ("Error: user_config_dir should not be empty"); - } - - Database::init (user_cache_dir); - SpecialPhraseTable::init (user_config_dir); -} - -void -InputContext::finalize () -{ - Database::finalize (); -} - -InputContext * -InputContext::create (InputContext::InputType type, - InputContext::Observer * observer) { - switch (type) { - case FULL_PINYIN: - return new FullPinyinContext (observer); - case DOUBLE_PINYIN: - return new DoublePinyinContext (observer); - case BOPOMOFO: - return new BopomofoContext (observer); - default: - g_warning ("unknown context type.\n"); - return NULL; - } -} - -} // namespace PyZy diff --git a/src/PyZyInputContext.h b/src/PyZyInputContext.h deleted file mode 100644 index 2043cc4..0000000 --- a/src/PyZyInputContext.h +++ /dev/null @@ -1,481 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -/** - * \brief Converts Pinyin / Bopomofo characters to phrases. - * - * Takes PinYin / Bopomofo characters and convert it to phrases. - * This class provides following methods. - * - Context manipulation methods like insert(), removeCharBefore(), ... - * - Getters of input / preedit / candidates / cursor / ... - * - Getters / Setters of some conversion options. - * - * To use this class, you should call InputContext::init() at first and - * InputContext::finalize() at last. - */ -#ifndef __PYZY_INPUT_CONTEXT_H_ -#define __PYZY_INPUT_CONTEXT_H_ - -#include -#include - -namespace PyZy { - -class Variant; - -/** - * \brief An enum to represent a candidate type. - */ -enum CandidateType { - /** Candidate from a system dictionary. */ - NORMAL_PHRASE, - /** Candidate from a user input. */ - USER_PHRASE, - /** Candidate from a special phrase. */ - SPECIAL_PHRASE, -}; - -/** - * \brief Contains a candidate data. - */ -struct Candidate { - /** Text of a candidate */ - std::string text; - /** Type of a candidate */ - CandidateType type; -}; - -/** - * \brief Pinyin / Bopomofo conversion class. - * - * This class is a factory class. You call a create() method and you get a - * pointer of the instance. You should delete it yourself. - * If some context are modified, you can get a nortification through Observer - * instance. - */ -class InputContext { -public: - /** - * \brief Virtual destructor. - */ - virtual ~InputContext (void) { } - - /** - * \brief Observer class of the InputContext. - * - * You override this class and pass it to InputContext::create, and you - * can get a nortification as a callback through this instance when some - * context are modified. - */ - class Observer { - public: - virtual ~Observer () { } - - - /** - * \brief Notifies a commit text. - * @param context InputContext instance which triggered this method. - * @param commit_text Commited text. - * - * This method is triggered by InputContext when conversion result - * is commited. - */ - virtual void commitText (const InputContext * context, - const std::string &commit_text) = 0; - - /** - * \brief Notifies input text is changed. - * @param context InputContext instance which triggered this method. - * - * This method is triggered by InputContext when input text is - * changed. - */ - virtual void inputTextChanged (const InputContext * context) = 0; - - /** - * \brief Notifies cursor is changed. - * @param context InputContext instance which triggered this method. - * - * This method is triggered by InputContext when cursor is changed. - */ - virtual void cursorChanged (const InputContext * context) = 0; - - /** - * \brief Notifies preedit text is changed. - * @param context InputContext instance which triggered this method. - * - * This method is triggered by InputContext when preedit text is - * changed. - */ - virtual void preeditTextChanged (const InputContext * context) = 0; - - /** - * \brief Notifies auxiliary text is changed. - * @param context InputContext instance which triggered this method. - * - * This method is triggered by InputContext when auxiliary text is - * changed. - */ - virtual void auxiliaryTextChanged (const InputContext * context) = 0; - - /** - * \brief Notifies candidates are changed. - * @param context InputContext instance which triggered this method. - * - * This method is triggered by InputContext when candidates are - * changed. - */ - virtual void candidatesChanged (const InputContext * context) = 0; - }; - - /** - * \brief Input text type. - */ - enum InputType { - /** Input text is full pinyin. */ - FULL_PINYIN, - /** Input text is double pinyin. */ - DOUBLE_PINYIN, - /** Input text is bopomofo. */ - BOPOMOFO, - }; - - /** - * \brief Commit type. - */ - enum CommitType { - /** Commits a input text directly. */ - TYPE_RAW, - /** Commits a selected text and rest input text. */ - TYPE_PHONETIC, - /** Commits a selected text, focused conversion text and rest text. */ - TYPE_CONVERTED, - }; - - /** - * \brief PropertyName - */ - enum PropertyName { - /** - * Conversion option - * @see PyZyConst.h - * - * Default value is PINYIN_INCORRECT_PINYIN | PINYIN_CORRECT_ALL | - * PYZY_FUZZY_ALL - */ - PROPERTY_CONVERSION_OPTION, - /** - * \brief Double pinyin schema - * @see PyZyConst.h - * - * Default value is DOUBLE_PINYIN_KEYBOARD_MSPY. - */ - PROPERTY_DOUBLE_PINYIN_SCHEMA, - /** - * \brief Bopomofo schema - * @see PyZyConst.h - * - * Default value is BOPOMOFO_KEYBOARD_STANDARD. - */ - PROPERTY_BOPOMOFO_SCHEMA, - /** - * \brief Uses special phrase. - * Default value is true. - */ - PROPERTY_SPECIAL_PHRASE, - /** - * \brief Uses simplified chinese character. - * Default value is true. - */ - PROPERTY_MODE_SIMP, - }; - - /** - * \brief Appends a new character on cursor position. - * @param ch Input character. It should be ASCII characters. - * @return true if succeed. - * - * Appends a new character. This method fails if there are too many - * characters or invalid character is input. - */ - virtual bool insert (char ch) = 0; - - /** - * \brief Fixes the conversion result. - * @param type Commit type. - * @see CommitType - * - * Fixes the conversion result according to CommitType and resets the - * context. - */ - virtual void commit (CommitType type = TYPE_CONVERTED) = 0; - - /** - * \brief Resets the context. - */ - virtual void reset (void) = 0; - - /** - * \brief Moves a cursor to right input character. - * @return true if cursor is moved. - */ - virtual bool moveCursorRight (void) = 0; - - /** - * \brief Moves a cursor to left input character. - * @return true if cursor is moved. - */ - virtual bool moveCursorLeft (void) = 0; - - /** - * \brief Moves a cursor to left chinese character. - * @return true if cursor is moved. - * @see moveCursorToEnd - * - * Currently text after a cursor is not converted and it is assumed as one - * chinese character. So this method is same as moveCursorToEnd. - */ - virtual bool moveCursorRightByWord (void) = 0; - - /** - * \brief Moves a cursor to right chinese character. - * @return true if cursor is moved. - */ - virtual bool moveCursorLeftByWord (void) = 0; - - /** - * \brief Moves a cursor to the beginning of the the input text. - * @return true if cursor is moved. - */ - virtual bool moveCursorToBegin (void) = 0; - - /** - * \brief Removes a input character before a cursor. - * @return true if a character is removed. - */ - virtual bool removeCharBefore (void) = 0; - - /** - * \brief Removes a input character after a cursor. - * @return true if a character is removed. - */ - virtual bool removeCharAfter (void) = 0; - - /** - * \brief Removes a chinese character before a cursor. - * @return true if a character is removed. - */ - virtual bool removeWordBefore (void) = 0; - - /** - * \brief Removes a chinese character after a cursor. - * @return true if a character is removed. - * - * Currently text after a cursor is not converted and it is assumed as one - * chinese character. So this method removes all text after a cursor. - */ - virtual bool removeWordAfter (void) = 0; - - /** - * \brief Moves a cursor to the end of the the input text. - * @return true if cursor is moved. - */ - virtual bool moveCursorToEnd (void) = 0; - - /** - * \brief Selects a candidate and converts a rest text. - * @param index Index of the candidate. (0-origin) - * @return true if it takes valid index. - * @see commit - * - * If there are no rest text after select, this method triggeres commit. - */ - virtual bool selectCandidate (size_t index) = 0; - - /** - * \brief Focuses a candidate. - * @param index Index of the candidate. (0-origin) - * @return true if it takes valid index. - */ - virtual bool focusCandidate (size_t index) = 0; - - /** - * \brief Focuses a previous candidate. - * @return true if focused index is changed. - */ - virtual bool focusCandidatePrevious (void) = 0; - - /** - * \brief Focuses a next candidate. - * @return true if there are some candidates after the focused candidate; - * false otherwise. - */ - virtual bool focusCandidateNext (void) = 0; - - /** - * \brief Resets a user input history of the candidate. - * @param index Index of the candidate. (0-origin) - * @return true if it takes valid index. - */ - virtual bool resetCandidate (size_t index) = 0; - - /** - * \brief Unselects a selected text. - * @return true if there are some selected text. - */ - virtual bool unselectCandidates () = 0; - - /** - * \brief Checks the candidate is exist or not. - * @param index Index of the candidate. (0-origin) - * @return true if the candidate is exist. - * @see getPreparedCandidatesSize - * - * This method may update prepared - * candidates size. - */ - virtual bool hasCandidate (size_t index) = 0; - - /** - * \brief Gets the candidate if exists. - * @param index Index of the candidate. (0-origin) - * @param output A candidate which is got. - * @return true if the candidate is exist. - * @see getPreparedCandidatesSize - * - * This method may update prepared - * candidates size. - */ - virtual bool getCandidate (size_t index, Candidate & output) = 0; - - /** - * \brief Gets a already prepared candidates size. - * @return Prepared candidates size. - * - * To avoid a performance issue, this library prepares candidates on demand. - * This method returns a size of candidates which are already prepared. - */ - virtual size_t getPreparedCandidatesSize () const = 0; - - /** - * \brief Initializes a InputContext class. - * - * This is a wrapper function of input (user_cache_dir, user_config_dir). - * Default values are set to user_cache_dir and user_config_dir. - * You should call this function at first. - */ - static void init (); - - /** - * \brief Initializes a InputContext class. - * @param user_cache_dir Directory which stores a user cache data. - * (input history, etc.) - * @param user_config_dir Directory which stores a user config data. - * If you want to use original special phrase table, please create - * "phrases.txt" under this directory. - * - * Specifies a directory to stores user data. - * You can set a same directory to user_cache_dir and user_config_dir. - * You should call this function at first. - */ - static void init (const std::string & user_cache_dir, - const std::string & user_config_dir); - - /** - * \brief Finalizes a InputContext class. - * - * You should call it at last. - */ - static void finalize (); - - /** - * \brief Creates a new InputContext instance. - * @param type The type of the input. - * @param observer Observer to get a notification from the InputContext - * instance. - * @return instance of the InputContext. - * - * You should take responsibility for deleting the instance. - */ - static InputContext * create (InputContext::InputType type, - InputContext::Observer * observer); - - /** - * \brief Returns a input text. - * @return input text. - */ - virtual const std::string & inputText () const = 0; - - /** - * \brief Returns a selected text. - * @return selected text. - */ - virtual const std::string & selectedText (void) const = 0; - - /** - * \brief Returns a conversion text. - * @return conversion text. - */ - virtual const std::string & conversionText (void) const = 0; - - /** - * \brief Returns a rest text. - * @return rest text. - */ - virtual const std::string & restText (void) const = 0; - - /** - * \brief Returns a auxiliary text. - * @return auxiliary text. - */ - virtual const std::string & auxiliaryText (void) const = 0; - - /** - * \brief Returns a cursor position from the beginning of the input text. - * @return cursor position. - */ - virtual unsigned int cursor () const = 0; - - /** - * \brief Returns a index of the focused candidate. - * @return index of the focused candidate. (0-origin) - */ - virtual unsigned int focusedCandidate () const = 0; - - /** - * \brief Gets property of the context. - * @param name you want to get. - * @return value of the property. - */ - virtual Variant getProperty (PropertyName name) const = 0; - - /** - * \brief Sets property of the context. - * @param name you want to get. - * @param variant value of the property. - * @return true if the value is set successfully. - */ - virtual bool setProperty (PropertyName name, const Variant &variant)= 0; -}; - -}; // namespace PyZy - -#endif // __PYZY_INPUT_CONTEXT_H_ diff --git a/src/PyZyPhoneticContext.cc b/src/PyZyPhoneticContext.cc deleted file mode 100644 index a775688..0000000 --- a/src/PyZyPhoneticContext.cc +++ /dev/null @@ -1,334 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#include "PyZyPhoneticContext.h" -#include "PyZySimpTradConverter.h" -#include "PyZyDatabase.h" -#include "PyZyPhraseEditor.h" - -namespace PyZy { - -PhoneticContext::PhoneticContext (PhoneticContext::Observer *observer) - : m_phrase_editor (m_config), - m_observer (observer) -{ - resetContext (); -} - -PhoneticContext::~PhoneticContext () -{ -} - -bool -PhoneticContext::updateSpecialPhrases (void) -{ - size_t size = m_special_phrases.size (); - m_special_phrases.clear (); - - if (!m_config.specialPhrases) - return false; - - if (!m_selected_special_phrase.empty ()) - return false; - - size_t begin = m_phrase_editor.cursorInChar (); - size_t end = m_cursor; - - if (begin < end) { - SpecialPhraseTable::instance ().lookup ( - m_text.substr (begin, m_cursor - begin), - m_special_phrases); - } - - return size != m_special_phrases.size () || size != 0; -} - -void -PhoneticContext::reset (void) -{ - resetContext (); - update (); - updateInputText (); -} - -void -PhoneticContext::commitText (const std::string & commit_text) -{ - m_observer->commitText (this, commit_text); -} - -void -PhoneticContext::updateInputText (void) -{ - m_observer->inputTextChanged (this); -} - -void -PhoneticContext::updateCursor (void) -{ - m_observer->cursorChanged (this); -} - -void -PhoneticContext::updateCandidates (void) -{ - m_focused_candidate = 0; - m_observer->candidatesChanged (this); -} - -void -PhoneticContext::updateAuxiliaryText (void) -{ - m_observer->auxiliaryTextChanged (this); -} - -void -PhoneticContext::updatePreeditText (void) -{ - m_observer->preeditTextChanged (this); -} - -void -PhoneticContext::resetContext (void) -{ - m_cursor = 0; - m_focused_candidate = 0; - m_pinyin.clear (); - m_pinyin_len = 0; - m_phrase_editor.reset (); - m_special_phrases.clear (); - m_selected_special_phrase.clear (); - m_text.clear (); - m_preedit_text.clear (); - m_auxiliary_text.clear (); -} - -bool -PhoneticContext::focusCandidatePrevious () -{ - if (G_UNLIKELY (m_focused_candidate == 0)) { - return false; - } - return focusCandidate (m_focused_candidate - 1); -} - -bool -PhoneticContext::focusCandidateNext () -{ - if (G_UNLIKELY (!hasCandidate (m_focused_candidate + 1))) { - return false; - } - return focusCandidate (m_focused_candidate + 1); -} - -bool -PhoneticContext::focusCandidate (size_t i) -{ - if (G_UNLIKELY (!hasCandidate (i))) { - g_warning ("Too big index. Can't focus to selected candidate."); - return false; - } - m_focused_candidate = i; - - updatePreeditText(); - - return true; -} - -void -PhoneticContext::update () -{ - updateCandidates (); - updatePreeditText (); - updateAuxiliaryText (); -} - -bool -PhoneticContext::selectCandidate (size_t i) -{ - if (!hasCandidate (i)) { - g_warning ("selectCandidate(%zd): Too big index!\n", i); - return false; - } - - if (i < m_special_phrases.size ()) { - // select a special phrase - m_selected_special_phrase = m_special_phrases[i]; - m_focused_candidate = 0; - if (m_cursor == m_text.size ()) { - commit (); - } - else { - updateSpecialPhrases (); - update (); - } - - return true; - } - - i -= m_special_phrases.size (); - if (m_phrase_editor.selectCandidate (i)) { - m_focused_candidate = 0; - if (m_phrase_editor.pinyinExistsAfterCursor () || - *textAfterPinyin () != '\0') { - updateSpecialPhrases (); - update (); - } - else { - commit (); - } - return true; - } - - return false; -} - -bool -PhoneticContext::resetCandidate (size_t i) -{ - if (i < m_special_phrases.size ()) { - return false; - } - i -= m_special_phrases.size (); - - if (m_phrase_editor.resetCandidate (i)) { - updateCandidates (); - } - - return true; -} - -bool -PhoneticContext::unselectCandidates () -{ - if (!m_phrase_editor.unselectCandidates ()) { - return false; - } - updateSpecialPhrases (); - update (); - return true; -} - -bool -PhoneticContext::hasCandidate (size_t i) -{ - if (G_UNLIKELY (!m_selected_special_phrase.empty())) { - return false; - } - - while (true) { - const size_t candidates_size = - m_special_phrases.size () + m_phrase_editor.candidates ().size (); - if (i < candidates_size) { - break; - } - if (G_UNLIKELY (!m_phrase_editor.fillCandidates ())) { - return false; - } - } - - return true; -} - -bool -PhoneticContext::getCandidate (size_t i, Candidate & candidate) -{ - if (G_UNLIKELY (!hasCandidate (i))) { - return false; - } - - if (i < m_special_phrases.size ()) { - candidate.text = m_special_phrases[i]; - candidate.type = SPECIAL_PHRASE; - return true; - } - - i -= m_special_phrases.size (); - if (m_config.modeSimp) { - candidate.text = m_phrase_editor.candidate (i).phrase; - } else { - String output; - SimpTradConverter::simpToTrad (m_phrase_editor.candidate (i).phrase, - output); - candidate.text = output; - } - candidate.type = m_phrase_editor.candidateIsUserPhrase (i) - ? USER_PHRASE : NORMAL_PHRASE; - return true; -} - -size_t -PhoneticContext::getPreparedCandidatesSize () const -{ - if (G_UNLIKELY (!m_selected_special_phrase.empty())) { - return 0; - } - - return m_special_phrases.size () + m_phrase_editor.candidates ().size (); -} - -Variant -PhoneticContext::getProperty (PropertyName name) const -{ - switch (name) { - case PROPERTY_CONVERSION_OPTION: - return Variant::fromUnsignedInt (m_config.option); - case PROPERTY_SPECIAL_PHRASE: - return Variant::fromBool (m_config.specialPhrases); - case PROPERTY_MODE_SIMP: - return Variant::fromBool (m_config.modeSimp); - default: - return Variant::nullVariant (); - } -} - -bool -PhoneticContext::setProperty (PropertyName name, const Variant &variant) -{ - if (variant.getType () == Variant::TYPE_UNSIGNED_INT) { - const unsigned int value = variant.getUnsignedInt (); - - switch (name) { - case PROPERTY_CONVERSION_OPTION: - m_config.option = value; - return true; - default: - return false; - } - } else if (variant.getType () == Variant::TYPE_BOOL) { - const bool value = variant.getBool (); - - switch (name) { - case PROPERTY_SPECIAL_PHRASE: - m_config.specialPhrases = value; - return true; - case PROPERTY_MODE_SIMP: - m_config.modeSimp = value; - return true; - default: - return false; - } - } - - return false; -} - -}; // namespace PyZy diff --git a/src/PyZyPhoneticContext.h b/src/PyZyPhoneticContext.h deleted file mode 100644 index 5d64188..0000000 --- a/src/PyZyPhoneticContext.h +++ /dev/null @@ -1,164 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_PHONETIC_CONTEXT_H_ -#define __PYZY_PHONETIC_CONTEXT_H_ - -#include -#include -#include "PyZyInputContext.h" -#include "PyZyConfig.h" -#include "PyZyConst.h" -#include "PyZyPinyinArray.h" -#include "PyZyPhraseEditor.h" -#include "PyZySpecialPhraseTable.h" -#include "PyZyVariant.h" - -namespace PyZy { - -#define MAX_PINYIN_LEN 64 - -struct Preedit { - std::string selected_text; - std::string candidate_text; - std::string rest_text; - - void clear () { - selected_text.clear (); - candidate_text.clear (); - rest_text.clear (); - } -}; - -class PhoneticContext : public InputContext { -public: - explicit PhoneticContext (PhoneticContext::Observer *observer); - virtual ~PhoneticContext (void); - - /* API of InputContext */ - virtual void reset (void); - - bool selectCandidate (size_t i); - bool focusCandidate (size_t i); - bool focusCandidatePrevious (); - bool focusCandidateNext (); - bool resetCandidate (size_t i); - bool unselectCandidates (); - bool hasCandidate (size_t i); - bool getCandidate (size_t i, Candidate & output); - size_t getPreparedCandidatesSize () const; - - virtual Variant getProperty (PropertyName name) const; - virtual bool setProperty (PropertyName name, const Variant &variant); - - /* Accessors of InputContext. */ - virtual const std::string & inputText () const - { - return m_text; - } - - virtual const std::string & selectedText (void) const - { - return m_preedit_text.selected_text; - } - - virtual const std::string & conversionText (void) const - { - return m_preedit_text.candidate_text; - } - - virtual const std::string & restText (void) const - { - return m_preedit_text.rest_text; - } - - virtual const std::string & auxiliaryText (void) const - { - return m_auxiliary_text; - } - - virtual unsigned int cursor () const - { - return m_cursor; - } - - virtual unsigned int focusedCandidate () const - { - return m_focused_candidate; - } - -protected: - virtual void resetContext (void); - virtual void update (void); - virtual void commitText (const std::string & commit_text); - virtual void updateInputText (void); - virtual void updateCursor (void); - virtual void updateCandidates (void); - virtual void updateAuxiliaryText (void); - virtual void updatePreeditText (void); - virtual bool updateSpecialPhrases (void); - - /* inline functions */ - void updatePhraseEditor (void) - { - m_phrase_editor.update (m_pinyin); - } - - const char * textAfterPinyin () const - { - return (const char *)m_text + m_pinyin_len; - } - - const char * textAfterPinyin (size_t i) const - { - g_assert (i <= m_pinyin.size ()); - if ( G_UNLIKELY (i == 0)) - return m_text; - i--; - return (const char *)m_text + m_pinyin[i].begin + m_pinyin[i].len; - } - - const char * textAfterCursor () const - { - return (const char *)m_text + m_cursor; - } - - /* variables */ - Config m_config; - size_t m_cursor; - size_t m_focused_candidate; - PinyinArray m_pinyin; - size_t m_pinyin_len; - String m_buffer; - PhraseEditor m_phrase_editor; - std::vector m_special_phrases; - std::string m_selected_special_phrase; - String m_text; - Preedit m_preedit_text; - std::string m_auxiliary_text; - -private: - PhoneticContext::Observer *m_observer; -}; - -}; // namespace PyZy - -#endif // __PYZY_PHONETIC_CONTEXT_H_ diff --git a/src/PyZyPhrase.h b/src/PyZyPhrase.h deleted file mode 100644 index 1df1a50..0000000 --- a/src/PyZyPhrase.h +++ /dev/null @@ -1,73 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_PHRASE_H_ -#define __PYZY_PHRASE_H_ - -#include -#include "PyZyTypes.h" - -namespace PyZy { - -#define PHRASE_LEN_IN_BYTE (MAX_UTF8_LEN * (MAX_PHRASE_LEN + 1)) - -struct Phrase { - char phrase[PHRASE_LEN_IN_BYTE]; - unsigned int freq; - unsigned int user_freq; - struct { - unsigned char sheng; - unsigned char yun; - } pinyin_id[MAX_PHRASE_LEN]; - size_t len; - - void reset (void) - { - phrase[0] = 0; - freq = 0; - user_freq = 0; - len = 0; - } - - bool empty (void) const - { - return len == 0; - } - - Phrase & operator += (const Phrase & a) - { - g_assert (len + a.len <= MAX_PHRASE_LEN); - g_strlcat (phrase, a.phrase, sizeof (phrase)); - std::memcpy (pinyin_id + len, a.pinyin_id, a.len << 1); - len += a.len; - return *this; - } - - operator const char * (void) const - { - return phrase; - } - -}; - -}; // namespace PyZy - -#endif // __PYZY_PHRASE_H_ diff --git a/src/PyZyPhraseArray.h b/src/PyZyPhraseArray.h deleted file mode 100644 index 3c98179..0000000 --- a/src/PyZyPhraseArray.h +++ /dev/null @@ -1,34 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_PHRASE_ARRAY_H_ -#define __PYZY_PHRASE_ARRAY_H_ - -#include -#include "PyZyPhrase.h" - -namespace PyZy { - -typedef std::vector PhraseArray; - -}; // namespace PyZy - -#endif // __PYZY_PHRASE_ARRAY_H_ diff --git a/src/PyZyPhraseEditor.cc b/src/PyZyPhraseEditor.cc deleted file mode 100644 index 2222441..0000000 --- a/src/PyZyPhraseEditor.cc +++ /dev/null @@ -1,173 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#include "PyZyPhraseEditor.h" -#include "PyZyConfig.h" -#include "PyZyDatabase.h" -#include "PyZySimpTradConverter.h" - -namespace PyZy { - -PhraseEditor::PhraseEditor (const Config & config) - : m_config(config), - m_candidates (32), - m_selected_phrases (8), - m_selected_string (32), - m_candidate_0_phrases (8), - m_pinyin (16), - m_cursor (0) -{ -} - -PhraseEditor::~PhraseEditor (void) -{ -} - -bool -PhraseEditor::update (const PinyinArray &pinyin) -{ - /* the size of pinyin must not bigger than MAX_PHRASE_LEN */ - g_assert (pinyin.size () <= MAX_PHRASE_LEN); - - m_pinyin = pinyin; - m_cursor = 0; - - /* FIXME, should not remove all phrases1 */ - m_selected_phrases.clear (); - m_selected_string.truncate (0); - updateCandidates (); - return true; -} - -bool -PhraseEditor::resetCandidate (size_t i) -{ - Database::instance ().remove (m_candidates[i]); - - updateCandidates (); - return true; -} - -void -PhraseEditor::commit (void) -{ - Database::instance ().commit (m_selected_phrases); - reset (); -} - -bool -PhraseEditor::selectCandidate (size_t i) -{ - if (G_UNLIKELY (i >= m_candidates.size ())) - return false; - - if (G_LIKELY (i == 0)) { - m_selected_phrases.insert (m_selected_phrases.end (), - m_candidate_0_phrases.begin (), - m_candidate_0_phrases.end ()); - if (G_LIKELY (m_config.modeSimp)) - m_selected_string << m_candidates[0].phrase; - else - SimpTradConverter::simpToTrad (m_candidates[0].phrase, m_selected_string); - m_cursor = m_pinyin.size (); - } - else { - m_selected_phrases.push_back (m_candidates[i]); - if (G_LIKELY (m_config.modeSimp)) - m_selected_string << m_candidates[i].phrase; - else - SimpTradConverter::simpToTrad (m_candidates[i].phrase, m_selected_string); - m_cursor += m_candidates[i].len; - } - - updateCandidates (); - return true; -} - -void -PhraseEditor::updateCandidates (void) -{ - m_candidates.clear (); - m_query.reset (); - updateTheFirstCandidate (); - - if (G_UNLIKELY (m_pinyin.size () == 0)) - return; - - if (G_LIKELY (m_candidate_0_phrases.size () > 1)) { - Phrase phrase; - phrase.reset (); - for (size_t i = 0; i < m_candidate_0_phrases.size (); i++) - phrase += m_candidate_0_phrases[i]; - m_candidates.push_back (phrase); - } - - m_query.reset (new Query (m_pinyin, - m_cursor, - m_pinyin.size () - m_cursor, - m_config.option)); - fillCandidates (); -} - -void -PhraseEditor::updateTheFirstCandidate (void) -{ - size_t begin; - size_t end; - - m_candidate_0_phrases.clear (); - - if (G_UNLIKELY (m_pinyin.size () == 0)) - return; - - begin = m_cursor; - end = m_pinyin.size (); - - while (begin != end) { - int ret; - Query query (m_pinyin, - begin, - end - begin, - m_config.option); - ret = query.fill (m_candidate_0_phrases, 1); - g_assert (ret == 1); - begin += m_candidate_0_phrases.back ().len; - } -} - -bool -PhraseEditor::fillCandidates (void) -{ - if (G_UNLIKELY (m_query.get () == NULL)) { - return false; - } - - int ret = m_query->fill (m_candidates, FILL_GRAN); - - if (G_UNLIKELY (ret < FILL_GRAN)) { - /* got all candidates from query */ - m_query.reset (); - } - - return ret > 0 ? true : false; -} - -}; // namespace PyZy diff --git a/src/PyZyPhraseEditor.h b/src/PyZyPhraseEditor.h deleted file mode 100644 index 10cc8ea..0000000 --- a/src/PyZyPhraseEditor.h +++ /dev/null @@ -1,133 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_PHRASE_EDITOR_H_ -#define __PYZY_PHRASE_EDITOR_H_ - -#include "PyZyUtil.h" -#include "PyZyString.h" -#include "PyZyPhraseArray.h" -#include "PyZyPinyinArray.h" - -#define FILL_GRAN (12) - -namespace PyZy { - -class Config; -class Database; -class Query; - -class PhraseEditor { -public: - explicit PhraseEditor (const Config & config); - ~PhraseEditor (void); - - const String & selectedString (void) const { return m_selected_string; } - const PinyinArray & pinyin (void) const { return m_pinyin; } - const PhraseArray & candidates (void) const { return m_candidates; } - size_t cursor (void) const { return m_cursor; } - - size_t cursorInChar (void) const - { - return m_cursor == 0 ? 0 : m_pinyin[m_cursor - 1].begin + m_pinyin[m_cursor - 1].len; - } - - bool pinyinExistsAfterCursor (void) const - { - return m_pinyin.size () > m_cursor; - } - - const Phrase & candidate (size_t i) const - { - return m_candidates[i]; - } - - bool fillCandidates (void); - - const PhraseArray & candidate0 (void) const - { - return m_candidate_0_phrases; - } - - bool candidateIsUserPhrase (size_t i) const - { - const Phrase & phrase = m_candidates[i]; - return phrase.len > 1 && phrase.user_freq > 0 && phrase.freq == 0; - } - - bool unselectCandidates (void) - { - if (m_cursor == 0) { - return false; - } - else { - m_selected_phrases.clear (); - m_selected_string.truncate (0); - m_cursor = 0; - updateCandidates (); - return true; - } - } - - void reset (void) - { - m_candidates.clear (); - m_selected_phrases.clear (); - m_selected_string.truncate (0); - m_candidate_0_phrases.clear (); - m_pinyin.clear (); - m_cursor = 0; - m_query.reset (); - } - - bool update (const PinyinArray &pinyin); - bool selectCandidate (size_t i); - bool resetCandidate (size_t i); - void commit (void); - - bool empty (void) const - { - return m_selected_string.empty () && m_candidate_0_phrases.empty (); - } - - operator bool (void) const - { - return !empty (); - } - -private: - void updateCandidates (void); - void updateTheFirstCandidate (void); - -private: - const Config &m_config; - PhraseArray m_candidates; // candidates phrase array - PhraseArray m_selected_phrases; // selected phrases, before cursor - String m_selected_string; // selected phrases, in string format - PhraseArray m_candidate_0_phrases; // the first candidate in phrase array format - PinyinArray m_pinyin; - size_t m_cursor; - std::shared_ptr m_query; -}; - -}; // namespace PyZy - -#endif // __PYZY_PHRASE_EDITOR_H_ diff --git a/src/PyZyPinyinArray.h b/src/PyZyPinyinArray.h deleted file mode 100644 index 1350de4..0000000 --- a/src/PyZyPinyinArray.h +++ /dev/null @@ -1,74 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_PINYIN_ARRAY_H_ -#define __PYZY_PINYIN_ARRAY_H_ - -#include -#include "PyZyTypes.h" - -namespace PyZy { - -struct PinyinSegment { - const Pinyin *pinyin; - size_t begin; - size_t len; - - PinyinSegment (const Pinyin *pinyin = NULL, size_t begin = 0, size_t len = 0) - : pinyin (pinyin), begin (begin), len (len) { } - - operator const Pinyin * (void) const - { - return pinyin; - } - - const Pinyin * operator-> (void) const - { - return pinyin; - } - - bool operator == (const PinyinSegment & p) const - { - return (pinyin == p.pinyin) && (begin == p.begin) && (len == p.len); - } - - bool operator == (const Pinyin *p) const - { - return pinyin == p; - } -}; - -class PinyinArray: public std::vector { -public: - PinyinArray (size_t init_size = 0) - { - std::vector::reserve (init_size); - } - - void append (const Pinyin *pinyin, size_t begin, size_t len) - { - push_back (PinyinSegment (pinyin, begin, len)); - } -}; - -}; // namespace PyZy - -#endif // __PYZY_PINYIN_ARRAY_H_ diff --git a/src/PyZyPinyinContext.cc b/src/PyZyPinyinContext.cc deleted file mode 100644 index a2b6a51..0000000 --- a/src/PyZyPinyinContext.cc +++ /dev/null @@ -1,211 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#include "PyZyPinyinContext.h" -#include "PyZySimpTradConverter.h" - -namespace PyZy { - -PinyinContext::PinyinContext (PhoneticContext::Observer * observer) - : PhoneticContext (observer) -{ -} - -PinyinContext::~PinyinContext () -{ -} - -void -PinyinContext::commit (CommitType type) -{ - if (G_UNLIKELY (m_buffer.empty ())) - return; - - m_buffer.clear (); - - if (G_LIKELY(type == TYPE_CONVERTED)) { - m_buffer << m_phrase_editor.selectedString (); - - const char *p; - - if (m_selected_special_phrase.empty ()) { - p = textAfterPinyin (m_buffer.utf8Length ()); - } - else { - m_buffer << m_selected_special_phrase; - p = textAfterCursor (); - } - m_buffer << p; - - m_phrase_editor.commit (); - } else { - m_buffer = m_text; - m_phrase_editor.reset (); - } - - resetContext (); - updateInputText (); - updateCursor (); - update (); - PhoneticContext::commitText (m_buffer); -} - -void -PinyinContext::updatePreeditText () -{ - /* preedit text = selected phrases + highlight candidate + rest text */ - if (G_UNLIKELY (m_phrase_editor.empty () && m_text.empty ())) { - m_preedit_text.clear (); - PhoneticContext::updatePreeditText (); - return; - } - - size_t edit_begin_word = 0; - size_t edit_end_word = 0; - size_t edit_begin_byte = 0; - size_t edit_end_byte = 0; - - m_buffer.clear (); - m_preedit_text.clear (); - - /* add selected phrases */ - m_buffer << m_phrase_editor.selectedString (); - - if (G_UNLIKELY (! m_selected_special_phrase.empty ())) { - /* add selected special phrase */ - m_buffer << m_selected_special_phrase; - edit_begin_word = edit_end_word = m_buffer.utf8Length (); - edit_begin_byte = edit_end_byte = m_buffer.size (); - - /* append text after cursor */ - m_buffer += textAfterCursor (); - } - else { - edit_begin_word = m_buffer.utf8Length (); - edit_begin_byte = m_buffer.size (); - - if (hasCandidate (0)) { - size_t index = m_focused_candidate; - if (index < m_special_phrases.size ()) { - m_buffer << m_special_phrases[index]; - edit_end_word = m_buffer.utf8Length (); - edit_end_byte = m_buffer.size (); - - /* append text after cursor */ - m_buffer << textAfterCursor (); - } - else { - const Phrase & candidate = m_phrase_editor.candidate (index - m_special_phrases.size ()); - if (m_text.size () == m_cursor) { - /* cursor at end */ - if (m_config.modeSimp) - m_buffer << candidate; - else - SimpTradConverter::simpToTrad (candidate, m_buffer); - edit_end_word = m_buffer.utf8Length (); - edit_end_byte = m_buffer.size (); - - /* append rest text */ - m_buffer << textAfterPinyin (edit_end_word); - } - else { - size_t candidate_end = edit_begin_word + candidate.len; - - m_buffer << m_pinyin[edit_begin_word]->sheng << m_pinyin[edit_begin_word]->yun; - - for (size_t i = edit_begin_word + 1; i < candidate_end; i++) { - m_buffer << ' ' << m_pinyin[i]->sheng << m_pinyin[i]->yun; - } - m_buffer << '|' << textAfterPinyin (candidate_end); - m_preedit_text.rest_text = m_buffer; - - edit_end_word = m_buffer.utf8Length (); - edit_end_byte = m_buffer.size (); - } - } - } - else { - edit_end_word = m_buffer.utf8Length (); - edit_end_byte = m_buffer.size (); - m_buffer << textAfterPinyin (); - } - } - - m_preedit_text.selected_text = m_buffer.substr (0, edit_begin_byte); - m_preedit_text.candidate_text = m_buffer.substr (edit_begin_byte, edit_end_byte - edit_begin_byte); - m_preedit_text.rest_text = m_buffer.substr (edit_end_byte); - - PhoneticContext::updatePreeditText (); -} - -void -PinyinContext::updateAuxiliaryText (void) -{ - /* clear pinyin array */ - if (G_UNLIKELY (m_text.empty () || !hasCandidate (0))) { - m_auxiliary_text = ""; - PhoneticContext::updateAuxiliaryText (); - return; - } - - m_buffer.clear (); - - if (m_selected_special_phrase.empty ()) { - if (m_focused_candidate < m_special_phrases.size ()) { - size_t begin = m_phrase_editor.cursorInChar (); - m_buffer << m_text.substr (begin, m_cursor - begin) - << '|' << textAfterCursor (); - } - else { - for (size_t i = m_phrase_editor.cursor (); i < m_pinyin.size (); ++i) { - if (G_LIKELY (i != m_phrase_editor.cursor ())) - m_buffer << ' '; - const Pinyin *p = m_pinyin[i]; - m_buffer << p->sheng - << p->yun; - } - - if (G_UNLIKELY (m_pinyin_len == m_cursor)) { - /* aux = pinyin + non-pinyin */ - // cursor_pos = m_buffer.utf8Length (); - m_buffer << '|' << textAfterPinyin (); - } - else { - /* aux = pinyin + ' ' + non-pinyin before cursor + non-pinyin after cursor */ - m_buffer << ' '; - m_buffer.append (textAfterPinyin (), - m_cursor - m_pinyin_len); - // cursor_pos = m_buffer.utf8Length (); - m_buffer << '|' << textAfterCursor (); - } - } - } - else { - if (m_cursor < m_text.size ()) { - m_buffer << '|' << textAfterCursor (); - } - } - - m_auxiliary_text = m_buffer; - PhoneticContext::updateAuxiliaryText (); -} - -}; // namespace PyZy diff --git a/src/PyZyPinyinContext.h b/src/PyZyPinyinContext.h deleted file mode 100644 index 7b4a16e..0000000 --- a/src/PyZyPinyinContext.h +++ /dev/null @@ -1,42 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_PINYIN_CONTEXT_H_ -#define __PYZY_PINYIN_CONTEXT_H_ - -#include "PyZyPhoneticContext.h" - -namespace PyZy { - -class PinyinContext : public PhoneticContext { -public: - explicit PinyinContext (PhoneticContext::Observer *observer); - virtual ~PinyinContext (void); - virtual void commit (CommitType type); - -protected: - virtual void updateAuxiliaryText (void); - virtual void updatePreeditText (void); -}; - -}; // namespace PyZy - -#endif // __PYZY_PINYIN_CONTEXT_H_ diff --git a/src/PyZyPinyinParser.cc b/src/PyZyPinyinParser.cc deleted file mode 100644 index ef8d635..0000000 --- a/src/PyZyPinyinParser.cc +++ /dev/null @@ -1,355 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ - -#include -#include -#include "PyZyConfig.h" -#include "PyZyPinyinParser.h" - -namespace PyZy { - -#include "PyZyBopomofo.h" -#include "PyZyPinyinParserTable.h" - -static bool -check_flags (const Pinyin *pinyin, unsigned int option) -{ - if (pinyin == NULL) - return false; - - if (pinyin->flags != 0) { - unsigned int flags; - flags = pinyin->flags & option; - if (flags == 0) - return false; - if ((flags != pinyin->flags) && ((pinyin->flags & PINYIN_CORRECT_ALL) != 0)) - return false; - } - return true; -} - -static int -py_cmp (const void *p1, const void *p2) -{ - const char *str = (const char *) p1; - const Pinyin *py = (const Pinyin *) p2; - - return std::strcmp (str, py->text); -} - -// TODO(hsumita): Replace "int len" to "size_t len" -static const Pinyin * -is_pinyin (const char *p, - const char *end, - int len, - unsigned int option) -{ - char buf[8]; - const Pinyin *result; - - if (G_UNLIKELY (len > 6)) - return NULL; - - if (G_UNLIKELY (len > end - p)) - return NULL; - - if (G_LIKELY (len > 0)) { - std::strncpy (buf, p, len); - buf[len] = 0; - result = (const Pinyin *) std::bsearch (buf, pinyin_table, G_N_ELEMENTS (pinyin_table), - sizeof (Pinyin), py_cmp); - if (check_flags (result, option)) - return result; - return NULL; - } - - /* len < 0 */ - len = MIN (6, end - p); - std::strncpy (buf, p, len); - - for (; len > 0; len --) { - buf[len] = 0; - - result = (const Pinyin *) std::bsearch (buf, pinyin_table, G_N_ELEMENTS (pinyin_table), - sizeof (Pinyin), py_cmp); - if (G_UNLIKELY (check_flags (result, option))) { - return result; - } - } - - return NULL; -} - -static int -sp_cmp (const void *p1, - const void *p2) -{ - const Pinyin **pys = (const Pinyin **) p1; - const Pinyin **e = (const Pinyin **) p2; - - int retval = pys[0] - e[0]; - - if (retval != 0) - return retval; - return pys[1] - e[1]; -} - -static const Pinyin ** -need_resplit(const Pinyin *p1, - const Pinyin *p2) -{ - const Pinyin * pys[] = {p1, p2}; - - return (const Pinyin **) std::bsearch (pys, special_table, G_N_ELEMENTS (special_table), - sizeof (special_table[0]), sp_cmp); -} - -size_t -PinyinParser::parse (const String &pinyin, - size_t len, - unsigned int option, - PinyinArray &result, - size_t max) -{ - const char *p; - const char *end; - const Pinyin *py; - const Pinyin *prev_py; - char prev_c; - - result.clear (); - - if (G_UNLIKELY (len < 0)) - len = pinyin.size (); - - p = pinyin; - end = p + len; - - prev_py = NULL; - - prev_c = 0; - for (; p < end && result.size () < max; ) { - if (G_UNLIKELY (*p == '\'')) { - prev_c = '\''; - p++; - continue; - } - switch (prev_c) { - case 'r': - case 'n': - case 'g': - case 'e': - switch (*p) { - case 'i': - case 'u': - case 'v': - case 'a': - case 'e': - case 'o': - case 'r': - { - const Pinyin **pp; - const Pinyin *new_py1; - const Pinyin *new_py2; - - py = is_pinyin (p, end, -1, option); - - if ((new_py1 = is_pinyin (prev_py->text, - prev_py->text + prev_py->len, - prev_py->len - 1, - option)) != NULL) { - new_py2 = is_pinyin (p -1, end, -1, option); - - if (((new_py2 != NULL) && (new_py2->len > 1 )) && - (py == NULL || new_py2->len > py->len + 1)) { - PinyinSegment & segment = result[result.size () - 1]; - segment.pinyin = new_py1; - segment.len = new_py1->len; - py = new_py2; - p --; - break; - } - } - - if ( py == NULL) - break; - - pp = need_resplit (prev_py, py); - if (pp != NULL) { - PinyinSegment & segment = result[result.size () - 1]; - segment.pinyin = pp[2]; - segment.len = pp[2]->len; - py = pp[3]; - p --; - break; - } - } - default: - py = is_pinyin (p, end, -1, option); - break; - } - break; - default: - py = is_pinyin (p, end, -1, option); - break; - } - - if (G_UNLIKELY (py == NULL)) - break; - - result.append (py, p - (const char *) pinyin, py->len); - p += py->len; - prev_c = py->text[py->len - 1]; - prev_py = py; - } - - if (G_UNLIKELY (p == (const char *)pinyin)) - return 0; -#if 0 - if (G_UNLIKELY (*(p - 1) == '\'')) - p --; -#endif - return p - (const char *)pinyin; -} - -static const char * const -id_map[] = { - "", "b", "c", "ch", - "d", "f", "g", "h", - "j", "k", "l", "m", - "n", "p", "q", "r", - "s", "sh", "t", "w", - "x", "y", "z", "zh", - "a", "ai", "an", "ang", "ao", - "e", "ei", "en", "eng", "er", - "i", "ia", "ian", "iang", "iao", - "ie", "in", "ing", "iong", "iu", - "o", "ong", "ou", - "u", "ua", "uai", "uan", "uang", - 0, /* it should be ue or ve */ - "ui", "un", "uo", "v" -}; - -const Pinyin * -PinyinParser::isPinyin (int sheng, int yun, unsigned int option) -{ - const Pinyin *result; - char buf[16]; - - std::strcpy (buf, id_map[sheng]); - - if (yun == PINYIN_ID_UE) { - /* append ue or ve base on sheng */ - switch (sheng) { - case PINYIN_ID_J: - case PINYIN_ID_Q: - case PINYIN_ID_X: - case PINYIN_ID_Y: - std::strcat (buf, "ue"); - break; - default: - std::strcat (buf, "ve"); - break; - } - } - else { - std::strcat (buf, id_map[yun]); - } - - result = (const Pinyin *) bsearch (buf, pinyin_table, G_N_ELEMENTS (pinyin_table), - sizeof (Pinyin), py_cmp); - if (check_flags (result, option)) - return result; - return NULL; -} - -static int -bopomofo_cmp (const void *p1, const void *p2) -{ - const wchar_t *s1 = (wchar_t *) p1; - const Pinyin *s2 = *(const Pinyin **) p2; - - return std::wcscmp (s1, s2->bopomofo); -} - -bool -PinyinParser::isBopomofoToneChar (const wchar_t ch) -{ - return ch == bopomofo_char[BOPOMOFO_TONE_2] - || ch == bopomofo_char[BOPOMOFO_TONE_3] - || ch == bopomofo_char[BOPOMOFO_TONE_4] - || ch == bopomofo_char[BOPOMOFO_TONE_5]; -} - -size_t -PinyinParser::parseBopomofo (const std::wstring &bopomofo, - size_t len, - unsigned int option, - PinyinArray &result, - size_t max) -{ - std::wstring::const_iterator bpmf = bopomofo.begin(); - const std::wstring::const_iterator end = bpmf + len; - const Pinyin **bs_res = NULL; - wchar_t buf[MAX_BOPOMOFO_LEN + 1]; - size_t i, j; - - result.clear (); - - if (G_UNLIKELY (len < 0)) - len = bopomofo.length (); - - for (; bpmf < end && result.size () < max;) { - for (i = MAX_BOPOMOFO_LEN; i > 0; i--){ - if (bpmf + i > end) - continue; - - for (j = 0; j < i; j++) { - wchar_t key = *(bpmf + j); - - if (j == i - 1 && isBopomofoToneChar (key)) { - break; /* ignore tone */ - } - - buf[j] = key; - } - - buf[j] = '\0'; - bs_res = (const Pinyin **) std::bsearch (buf, - bopomofo_table, - G_N_ELEMENTS (bopomofo_table), - sizeof (bopomofo_table[0]), - bopomofo_cmp); - if (bs_res != NULL && check_flags (*bs_res, option)) - break; - } - if (!(bs_res != NULL && check_flags (*bs_res, option))) - break; - - result.append(*bs_res, bpmf - bopomofo.begin (), i); - bpmf += i; - } - - return bpmf - bopomofo.begin (); -}; - -}; // namespace PyZy diff --git a/src/PyZyPinyinParser.h b/src/PyZyPinyinParser.h deleted file mode 100644 index 18bc961..0000000 --- a/src/PyZyPinyinParser.h +++ /dev/null @@ -1,49 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_PINYIN_PARSER_H_ -#define __PYZY_PINYIN_PARSER_H_ - -#include "PyZyString.h" -#include "PyZyPinyinArray.h" - -namespace PyZy { - -class PinyinParser { -public: - static size_t parse (const String &pinyin, // pinyin string - size_t len, // length of pinyin string - unsigned int option, // option - PinyinArray &result, // store pinyin in result - size_t max); // max length of the result - static const Pinyin * isPinyin (int sheng, int yun, unsigned int option); - static size_t parseBopomofo (const std::wstring &bopomofo, - size_t len, - unsigned int option, - PinyinArray &result, - size_t max); - static bool isBopomofoToneChar (const wchar_t ch); - -}; - -}; // namespace PyZy - -#endif // __PYZY_PINYIN_PARSER_H_ diff --git a/src/PyZyPinyinParserTable.h b/src/PyZyPinyinParserTable.h deleted file mode 100644 index b72c70a..0000000 --- a/src/PyZyPinyinParserTable.h +++ /dev/null @@ -1,8090 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -static const Pinyin pinyin_table[] = { - { /* 0 */ - text : "a", - bopomofo : L"ㄚ", - sheng : "", - yun : "a", - pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : 0 - }, - { /* 1 */ - text : "agn", - bopomofo : L"", - sheng : "", - yun : "ang", - pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 2 */ - text : "ai", - bopomofo : L"ㄞ", - sheng : "", - yun : "ai", - pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_AI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 3 */ - text : "amg", - bopomofo : L"", - sheng : "", - yun : "ang", - pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 4 */ - text : "an", - bopomofo : L"ㄢ", - sheng : "", - yun : "an", - pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 5 */ - text : "ang", - bopomofo : L"ㄤ", - sheng : "", - yun : "ang", - pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 6 */ - text : "ao", - bopomofo : L"ㄠ", - sheng : "", - yun : "ao", - pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_AO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 7 */ - text : "b", - bopomofo : L"ㄅ", - sheng : "b", - yun : "", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 8 */ - text : "ba", - bopomofo : L"ㄅㄚ", - sheng : "b", - yun : "a", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 9 */ - text : "bagn", - bopomofo : L"", - sheng : "b", - yun : "ang", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 10 */ - text : "bai", - bopomofo : L"ㄅㄞ", - sheng : "b", - yun : "ai", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_AI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 11 */ - text : "bamg", - bopomofo : L"", - sheng : "b", - yun : "ang", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 12 */ - text : "ban", - bopomofo : L"ㄅㄢ", - sheng : "b", - yun : "an", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 13 */ - text : "bang", - bopomofo : L"ㄅㄤ", - sheng : "b", - yun : "ang", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 14 */ - text : "bao", - bopomofo : L"ㄅㄠ", - sheng : "b", - yun : "ao", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_AO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 15 */ - text : "begn", - bopomofo : L"", - sheng : "b", - yun : "eng", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 16 */ - text : "bei", - bopomofo : L"ㄅㄟ", - sheng : "b", - yun : "ei", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_EI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 17 */ - text : "bemg", - bopomofo : L"", - sheng : "b", - yun : "eng", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 18 */ - text : "ben", - bopomofo : L"ㄅㄣ", - sheng : "b", - yun : "en", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 19 */ - text : "beng", - bopomofo : L"ㄅㄥ", - sheng : "b", - yun : "eng", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 20 */ - text : "bi", - bopomofo : L"ㄅㄧ", - sheng : "b", - yun : "i", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 21 */ - text : "bian", - bopomofo : L"ㄅㄧㄢ", - sheng : "b", - yun : "ian", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 22 */ - text : "biang", - bopomofo : L"ㄅㄧㄤ", - sheng : "b", - yun : "iang", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_IANG_IAN - }, - { /* 23 */ - text : "biao", - bopomofo : L"ㄅㄧㄠ", - sheng : "b", - yun : "iao", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 24 */ - text : "bie", - bopomofo : L"ㄅㄧㄝ", - sheng : "b", - yun : "ie", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 25 */ - text : "bign", - bopomofo : L"", - sheng : "b", - yun : "ing", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 26 */ - text : "bimg", - bopomofo : L"", - sheng : "b", - yun : "ing", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 27 */ - text : "bin", - bopomofo : L"ㄅㄧㄣ", - sheng : "b", - yun : "in", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 28 */ - text : "bing", - bopomofo : L"ㄅㄧㄥ", - sheng : "b", - yun : "ing", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 29 */ - text : "bo", - bopomofo : L"ㄅㄛ", - sheng : "b", - yun : "o", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_O }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 30 */ - text : "bu", - bopomofo : L"ㄅㄨ", - sheng : "b", - yun : "u", - pinyin_id : {{ PINYIN_ID_B, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 31 */ - text : "c", - bopomofo : L"", - sheng : "c", - yun : "", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 32 */ - text : "ca", - bopomofo : L"ㄘㄚ", - sheng : "c", - yun : "a", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_A }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 33 */ - text : "cagn", - bopomofo : L"", - sheng : "c", - yun : "ang", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ANG }, { PINYIN_ID_CH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 34 */ - text : "cai", - bopomofo : L"ㄘㄞ", - sheng : "c", - yun : "ai", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_AI }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 35 */ - text : "camg", - bopomofo : L"", - sheng : "c", - yun : "ang", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ANG }, { PINYIN_ID_CH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 36 */ - text : "can", - bopomofo : L"ㄘㄢ", - sheng : "c", - yun : "an", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_AN }, { PINYIN_ID_CH, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 37 */ - text : "cang", - bopomofo : L"ㄘㄤ", - sheng : "c", - yun : "ang", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ANG }, { PINYIN_ID_CH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 38 */ - text : "cao", - bopomofo : L"ㄘㄠ", - sheng : "c", - yun : "ao", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_AO }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 39 */ - text : "ce", - bopomofo : L"ㄘㄜ", - sheng : "c", - yun : "e", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_E }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 40 */ - text : "cegn", - bopomofo : L"", - sheng : "c", - yun : "eng", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ENG }, { PINYIN_ID_CH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 41 */ - text : "cemg", - bopomofo : L"", - sheng : "c", - yun : "eng", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ENG }, { PINYIN_ID_CH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 42 */ - text : "cen", - bopomofo : L"ㄘㄣ", - sheng : "c", - yun : "en", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_EN }, { PINYIN_ID_CH, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 43 */ - text : "ceng", - bopomofo : L"ㄘㄥ", - sheng : "c", - yun : "eng", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ENG }, { PINYIN_ID_CH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 44 */ - text : "ch", - bopomofo : L"", - sheng : "ch", - yun : "", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 45 */ - text : "cha", - bopomofo : L"ㄔㄚ", - sheng : "ch", - yun : "a", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_A }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 46 */ - text : "chagn", - bopomofo : L"", - sheng : "ch", - yun : "ang", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ANG }, { PINYIN_ID_C, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 47 */ - text : "chai", - bopomofo : L"ㄔㄞ", - sheng : "ch", - yun : "ai", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_AI }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 48 */ - text : "chamg", - bopomofo : L"", - sheng : "ch", - yun : "ang", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ANG }, { PINYIN_ID_C, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 49 */ - text : "chan", - bopomofo : L"ㄔㄢ", - sheng : "ch", - yun : "an", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_AN }, { PINYIN_ID_C, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 50 */ - text : "chang", - bopomofo : L"ㄔㄤ", - sheng : "ch", - yun : "ang", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ANG }, { PINYIN_ID_C, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 51 */ - text : "chao", - bopomofo : L"ㄔㄠ", - sheng : "ch", - yun : "ao", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_AO }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 52 */ - text : "che", - bopomofo : L"ㄔㄜ", - sheng : "ch", - yun : "e", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_E }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 53 */ - text : "chegn", - bopomofo : L"", - sheng : "ch", - yun : "eng", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ENG }, { PINYIN_ID_C, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 54 */ - text : "chemg", - bopomofo : L"", - sheng : "ch", - yun : "eng", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ENG }, { PINYIN_ID_C, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 55 */ - text : "chen", - bopomofo : L"ㄔㄣ", - sheng : "ch", - yun : "en", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_EN }, { PINYIN_ID_C, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 56 */ - text : "cheng", - bopomofo : L"ㄔㄥ", - sheng : "ch", - yun : "eng", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ENG }, { PINYIN_ID_C, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 57 */ - text : "chi", - bopomofo : L"ㄔ", - sheng : "ch", - yun : "i", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_I }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 58 */ - text : "chogn", - bopomofo : L"", - sheng : "ch", - yun : "ong", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ONG }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 59 */ - text : "chomg", - bopomofo : L"", - sheng : "ch", - yun : "ong", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ONG }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 60 */ - text : "chon", - bopomofo : L"", - sheng : "ch", - yun : "ong", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ONG }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 61 */ - text : "chong", - bopomofo : L"ㄔㄨㄥ", - sheng : "ch", - yun : "ong", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_ONG }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 62 */ - text : "chou", - bopomofo : L"ㄔㄡ", - sheng : "ch", - yun : "ou", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_OU }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 63 */ - text : "chu", - bopomofo : L"ㄔㄨ", - sheng : "ch", - yun : "u", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_U }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 64 */ - text : "chuagn", - bopomofo : L"", - sheng : "ch", - yun : "uang", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UANG }, { PINYIN_ID_C, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 6, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 65 */ - text : "chuai", - bopomofo : L"ㄔㄨㄞ", - sheng : "ch", - yun : "uai", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UAI }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 66 */ - text : "chuamg", - bopomofo : L"", - sheng : "ch", - yun : "uang", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UANG }, { PINYIN_ID_C, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 6, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 67 */ - text : "chuan", - bopomofo : L"ㄔㄨㄢ", - sheng : "ch", - yun : "uan", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UAN }, { PINYIN_ID_C, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 68 */ - text : "chuang", - bopomofo : L"ㄔㄨㄤ", - sheng : "ch", - yun : "uang", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UANG }, { PINYIN_ID_C, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 6, - flags : 0 - }, - { /* 69 */ - text : "chuei", - bopomofo : L"", - sheng : "ch", - yun : "ui", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UI }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_UEI_TO_UI - }, - { /* 70 */ - text : "chuen", - bopomofo : L"", - sheng : "ch", - yun : "un", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UN }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 71 */ - text : "chui", - bopomofo : L"ㄔㄨㄟ", - sheng : "ch", - yun : "ui", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UI }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 72 */ - text : "chun", - bopomofo : L"ㄔㄨㄣ", - sheng : "ch", - yun : "un", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UN }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 73 */ - text : "chuo", - bopomofo : L"ㄔㄨㄛ", - sheng : "ch", - yun : "uo", - pinyin_id : {{ PINYIN_ID_CH, PINYIN_ID_UO }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 74 */ - text : "ci", - bopomofo : L"ㄘ", - sheng : "c", - yun : "i", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_I }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 75 */ - text : "cogn", - bopomofo : L"", - sheng : "c", - yun : "ong", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ONG }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 76 */ - text : "comg", - bopomofo : L"", - sheng : "c", - yun : "ong", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ONG }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 77 */ - text : "con", - bopomofo : L"", - sheng : "c", - yun : "ong", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ONG }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 78 */ - text : "cong", - bopomofo : L"ㄘㄨㄥ", - sheng : "c", - yun : "ong", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_ONG }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 79 */ - text : "cou", - bopomofo : L"ㄘㄡ", - sheng : "c", - yun : "ou", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_OU }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 80 */ - text : "cu", - bopomofo : L"ㄘㄨ", - sheng : "c", - yun : "u", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_U }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 81 */ - text : "cuai", - bopomofo : L"ㄘㄨㄞ", - sheng : "c", - yun : "uai", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UAI }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_C_CH - }, - { /* 82 */ - text : "cuan", - bopomofo : L"ㄘㄨㄢ", - sheng : "c", - yun : "uan", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UAN }, { PINYIN_ID_CH, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 83 */ - text : "cuang", - bopomofo : L"ㄘㄨㄤ", - sheng : "c", - yun : "uang", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UANG }, { PINYIN_ID_CH, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_C_CH | PINYIN_FUZZY_UANG_UAN - }, - { /* 84 */ - text : "cuei", - bopomofo : L"", - sheng : "c", - yun : "ui", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UI }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEI_TO_UI - }, - { /* 85 */ - text : "cuen", - bopomofo : L"", - sheng : "c", - yun : "un", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UN }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 86 */ - text : "cui", - bopomofo : L"ㄘㄨㄟ", - sheng : "c", - yun : "ui", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UI }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 87 */ - text : "cun", - bopomofo : L"ㄘㄨㄣ", - sheng : "c", - yun : "un", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UN }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 88 */ - text : "cuo", - bopomofo : L"ㄘㄨㄛ", - sheng : "c", - yun : "uo", - pinyin_id : {{ PINYIN_ID_C, PINYIN_ID_UO }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 89 */ - text : "d", - bopomofo : L"ㄉ", - sheng : "d", - yun : "", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 90 */ - text : "da", - bopomofo : L"ㄉㄚ", - sheng : "d", - yun : "a", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 91 */ - text : "dagn", - bopomofo : L"", - sheng : "d", - yun : "ang", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 92 */ - text : "dai", - bopomofo : L"ㄉㄞ", - sheng : "d", - yun : "ai", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_AI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 93 */ - text : "damg", - bopomofo : L"", - sheng : "d", - yun : "ang", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 94 */ - text : "dan", - bopomofo : L"ㄉㄢ", - sheng : "d", - yun : "an", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 95 */ - text : "dang", - bopomofo : L"ㄉㄤ", - sheng : "d", - yun : "ang", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 96 */ - text : "dao", - bopomofo : L"ㄉㄠ", - sheng : "d", - yun : "ao", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_AO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 97 */ - text : "de", - bopomofo : L"ㄉㄜ", - sheng : "d", - yun : "e", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_E }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 98 */ - text : "degn", - bopomofo : L"", - sheng : "d", - yun : "eng", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 99 */ - text : "dei", - bopomofo : L"ㄉㄟ", - sheng : "d", - yun : "ei", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_EI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 100 */ - text : "demg", - bopomofo : L"", - sheng : "d", - yun : "eng", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 101 */ - text : "den", - bopomofo : L"ㄉㄣ", - sheng : "d", - yun : "en", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_EN_ENG - }, - { /* 102 */ - text : "deng", - bopomofo : L"ㄉㄥ", - sheng : "d", - yun : "eng", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 103 */ - text : "di", - bopomofo : L"ㄉㄧ", - sheng : "d", - yun : "i", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 104 */ - text : "dia", - bopomofo : L"ㄉㄧㄚ", - sheng : "d", - yun : "ia", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IA }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 105 */ - text : "dian", - bopomofo : L"ㄉㄧㄢ", - sheng : "d", - yun : "ian", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 106 */ - text : "diang", - bopomofo : L"ㄉㄧㄤ", - sheng : "d", - yun : "iang", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_IANG_IAN - }, - { /* 107 */ - text : "diao", - bopomofo : L"ㄉㄧㄠ", - sheng : "d", - yun : "iao", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 108 */ - text : "die", - bopomofo : L"ㄉㄧㄝ", - sheng : "d", - yun : "ie", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 109 */ - text : "dign", - bopomofo : L"", - sheng : "d", - yun : "ing", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 110 */ - text : "dimg", - bopomofo : L"", - sheng : "d", - yun : "ing", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 111 */ - text : "din", - bopomofo : L"ㄉㄧㄣ", - sheng : "d", - yun : "in", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_IN_ING - }, - { /* 112 */ - text : "ding", - bopomofo : L"ㄉㄧㄥ", - sheng : "d", - yun : "ing", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 113 */ - text : "diou", - bopomofo : L"", - sheng : "d", - yun : "iu", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_IOU_TO_IU - }, - { /* 114 */ - text : "diu", - bopomofo : L"ㄉㄧㄡ", - sheng : "d", - yun : "iu", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 115 */ - text : "dogn", - bopomofo : L"", - sheng : "d", - yun : "ong", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 116 */ - text : "domg", - bopomofo : L"", - sheng : "d", - yun : "ong", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 117 */ - text : "don", - bopomofo : L"", - sheng : "d", - yun : "ong", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 118 */ - text : "dong", - bopomofo : L"ㄉㄨㄥ", - sheng : "d", - yun : "ong", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 119 */ - text : "dou", - bopomofo : L"ㄉㄡ", - sheng : "d", - yun : "ou", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_OU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 120 */ - text : "du", - bopomofo : L"ㄉㄨ", - sheng : "d", - yun : "u", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 121 */ - text : "duan", - bopomofo : L"ㄉㄨㄢ", - sheng : "d", - yun : "uan", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 122 */ - text : "duang", - bopomofo : L"ㄉㄨㄤ", - sheng : "d", - yun : "uang", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_UANG_UAN - }, - { /* 123 */ - text : "duei", - bopomofo : L"", - sheng : "d", - yun : "ui", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_UI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEI_TO_UI - }, - { /* 124 */ - text : "duen", - bopomofo : L"", - sheng : "d", - yun : "un", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 125 */ - text : "dui", - bopomofo : L"ㄉㄨㄟ", - sheng : "d", - yun : "ui", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_UI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 126 */ - text : "dun", - bopomofo : L"ㄉㄨㄣ", - sheng : "d", - yun : "un", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 127 */ - text : "duo", - bopomofo : L"ㄉㄨㄛ", - sheng : "d", - yun : "uo", - pinyin_id : {{ PINYIN_ID_D, PINYIN_ID_UO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 128 */ - text : "e", - bopomofo : L"ㄜ", - sheng : "", - yun : "e", - pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_E }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : 0 - }, - { /* 129 */ - text : "ei", - bopomofo : L"ㄟ", - sheng : "", - yun : "ei", - pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_EI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 130 */ - text : "en", - bopomofo : L"ㄣ", - sheng : "", - yun : "en", - pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 131 */ - text : "er", - bopomofo : L"ㄦ", - sheng : "", - yun : "er", - pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_ER }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 132 */ - text : "f", - bopomofo : L"ㄈ", - sheng : "f", - yun : "", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 133 */ - text : "fa", - bopomofo : L"ㄈㄚ", - sheng : "f", - yun : "a", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_A }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 134 */ - text : "fagn", - bopomofo : L"", - sheng : "f", - yun : "ang", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ANG }, { PINYIN_ID_H, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 135 */ - text : "fai", - bopomofo : L"ㄈㄞ", - sheng : "f", - yun : "ai", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_AI }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_F_H - }, - { /* 136 */ - text : "famg", - bopomofo : L"", - sheng : "f", - yun : "ang", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ANG }, { PINYIN_ID_H, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 137 */ - text : "fan", - bopomofo : L"ㄈㄢ", - sheng : "f", - yun : "an", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_AN }, { PINYIN_ID_H, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 138 */ - text : "fang", - bopomofo : L"ㄈㄤ", - sheng : "f", - yun : "ang", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ANG }, { PINYIN_ID_H, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 139 */ - text : "fao", - bopomofo : L"ㄈㄠ", - sheng : "f", - yun : "ao", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_AO }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_F_H - }, - { /* 140 */ - text : "fe", - bopomofo : L"ㄈㄜ", - sheng : "f", - yun : "e", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_E }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : PINYIN_FUZZY_F_H - }, - { /* 141 */ - text : "fegn", - bopomofo : L"", - sheng : "f", - yun : "eng", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ENG }, { PINYIN_ID_H, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 142 */ - text : "fei", - bopomofo : L"ㄈㄟ", - sheng : "f", - yun : "ei", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_EI }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 143 */ - text : "femg", - bopomofo : L"", - sheng : "f", - yun : "eng", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ENG }, { PINYIN_ID_H, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 144 */ - text : "fen", - bopomofo : L"ㄈㄣ", - sheng : "f", - yun : "en", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_EN }, { PINYIN_ID_H, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 145 */ - text : "feng", - bopomofo : L"ㄈㄥ", - sheng : "f", - yun : "eng", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ENG }, { PINYIN_ID_H, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 146 */ - text : "fo", - bopomofo : L"ㄈㄛ", - sheng : "f", - yun : "o", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_O }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 147 */ - text : "fon", - bopomofo : L"", - sheng : "f", - yun : "ong", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ONG }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_F_H | PINYIN_CORRECT_ON_TO_ONG - }, - { /* 148 */ - text : "fong", - bopomofo : L"ㄈㄨㄥ", - sheng : "f", - yun : "ong", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_ONG }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_F_H - }, - { /* 149 */ - text : "fou", - bopomofo : L"ㄈㄡ", - sheng : "f", - yun : "ou", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_OU }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 150 */ - text : "fu", - bopomofo : L"ㄈㄨ", - sheng : "f", - yun : "u", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_U }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 151 */ - text : "fua", - bopomofo : L"ㄈㄨㄚ", - sheng : "f", - yun : "ua", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UA }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_F_H - }, - { /* 152 */ - text : "fuai", - bopomofo : L"ㄈㄨㄞ", - sheng : "f", - yun : "uai", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UAI }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_F_H - }, - { /* 153 */ - text : "fuan", - bopomofo : L"ㄈㄨㄢ", - sheng : "f", - yun : "uan", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UAN }, { PINYIN_ID_H, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_F_H - }, - { /* 154 */ - text : "fuang", - bopomofo : L"ㄈㄨㄤ", - sheng : "f", - yun : "uang", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UANG }, { PINYIN_ID_H, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_F_H - }, - { /* 155 */ - text : "fuei", - bopomofo : L"", - sheng : "f", - yun : "ui", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UI }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_F_H | PINYIN_CORRECT_UEI_TO_UI - }, - { /* 156 */ - text : "fuen", - bopomofo : L"", - sheng : "f", - yun : "un", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UN }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_F_H | PINYIN_CORRECT_UEN_TO_UN - }, - { /* 157 */ - text : "fui", - bopomofo : L"ㄈㄨㄟ", - sheng : "f", - yun : "ui", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UI }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_F_H - }, - { /* 158 */ - text : "fun", - bopomofo : L"ㄈㄨㄣ", - sheng : "f", - yun : "un", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UN }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_F_H - }, - { /* 159 */ - text : "fuo", - bopomofo : L"ㄈㄨㄛ", - sheng : "f", - yun : "uo", - pinyin_id : {{ PINYIN_ID_F, PINYIN_ID_UO }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_F_H - }, - { /* 160 */ - text : "g", - bopomofo : L"ㄍ", - sheng : "g", - yun : "", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 161 */ - text : "ga", - bopomofo : L"ㄍㄚ", - sheng : "g", - yun : "a", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_A }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 162 */ - text : "gagn", - bopomofo : L"", - sheng : "g", - yun : "ang", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ANG }, { PINYIN_ID_K, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 163 */ - text : "gai", - bopomofo : L"ㄍㄞ", - sheng : "g", - yun : "ai", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_AI }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 164 */ - text : "gamg", - bopomofo : L"", - sheng : "g", - yun : "ang", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ANG }, { PINYIN_ID_K, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 165 */ - text : "gan", - bopomofo : L"ㄍㄢ", - sheng : "g", - yun : "an", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_AN }, { PINYIN_ID_K, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 166 */ - text : "gang", - bopomofo : L"ㄍㄤ", - sheng : "g", - yun : "ang", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ANG }, { PINYIN_ID_K, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 167 */ - text : "gao", - bopomofo : L"ㄍㄠ", - sheng : "g", - yun : "ao", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_AO }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 168 */ - text : "ge", - bopomofo : L"ㄍㄜ", - sheng : "g", - yun : "e", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_E }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 169 */ - text : "gegn", - bopomofo : L"", - sheng : "g", - yun : "eng", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ENG }, { PINYIN_ID_K, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 170 */ - text : "gei", - bopomofo : L"ㄍㄟ", - sheng : "g", - yun : "ei", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_EI }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 171 */ - text : "gemg", - bopomofo : L"", - sheng : "g", - yun : "eng", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ENG }, { PINYIN_ID_K, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 172 */ - text : "gen", - bopomofo : L"ㄍㄣ", - sheng : "g", - yun : "en", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_EN }, { PINYIN_ID_K, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 173 */ - text : "geng", - bopomofo : L"ㄍㄥ", - sheng : "g", - yun : "eng", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ENG }, { PINYIN_ID_K, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 174 */ - text : "gogn", - bopomofo : L"", - sheng : "g", - yun : "ong", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ONG }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 175 */ - text : "gomg", - bopomofo : L"", - sheng : "g", - yun : "ong", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ONG }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 176 */ - text : "gon", - bopomofo : L"", - sheng : "g", - yun : "ong", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ONG }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 177 */ - text : "gong", - bopomofo : L"ㄍㄨㄥ", - sheng : "g", - yun : "ong", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_ONG }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 178 */ - text : "gou", - bopomofo : L"ㄍㄡ", - sheng : "g", - yun : "ou", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_OU }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 179 */ - text : "gu", - bopomofo : L"ㄍㄨ", - sheng : "g", - yun : "u", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_U }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 180 */ - text : "gua", - bopomofo : L"ㄍㄨㄚ", - sheng : "g", - yun : "ua", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UA }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 181 */ - text : "guagn", - bopomofo : L"", - sheng : "g", - yun : "uang", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UANG }, { PINYIN_ID_K, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 182 */ - text : "guai", - bopomofo : L"ㄍㄨㄞ", - sheng : "g", - yun : "uai", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UAI }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 183 */ - text : "guamg", - bopomofo : L"", - sheng : "g", - yun : "uang", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UANG }, { PINYIN_ID_K, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 184 */ - text : "guan", - bopomofo : L"ㄍㄨㄢ", - sheng : "g", - yun : "uan", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UAN }, { PINYIN_ID_K, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 185 */ - text : "guang", - bopomofo : L"ㄍㄨㄤ", - sheng : "g", - yun : "uang", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UANG }, { PINYIN_ID_K, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 186 */ - text : "guei", - bopomofo : L"", - sheng : "g", - yun : "ui", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UI }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEI_TO_UI - }, - { /* 187 */ - text : "guen", - bopomofo : L"", - sheng : "g", - yun : "un", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UN }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 188 */ - text : "gui", - bopomofo : L"ㄍㄨㄟ", - sheng : "g", - yun : "ui", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UI }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 189 */ - text : "gun", - bopomofo : L"ㄍㄨㄣ", - sheng : "g", - yun : "un", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UN }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 190 */ - text : "guo", - bopomofo : L"ㄍㄨㄛ", - sheng : "g", - yun : "uo", - pinyin_id : {{ PINYIN_ID_G, PINYIN_ID_UO }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 191 */ - text : "h", - bopomofo : L"ㄏ", - sheng : "h", - yun : "", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 192 */ - text : "ha", - bopomofo : L"ㄏㄚ", - sheng : "h", - yun : "a", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_A }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 193 */ - text : "hagn", - bopomofo : L"", - sheng : "h", - yun : "ang", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ANG }, { PINYIN_ID_F, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 194 */ - text : "hai", - bopomofo : L"ㄏㄞ", - sheng : "h", - yun : "ai", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_AI }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 195 */ - text : "hamg", - bopomofo : L"", - sheng : "h", - yun : "ang", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ANG }, { PINYIN_ID_F, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 196 */ - text : "han", - bopomofo : L"ㄏㄢ", - sheng : "h", - yun : "an", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_AN }, { PINYIN_ID_F, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 197 */ - text : "hang", - bopomofo : L"ㄏㄤ", - sheng : "h", - yun : "ang", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ANG }, { PINYIN_ID_F, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 198 */ - text : "hao", - bopomofo : L"ㄏㄠ", - sheng : "h", - yun : "ao", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_AO }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 199 */ - text : "he", - bopomofo : L"ㄏㄜ", - sheng : "h", - yun : "e", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_E }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 200 */ - text : "hegn", - bopomofo : L"", - sheng : "h", - yun : "eng", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ENG }, { PINYIN_ID_F, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 201 */ - text : "hei", - bopomofo : L"ㄏㄟ", - sheng : "h", - yun : "ei", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_EI }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 202 */ - text : "hemg", - bopomofo : L"", - sheng : "h", - yun : "eng", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ENG }, { PINYIN_ID_F, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 203 */ - text : "hen", - bopomofo : L"ㄏㄣ", - sheng : "h", - yun : "en", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_EN }, { PINYIN_ID_F, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 204 */ - text : "heng", - bopomofo : L"ㄏㄥ", - sheng : "h", - yun : "eng", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ENG }, { PINYIN_ID_F, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 205 */ - text : "ho", - bopomofo : L"ㄏㄛ", - sheng : "h", - yun : "o", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_O }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : PINYIN_FUZZY_H_F - }, - { /* 206 */ - text : "hogn", - bopomofo : L"", - sheng : "h", - yun : "ong", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ONG }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 207 */ - text : "homg", - bopomofo : L"", - sheng : "h", - yun : "ong", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ONG }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 208 */ - text : "hon", - bopomofo : L"", - sheng : "h", - yun : "ong", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ONG }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 209 */ - text : "hong", - bopomofo : L"ㄏㄨㄥ", - sheng : "h", - yun : "ong", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_ONG }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 210 */ - text : "hou", - bopomofo : L"ㄏㄡ", - sheng : "h", - yun : "ou", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_OU }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 211 */ - text : "hu", - bopomofo : L"ㄏㄨ", - sheng : "h", - yun : "u", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_U }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 212 */ - text : "hua", - bopomofo : L"ㄏㄨㄚ", - sheng : "h", - yun : "ua", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UA }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 213 */ - text : "huagn", - bopomofo : L"", - sheng : "h", - yun : "uang", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UANG }, { PINYIN_ID_F, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 214 */ - text : "huai", - bopomofo : L"ㄏㄨㄞ", - sheng : "h", - yun : "uai", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UAI }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 215 */ - text : "huamg", - bopomofo : L"", - sheng : "h", - yun : "uang", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UANG }, { PINYIN_ID_F, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 216 */ - text : "huan", - bopomofo : L"ㄏㄨㄢ", - sheng : "h", - yun : "uan", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UAN }, { PINYIN_ID_F, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 217 */ - text : "huang", - bopomofo : L"ㄏㄨㄤ", - sheng : "h", - yun : "uang", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UANG }, { PINYIN_ID_F, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 218 */ - text : "huei", - bopomofo : L"", - sheng : "h", - yun : "ui", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UI }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEI_TO_UI - }, - { /* 219 */ - text : "huen", - bopomofo : L"", - sheng : "h", - yun : "un", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UN }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 220 */ - text : "hui", - bopomofo : L"ㄏㄨㄟ", - sheng : "h", - yun : "ui", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UI }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 221 */ - text : "hun", - bopomofo : L"ㄏㄨㄣ", - sheng : "h", - yun : "un", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UN }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 222 */ - text : "huo", - bopomofo : L"ㄏㄨㄛ", - sheng : "h", - yun : "uo", - pinyin_id : {{ PINYIN_ID_H, PINYIN_ID_UO }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 223 */ - text : "j", - bopomofo : L"ㄐ", - sheng : "j", - yun : "", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 224 */ - text : "ji", - bopomofo : L"ㄐㄧ", - sheng : "j", - yun : "i", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 225 */ - text : "jia", - bopomofo : L"ㄐㄧㄚ", - sheng : "j", - yun : "ia", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IA }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 226 */ - text : "jiagn", - bopomofo : L"", - sheng : "j", - yun : "iang", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 227 */ - text : "jiamg", - bopomofo : L"", - sheng : "j", - yun : "iang", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 228 */ - text : "jian", - bopomofo : L"ㄐㄧㄢ", - sheng : "j", - yun : "ian", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 229 */ - text : "jiang", - bopomofo : L"ㄐㄧㄤ", - sheng : "j", - yun : "iang", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 230 */ - text : "jiao", - bopomofo : L"ㄐㄧㄠ", - sheng : "j", - yun : "iao", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 231 */ - text : "jie", - bopomofo : L"ㄐㄧㄝ", - sheng : "j", - yun : "ie", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 232 */ - text : "jign", - bopomofo : L"", - sheng : "j", - yun : "ing", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 233 */ - text : "jimg", - bopomofo : L"", - sheng : "j", - yun : "ing", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 234 */ - text : "jin", - bopomofo : L"ㄐㄧㄣ", - sheng : "j", - yun : "in", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 235 */ - text : "jing", - bopomofo : L"ㄐㄧㄥ", - sheng : "j", - yun : "ing", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 236 */ - text : "jiogn", - bopomofo : L"", - sheng : "j", - yun : "iong", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 237 */ - text : "jiomg", - bopomofo : L"", - sheng : "j", - yun : "iong", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 238 */ - text : "jion", - bopomofo : L"", - sheng : "j", - yun : "iong", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 239 */ - text : "jiong", - bopomofo : L"ㄐㄩㄥ", - sheng : "j", - yun : "iong", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 240 */ - text : "jiou", - bopomofo : L"", - sheng : "j", - yun : "iu", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_IOU_TO_IU - }, - { /* 241 */ - text : "jiu", - bopomofo : L"ㄐㄧㄡ", - sheng : "j", - yun : "iu", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 242 */ - text : "ju", - bopomofo : L"ㄐㄩ", - sheng : "j", - yun : "u", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 243 */ - text : "juan", - bopomofo : L"ㄐㄩㄢ", - sheng : "j", - yun : "uan", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 244 */ - text : "juang", - bopomofo : L"ㄐㄩㄤ", - sheng : "j", - yun : "uang", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_UANG_UAN - }, - { /* 245 */ - text : "jue", - bopomofo : L"ㄐㄩㄝ", - sheng : "j", - yun : "ue", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 246 */ - text : "juen", - bopomofo : L"", - sheng : "j", - yun : "un", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 247 */ - text : "jun", - bopomofo : L"ㄐㄩㄣ", - sheng : "j", - yun : "un", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 248 */ - text : "jv", - bopomofo : L"", - sheng : "j", - yun : "u", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 249 */ - text : "jvan", - bopomofo : L"", - sheng : "j", - yun : "uan", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 250 */ - text : "jvang", - bopomofo : L"", - sheng : "j", - yun : "uang", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_UANG_UAN | PINYIN_CORRECT_V_TO_U - }, - { /* 251 */ - text : "jve", - bopomofo : L"", - sheng : "j", - yun : "ue", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 252 */ - text : "jven", - bopomofo : L"", - sheng : "j", - yun : "un", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN | PINYIN_CORRECT_V_TO_U - }, - { /* 253 */ - text : "jvn", - bopomofo : L"", - sheng : "j", - yun : "un", - pinyin_id : {{ PINYIN_ID_J, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 254 */ - text : "k", - bopomofo : L"ㄎ", - sheng : "k", - yun : "", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 255 */ - text : "ka", - bopomofo : L"ㄎㄚ", - sheng : "k", - yun : "a", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_A }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 256 */ - text : "kagn", - bopomofo : L"", - sheng : "k", - yun : "ang", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ANG }, { PINYIN_ID_G, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 257 */ - text : "kai", - bopomofo : L"ㄎㄞ", - sheng : "k", - yun : "ai", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_AI }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 258 */ - text : "kamg", - bopomofo : L"", - sheng : "k", - yun : "ang", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ANG }, { PINYIN_ID_G, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 259 */ - text : "kan", - bopomofo : L"ㄎㄢ", - sheng : "k", - yun : "an", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_AN }, { PINYIN_ID_G, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 260 */ - text : "kang", - bopomofo : L"ㄎㄤ", - sheng : "k", - yun : "ang", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ANG }, { PINYIN_ID_G, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 261 */ - text : "kao", - bopomofo : L"ㄎㄠ", - sheng : "k", - yun : "ao", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_AO }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 262 */ - text : "ke", - bopomofo : L"ㄎㄜ", - sheng : "k", - yun : "e", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_E }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 263 */ - text : "kegn", - bopomofo : L"", - sheng : "k", - yun : "eng", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ENG }, { PINYIN_ID_G, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 264 */ - text : "kei", - bopomofo : L"ㄎㄟ", - sheng : "k", - yun : "ei", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_EI }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_K_G - }, - { /* 265 */ - text : "kemg", - bopomofo : L"", - sheng : "k", - yun : "eng", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ENG }, { PINYIN_ID_G, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 266 */ - text : "ken", - bopomofo : L"ㄎㄣ", - sheng : "k", - yun : "en", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_EN }, { PINYIN_ID_G, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 267 */ - text : "keng", - bopomofo : L"ㄎㄥ", - sheng : "k", - yun : "eng", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ENG }, { PINYIN_ID_G, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 268 */ - text : "kogn", - bopomofo : L"", - sheng : "k", - yun : "ong", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ONG }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 269 */ - text : "komg", - bopomofo : L"", - sheng : "k", - yun : "ong", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ONG }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 270 */ - text : "kon", - bopomofo : L"", - sheng : "k", - yun : "ong", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ONG }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 271 */ - text : "kong", - bopomofo : L"ㄎㄨㄥ", - sheng : "k", - yun : "ong", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_ONG }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 272 */ - text : "kou", - bopomofo : L"ㄎㄡ", - sheng : "k", - yun : "ou", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_OU }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 273 */ - text : "ku", - bopomofo : L"ㄎㄨ", - sheng : "k", - yun : "u", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_U }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 274 */ - text : "kua", - bopomofo : L"ㄎㄨㄚ", - sheng : "k", - yun : "ua", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UA }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 275 */ - text : "kuagn", - bopomofo : L"", - sheng : "k", - yun : "uang", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UANG }, { PINYIN_ID_G, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 276 */ - text : "kuai", - bopomofo : L"ㄎㄨㄞ", - sheng : "k", - yun : "uai", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UAI }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 277 */ - text : "kuamg", - bopomofo : L"", - sheng : "k", - yun : "uang", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UANG }, { PINYIN_ID_G, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 278 */ - text : "kuan", - bopomofo : L"ㄎㄨㄢ", - sheng : "k", - yun : "uan", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UAN }, { PINYIN_ID_G, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 279 */ - text : "kuang", - bopomofo : L"ㄎㄨㄤ", - sheng : "k", - yun : "uang", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UANG }, { PINYIN_ID_G, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 280 */ - text : "kuei", - bopomofo : L"", - sheng : "k", - yun : "ui", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UI }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEI_TO_UI - }, - { /* 281 */ - text : "kuen", - bopomofo : L"", - sheng : "k", - yun : "un", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UN }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 282 */ - text : "kui", - bopomofo : L"ㄎㄨㄟ", - sheng : "k", - yun : "ui", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UI }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 283 */ - text : "kun", - bopomofo : L"ㄎㄨㄣ", - sheng : "k", - yun : "un", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UN }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 284 */ - text : "kuo", - bopomofo : L"ㄎㄨㄛ", - sheng : "k", - yun : "uo", - pinyin_id : {{ PINYIN_ID_K, PINYIN_ID_UO }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 285 */ - text : "l", - bopomofo : L"ㄌ", - sheng : "l", - yun : "", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 286 */ - text : "la", - bopomofo : L"ㄌㄚ", - sheng : "l", - yun : "a", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_A }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 287 */ - text : "lagn", - bopomofo : L"", - sheng : "l", - yun : "ang", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ANG }, { PINYIN_ID_N, PINYIN_ID_AN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 288 */ - text : "lai", - bopomofo : L"ㄌㄞ", - sheng : "l", - yun : "ai", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_AI }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 289 */ - text : "lamg", - bopomofo : L"", - sheng : "l", - yun : "ang", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ANG }, { PINYIN_ID_N, PINYIN_ID_AN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 290 */ - text : "lan", - bopomofo : L"ㄌㄢ", - sheng : "l", - yun : "an", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_AN }, { PINYIN_ID_N, PINYIN_ID_ANG }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 291 */ - text : "lang", - bopomofo : L"ㄌㄤ", - sheng : "l", - yun : "ang", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ANG }, { PINYIN_ID_N, PINYIN_ID_AN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 292 */ - text : "lao", - bopomofo : L"ㄌㄠ", - sheng : "l", - yun : "ao", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_AO }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 293 */ - text : "le", - bopomofo : L"ㄌㄜ", - sheng : "l", - yun : "e", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_E }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 294 */ - text : "legn", - bopomofo : L"", - sheng : "l", - yun : "eng", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ENG }, { PINYIN_ID_N, PINYIN_ID_EN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 295 */ - text : "lei", - bopomofo : L"ㄌㄟ", - sheng : "l", - yun : "ei", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_EI }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 296 */ - text : "lemg", - bopomofo : L"", - sheng : "l", - yun : "eng", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ENG }, { PINYIN_ID_N, PINYIN_ID_EN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 297 */ - text : "len", - bopomofo : L"ㄌㄣ", - sheng : "l", - yun : "en", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_EN }, { PINYIN_ID_N, PINYIN_ID_ENG }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_L_N | PINYIN_FUZZY_L_R | PINYIN_FUZZY_EN_ENG - }, - { /* 298 */ - text : "leng", - bopomofo : L"ㄌㄥ", - sheng : "l", - yun : "eng", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ENG }, { PINYIN_ID_N, PINYIN_ID_EN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 299 */ - text : "li", - bopomofo : L"ㄌㄧ", - sheng : "l", - yun : "i", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_I }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 300 */ - text : "lia", - bopomofo : L"ㄌㄧㄚ", - sheng : "l", - yun : "ia", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IA }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 301 */ - text : "liagn", - bopomofo : L"", - sheng : "l", - yun : "iang", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IANG }, { PINYIN_ID_N, PINYIN_ID_IAN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 302 */ - text : "liamg", - bopomofo : L"", - sheng : "l", - yun : "iang", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IANG }, { PINYIN_ID_N, PINYIN_ID_IAN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 303 */ - text : "lian", - bopomofo : L"ㄌㄧㄢ", - sheng : "l", - yun : "ian", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IAN }, { PINYIN_ID_N, PINYIN_ID_IANG }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 304 */ - text : "liang", - bopomofo : L"ㄌㄧㄤ", - sheng : "l", - yun : "iang", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IANG }, { PINYIN_ID_N, PINYIN_ID_IAN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 305 */ - text : "liao", - bopomofo : L"ㄌㄧㄠ", - sheng : "l", - yun : "iao", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IAO }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 306 */ - text : "lie", - bopomofo : L"ㄌㄧㄝ", - sheng : "l", - yun : "ie", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IE }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 307 */ - text : "lign", - bopomofo : L"", - sheng : "l", - yun : "ing", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ING }, { PINYIN_ID_N, PINYIN_ID_IN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 308 */ - text : "limg", - bopomofo : L"", - sheng : "l", - yun : "ing", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ING }, { PINYIN_ID_N, PINYIN_ID_IN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 309 */ - text : "lin", - bopomofo : L"ㄌㄧㄣ", - sheng : "l", - yun : "in", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IN }, { PINYIN_ID_N, PINYIN_ID_ING }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 310 */ - text : "ling", - bopomofo : L"ㄌㄧㄥ", - sheng : "l", - yun : "ing", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ING }, { PINYIN_ID_N, PINYIN_ID_IN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 311 */ - text : "liou", - bopomofo : L"", - sheng : "l", - yun : "iu", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IU }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_IOU_TO_IU - }, - { /* 312 */ - text : "liu", - bopomofo : L"ㄌㄧㄡ", - sheng : "l", - yun : "iu", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_IU }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 313 */ - text : "lo", - bopomofo : L"ㄌㄛ", - sheng : "l", - yun : "o", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_O }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 314 */ - text : "logn", - bopomofo : L"", - sheng : "l", - yun : "ong", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ONG }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 315 */ - text : "lomg", - bopomofo : L"", - sheng : "l", - yun : "ong", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ONG }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 316 */ - text : "lon", - bopomofo : L"", - sheng : "l", - yun : "ong", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ONG }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 317 */ - text : "long", - bopomofo : L"ㄌㄨㄥ", - sheng : "l", - yun : "ong", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_ONG }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 318 */ - text : "lou", - bopomofo : L"ㄌㄡ", - sheng : "l", - yun : "ou", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_OU }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 319 */ - text : "lu", - bopomofo : L"ㄌㄨ", - sheng : "l", - yun : "u", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_U }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 320 */ - text : "luan", - bopomofo : L"ㄌㄨㄢ", - sheng : "l", - yun : "uan", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_UAN }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 321 */ - text : "luang", - bopomofo : L"ㄌㄨㄤ", - sheng : "l", - yun : "uang", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_UANG }, { PINYIN_ID_N, PINYIN_ID_UAN }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_UANG_UAN - }, - { /* 322 */ - text : "lue", - bopomofo : L"", - sheng : "l", - yun : "üe", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_VE }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_UE_TO_VE - }, - { /* 323 */ - text : "luei", - bopomofo : L"", - sheng : "l", - yun : "ui", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_UI }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_L_R | PINYIN_CORRECT_UEI_TO_UI - }, - { /* 324 */ - text : "luen", - bopomofo : L"", - sheng : "l", - yun : "un", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_UN }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 325 */ - text : "lui", - bopomofo : L"ㄌㄨㄟ", - sheng : "l", - yun : "ui", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_UI }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_L_R - }, - { /* 326 */ - text : "lun", - bopomofo : L"ㄌㄨㄣ", - sheng : "l", - yun : "un", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_UN }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 327 */ - text : "luo", - bopomofo : L"ㄌㄨㄛ", - sheng : "l", - yun : "uo", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_UO }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 328 */ - text : "lv", - bopomofo : L"ㄌㄩ", - sheng : "l", - yun : "ü", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_V }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 329 */ - text : "lve", - bopomofo : L"ㄌㄩㄝ", - sheng : "l", - yun : "üe", - pinyin_id : {{ PINYIN_ID_L, PINYIN_ID_VE }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 330 */ - text : "m", - bopomofo : L"ㄇ", - sheng : "m", - yun : "", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 331 */ - text : "ma", - bopomofo : L"ㄇㄚ", - sheng : "m", - yun : "a", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 332 */ - text : "magn", - bopomofo : L"", - sheng : "m", - yun : "ang", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 333 */ - text : "mai", - bopomofo : L"ㄇㄞ", - sheng : "m", - yun : "ai", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_AI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 334 */ - text : "mamg", - bopomofo : L"", - sheng : "m", - yun : "ang", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 335 */ - text : "man", - bopomofo : L"ㄇㄢ", - sheng : "m", - yun : "an", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 336 */ - text : "mang", - bopomofo : L"ㄇㄤ", - sheng : "m", - yun : "ang", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 337 */ - text : "mao", - bopomofo : L"ㄇㄠ", - sheng : "m", - yun : "ao", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_AO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 338 */ - text : "me", - bopomofo : L"ㄇㄜ", - sheng : "m", - yun : "e", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_E }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 339 */ - text : "megn", - bopomofo : L"", - sheng : "m", - yun : "eng", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 340 */ - text : "mei", - bopomofo : L"ㄇㄟ", - sheng : "m", - yun : "ei", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_EI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 341 */ - text : "memg", - bopomofo : L"", - sheng : "m", - yun : "eng", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 342 */ - text : "men", - bopomofo : L"ㄇㄣ", - sheng : "m", - yun : "en", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 343 */ - text : "meng", - bopomofo : L"ㄇㄥ", - sheng : "m", - yun : "eng", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 344 */ - text : "mi", - bopomofo : L"ㄇㄧ", - sheng : "m", - yun : "i", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 345 */ - text : "mian", - bopomofo : L"ㄇㄧㄢ", - sheng : "m", - yun : "ian", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 346 */ - text : "miang", - bopomofo : L"ㄇㄧㄤ", - sheng : "m", - yun : "iang", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_IANG_IAN - }, - { /* 347 */ - text : "miao", - bopomofo : L"ㄇㄧㄠ", - sheng : "m", - yun : "iao", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 348 */ - text : "mie", - bopomofo : L"ㄇㄧㄝ", - sheng : "m", - yun : "ie", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 349 */ - text : "mign", - bopomofo : L"", - sheng : "m", - yun : "ing", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 350 */ - text : "mimg", - bopomofo : L"", - sheng : "m", - yun : "ing", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 351 */ - text : "min", - bopomofo : L"ㄇㄧㄣ", - sheng : "m", - yun : "in", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 352 */ - text : "ming", - bopomofo : L"ㄇㄧㄥ", - sheng : "m", - yun : "ing", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 353 */ - text : "miou", - bopomofo : L"", - sheng : "m", - yun : "iu", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_IOU_TO_IU - }, - { /* 354 */ - text : "miu", - bopomofo : L"ㄇㄧㄡ", - sheng : "m", - yun : "iu", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 355 */ - text : "mo", - bopomofo : L"ㄇㄛ", - sheng : "m", - yun : "o", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_O }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 356 */ - text : "mou", - bopomofo : L"ㄇㄡ", - sheng : "m", - yun : "ou", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_OU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 357 */ - text : "mu", - bopomofo : L"ㄇㄨ", - sheng : "m", - yun : "u", - pinyin_id : {{ PINYIN_ID_M, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 358 */ - text : "n", - bopomofo : L"ㄋ", - sheng : "n", - yun : "", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 359 */ - text : "na", - bopomofo : L"ㄋㄚ", - sheng : "n", - yun : "a", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_A }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 360 */ - text : "nagn", - bopomofo : L"", - sheng : "n", - yun : "ang", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ANG }, { PINYIN_ID_L, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 361 */ - text : "nai", - bopomofo : L"ㄋㄞ", - sheng : "n", - yun : "ai", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_AI }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 362 */ - text : "namg", - bopomofo : L"", - sheng : "n", - yun : "ang", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ANG }, { PINYIN_ID_L, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 363 */ - text : "nan", - bopomofo : L"ㄋㄢ", - sheng : "n", - yun : "an", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_AN }, { PINYIN_ID_L, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 364 */ - text : "nang", - bopomofo : L"ㄋㄤ", - sheng : "n", - yun : "ang", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ANG }, { PINYIN_ID_L, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 365 */ - text : "nao", - bopomofo : L"ㄋㄠ", - sheng : "n", - yun : "ao", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_AO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 366 */ - text : "ne", - bopomofo : L"ㄋㄜ", - sheng : "n", - yun : "e", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_E }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 367 */ - text : "negn", - bopomofo : L"", - sheng : "n", - yun : "eng", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ENG }, { PINYIN_ID_L, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 368 */ - text : "nei", - bopomofo : L"ㄋㄟ", - sheng : "n", - yun : "ei", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_EI }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 369 */ - text : "nemg", - bopomofo : L"", - sheng : "n", - yun : "eng", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ENG }, { PINYIN_ID_L, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 370 */ - text : "nen", - bopomofo : L"ㄋㄣ", - sheng : "n", - yun : "en", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_EN }, { PINYIN_ID_L, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 371 */ - text : "neng", - bopomofo : L"ㄋㄥ", - sheng : "n", - yun : "eng", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ENG }, { PINYIN_ID_L, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 372 */ - text : "ni", - bopomofo : L"ㄋㄧ", - sheng : "n", - yun : "i", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_I }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 373 */ - text : "nia", - bopomofo : L"ㄋㄧㄚ", - sheng : "n", - yun : "ia", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IA }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_N_L - }, - { /* 374 */ - text : "niagn", - bopomofo : L"", - sheng : "n", - yun : "iang", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IANG }, { PINYIN_ID_L, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 375 */ - text : "niamg", - bopomofo : L"", - sheng : "n", - yun : "iang", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IANG }, { PINYIN_ID_L, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 376 */ - text : "nian", - bopomofo : L"ㄋㄧㄢ", - sheng : "n", - yun : "ian", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IAN }, { PINYIN_ID_L, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 377 */ - text : "niang", - bopomofo : L"ㄋㄧㄤ", - sheng : "n", - yun : "iang", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IANG }, { PINYIN_ID_L, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 378 */ - text : "niao", - bopomofo : L"ㄋㄧㄠ", - sheng : "n", - yun : "iao", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IAO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 379 */ - text : "nie", - bopomofo : L"ㄋㄧㄝ", - sheng : "n", - yun : "ie", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IE }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 380 */ - text : "nign", - bopomofo : L"", - sheng : "n", - yun : "ing", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ING }, { PINYIN_ID_L, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 381 */ - text : "nimg", - bopomofo : L"", - sheng : "n", - yun : "ing", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ING }, { PINYIN_ID_L, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 382 */ - text : "nin", - bopomofo : L"ㄋㄧㄣ", - sheng : "n", - yun : "in", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IN }, { PINYIN_ID_L, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 383 */ - text : "ning", - bopomofo : L"ㄋㄧㄥ", - sheng : "n", - yun : "ing", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ING }, { PINYIN_ID_L, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 384 */ - text : "niou", - bopomofo : L"", - sheng : "n", - yun : "iu", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IU }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_IOU_TO_IU - }, - { /* 385 */ - text : "niu", - bopomofo : L"ㄋㄧㄡ", - sheng : "n", - yun : "iu", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_IU }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 386 */ - text : "no", - bopomofo : L"ㄋㄛ", - sheng : "n", - yun : "o", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_O }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : PINYIN_FUZZY_N_L - }, - { /* 387 */ - text : "nogn", - bopomofo : L"", - sheng : "n", - yun : "ong", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 388 */ - text : "nomg", - bopomofo : L"", - sheng : "n", - yun : "ong", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 389 */ - text : "non", - bopomofo : L"", - sheng : "n", - yun : "ong", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 390 */ - text : "nong", - bopomofo : L"ㄋㄨㄥ", - sheng : "n", - yun : "ong", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 391 */ - text : "nou", - bopomofo : L"ㄋㄡ", - sheng : "n", - yun : "ou", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_OU }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 392 */ - text : "nu", - bopomofo : L"ㄋㄨ", - sheng : "n", - yun : "u", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_U }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 393 */ - text : "nuan", - bopomofo : L"ㄋㄨㄢ", - sheng : "n", - yun : "uan", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_UAN }, { PINYIN_ID_L, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 394 */ - text : "nuang", - bopomofo : L"ㄋㄨㄤ", - sheng : "n", - yun : "uang", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_UANG }, { PINYIN_ID_L, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_UANG_UAN - }, - { /* 395 */ - text : "nue", - bopomofo : L"", - sheng : "n", - yun : "üe", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_VE }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_UE_TO_VE - }, - { /* 396 */ - text : "nuen", - bopomofo : L"", - sheng : "n", - yun : "un", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_UN }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_N_L | PINYIN_CORRECT_UEN_TO_UN - }, - { /* 397 */ - text : "nun", - bopomofo : L"ㄋㄨㄣ", - sheng : "n", - yun : "un", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_UN }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_N_L - }, - { /* 398 */ - text : "nuo", - bopomofo : L"ㄋㄨㄛ", - sheng : "n", - yun : "uo", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_UO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 399 */ - text : "nv", - bopomofo : L"ㄋㄩ", - sheng : "n", - yun : "ü", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_V }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 400 */ - text : "nve", - bopomofo : L"ㄋㄩㄝ", - sheng : "n", - yun : "üe", - pinyin_id : {{ PINYIN_ID_N, PINYIN_ID_VE }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 401 */ - text : "o", - bopomofo : L"ㄛ", - sheng : "", - yun : "o", - pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_O }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : 0 - }, - { /* 402 */ - text : "ou", - bopomofo : L"ㄡ", - sheng : "", - yun : "ou", - pinyin_id : {{ PINYIN_ID_ZERO, PINYIN_ID_OU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 403 */ - text : "p", - bopomofo : L"ㄆ", - sheng : "p", - yun : "", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 404 */ - text : "pa", - bopomofo : L"ㄆㄚ", - sheng : "p", - yun : "a", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 405 */ - text : "pagn", - bopomofo : L"", - sheng : "p", - yun : "ang", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 406 */ - text : "pai", - bopomofo : L"ㄆㄞ", - sheng : "p", - yun : "ai", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_AI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 407 */ - text : "pamg", - bopomofo : L"", - sheng : "p", - yun : "ang", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 408 */ - text : "pan", - bopomofo : L"ㄆㄢ", - sheng : "p", - yun : "an", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 409 */ - text : "pang", - bopomofo : L"ㄆㄤ", - sheng : "p", - yun : "ang", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 410 */ - text : "pao", - bopomofo : L"ㄆㄠ", - sheng : "p", - yun : "ao", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_AO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 411 */ - text : "pegn", - bopomofo : L"", - sheng : "p", - yun : "eng", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 412 */ - text : "pei", - bopomofo : L"ㄆㄟ", - sheng : "p", - yun : "ei", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_EI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 413 */ - text : "pemg", - bopomofo : L"", - sheng : "p", - yun : "eng", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 414 */ - text : "pen", - bopomofo : L"ㄆㄣ", - sheng : "p", - yun : "en", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 415 */ - text : "peng", - bopomofo : L"ㄆㄥ", - sheng : "p", - yun : "eng", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 416 */ - text : "pi", - bopomofo : L"ㄆㄧ", - sheng : "p", - yun : "i", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 417 */ - text : "pian", - bopomofo : L"ㄆㄧㄢ", - sheng : "p", - yun : "ian", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 418 */ - text : "piang", - bopomofo : L"ㄆㄧㄤ", - sheng : "p", - yun : "iang", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_IANG_IAN - }, - { /* 419 */ - text : "piao", - bopomofo : L"ㄆㄧㄠ", - sheng : "p", - yun : "iao", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 420 */ - text : "pie", - bopomofo : L"ㄆㄧㄝ", - sheng : "p", - yun : "ie", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 421 */ - text : "pign", - bopomofo : L"", - sheng : "p", - yun : "ing", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 422 */ - text : "pimg", - bopomofo : L"", - sheng : "p", - yun : "ing", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 423 */ - text : "pin", - bopomofo : L"ㄆㄧㄣ", - sheng : "p", - yun : "in", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 424 */ - text : "ping", - bopomofo : L"ㄆㄧㄥ", - sheng : "p", - yun : "ing", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 425 */ - text : "po", - bopomofo : L"ㄆㄛ", - sheng : "p", - yun : "o", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_O }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 426 */ - text : "pou", - bopomofo : L"ㄆㄡ", - sheng : "p", - yun : "ou", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_OU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 427 */ - text : "pu", - bopomofo : L"ㄆㄨ", - sheng : "p", - yun : "u", - pinyin_id : {{ PINYIN_ID_P, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 428 */ - text : "q", - bopomofo : L"ㄑ", - sheng : "q", - yun : "", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 429 */ - text : "qi", - bopomofo : L"ㄑㄧ", - sheng : "q", - yun : "i", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 430 */ - text : "qia", - bopomofo : L"ㄑㄧㄚ", - sheng : "q", - yun : "ia", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IA }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 431 */ - text : "qiagn", - bopomofo : L"", - sheng : "q", - yun : "iang", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 432 */ - text : "qiamg", - bopomofo : L"", - sheng : "q", - yun : "iang", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 433 */ - text : "qian", - bopomofo : L"ㄑㄧㄢ", - sheng : "q", - yun : "ian", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 434 */ - text : "qiang", - bopomofo : L"ㄑㄧㄤ", - sheng : "q", - yun : "iang", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 435 */ - text : "qiao", - bopomofo : L"ㄑㄧㄠ", - sheng : "q", - yun : "iao", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 436 */ - text : "qie", - bopomofo : L"ㄑㄧㄝ", - sheng : "q", - yun : "ie", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 437 */ - text : "qign", - bopomofo : L"", - sheng : "q", - yun : "ing", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 438 */ - text : "qimg", - bopomofo : L"", - sheng : "q", - yun : "ing", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 439 */ - text : "qin", - bopomofo : L"ㄑㄧㄣ", - sheng : "q", - yun : "in", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 440 */ - text : "qing", - bopomofo : L"ㄑㄧㄥ", - sheng : "q", - yun : "ing", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 441 */ - text : "qiogn", - bopomofo : L"", - sheng : "q", - yun : "iong", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 442 */ - text : "qiomg", - bopomofo : L"", - sheng : "q", - yun : "iong", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 443 */ - text : "qion", - bopomofo : L"", - sheng : "q", - yun : "iong", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 444 */ - text : "qiong", - bopomofo : L"ㄑㄩㄥ", - sheng : "q", - yun : "iong", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 445 */ - text : "qiou", - bopomofo : L"", - sheng : "q", - yun : "iu", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_IOU_TO_IU - }, - { /* 446 */ - text : "qiu", - bopomofo : L"ㄑㄧㄡ", - sheng : "q", - yun : "iu", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 447 */ - text : "qu", - bopomofo : L"ㄑㄩ", - sheng : "q", - yun : "u", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 448 */ - text : "quan", - bopomofo : L"ㄑㄩㄢ", - sheng : "q", - yun : "uan", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 449 */ - text : "quang", - bopomofo : L"ㄑㄩㄤ", - sheng : "q", - yun : "uang", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_UANG_UAN - }, - { /* 450 */ - text : "que", - bopomofo : L"ㄑㄩㄝ", - sheng : "q", - yun : "ue", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 451 */ - text : "quen", - bopomofo : L"", - sheng : "q", - yun : "un", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 452 */ - text : "qun", - bopomofo : L"ㄑㄩㄣ", - sheng : "q", - yun : "un", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 453 */ - text : "qv", - bopomofo : L"", - sheng : "q", - yun : "u", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 454 */ - text : "qvan", - bopomofo : L"", - sheng : "q", - yun : "uan", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 455 */ - text : "qvang", - bopomofo : L"", - sheng : "q", - yun : "uang", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_UANG_UAN | PINYIN_CORRECT_V_TO_U - }, - { /* 456 */ - text : "qve", - bopomofo : L"", - sheng : "q", - yun : "ue", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 457 */ - text : "qven", - bopomofo : L"", - sheng : "q", - yun : "un", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN | PINYIN_CORRECT_V_TO_U - }, - { /* 458 */ - text : "qvn", - bopomofo : L"", - sheng : "q", - yun : "un", - pinyin_id : {{ PINYIN_ID_Q, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 459 */ - text : "r", - bopomofo : L"", - sheng : "r", - yun : "", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ZERO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 460 */ - text : "ra", - bopomofo : L"ㄖㄚ", - sheng : "r", - yun : "a", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_A }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : PINYIN_FUZZY_R_L - }, - { /* 461 */ - text : "ragn", - bopomofo : L"", - sheng : "r", - yun : "ang", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ANG }, { PINYIN_ID_L, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 462 */ - text : "rai", - bopomofo : L"ㄖㄞ", - sheng : "r", - yun : "ai", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_AI }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_R_L - }, - { /* 463 */ - text : "ramg", - bopomofo : L"", - sheng : "r", - yun : "ang", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ANG }, { PINYIN_ID_L, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 464 */ - text : "ran", - bopomofo : L"ㄖㄢ", - sheng : "r", - yun : "an", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_AN }, { PINYIN_ID_L, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 465 */ - text : "rang", - bopomofo : L"ㄖㄤ", - sheng : "r", - yun : "ang", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ANG }, { PINYIN_ID_L, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 466 */ - text : "rao", - bopomofo : L"ㄖㄠ", - sheng : "r", - yun : "ao", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_AO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 467 */ - text : "re", - bopomofo : L"ㄖㄜ", - sheng : "r", - yun : "e", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_E }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 468 */ - text : "regn", - bopomofo : L"", - sheng : "r", - yun : "eng", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ENG }, { PINYIN_ID_L, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 469 */ - text : "rei", - bopomofo : L"ㄖㄟ", - sheng : "r", - yun : "ei", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_EI }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_R_L - }, - { /* 470 */ - text : "remg", - bopomofo : L"", - sheng : "r", - yun : "eng", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ENG }, { PINYIN_ID_L, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 471 */ - text : "ren", - bopomofo : L"ㄖㄣ", - sheng : "r", - yun : "en", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_EN }, { PINYIN_ID_L, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 472 */ - text : "reng", - bopomofo : L"ㄖㄥ", - sheng : "r", - yun : "eng", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ENG }, { PINYIN_ID_L, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 473 */ - text : "ri", - bopomofo : L"ㄖ", - sheng : "r", - yun : "i", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_I }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 474 */ - text : "ria", - bopomofo : L"ㄖㄧㄚ", - sheng : "r", - yun : "ia", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IA }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_R_L - }, - { /* 475 */ - text : "rian", - bopomofo : L"ㄖㄧㄢ", - sheng : "r", - yun : "ian", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IAN }, { PINYIN_ID_L, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_R_L - }, - { /* 476 */ - text : "riang", - bopomofo : L"ㄖㄧㄤ", - sheng : "r", - yun : "iang", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IANG }, { PINYIN_ID_L, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_R_L - }, - { /* 477 */ - text : "riao", - bopomofo : L"ㄖㄧㄠ", - sheng : "r", - yun : "iao", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IAO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_R_L - }, - { /* 478 */ - text : "rie", - bopomofo : L"ㄖㄧㄝ", - sheng : "r", - yun : "ie", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IE }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_R_L - }, - { /* 479 */ - text : "rin", - bopomofo : L"ㄖㄧㄣ", - sheng : "r", - yun : "in", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IN }, { PINYIN_ID_L, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_R_L - }, - { /* 480 */ - text : "ring", - bopomofo : L"ㄖㄧㄥ", - sheng : "r", - yun : "ing", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ING }, { PINYIN_ID_L, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_R_L - }, - { /* 481 */ - text : "riou", - bopomofo : L"", - sheng : "r", - yun : "iu", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IU }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_R_L | PINYIN_CORRECT_IOU_TO_IU - }, - { /* 482 */ - text : "riu", - bopomofo : L"ㄖㄧㄡ", - sheng : "r", - yun : "iu", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_IU }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_R_L - }, - { /* 483 */ - text : "ro", - bopomofo : L"ㄖㄛ", - sheng : "r", - yun : "o", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_O }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : PINYIN_FUZZY_R_L - }, - { /* 484 */ - text : "rogn", - bopomofo : L"", - sheng : "r", - yun : "ong", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 485 */ - text : "romg", - bopomofo : L"", - sheng : "r", - yun : "ong", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 486 */ - text : "ron", - bopomofo : L"", - sheng : "r", - yun : "ong", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 487 */ - text : "rong", - bopomofo : L"ㄖㄨㄥ", - sheng : "r", - yun : "ong", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 488 */ - text : "rou", - bopomofo : L"ㄖㄡ", - sheng : "r", - yun : "ou", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_OU }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 489 */ - text : "ru", - bopomofo : L"ㄖㄨ", - sheng : "r", - yun : "u", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_U }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 490 */ - text : "ruan", - bopomofo : L"ㄖㄨㄢ", - sheng : "r", - yun : "uan", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_UAN }, { PINYIN_ID_L, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 491 */ - text : "ruang", - bopomofo : L"ㄖㄨㄤ", - sheng : "r", - yun : "uang", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_UANG }, { PINYIN_ID_L, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_UANG_UAN - }, - { /* 492 */ - text : "rue", - bopomofo : L"", - sheng : "r", - yun : "üe", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_VE }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_R_L | PINYIN_CORRECT_UE_TO_VE - }, - { /* 493 */ - text : "ruei", - bopomofo : L"", - sheng : "r", - yun : "ui", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_UI }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEI_TO_UI - }, - { /* 494 */ - text : "ruen", - bopomofo : L"", - sheng : "r", - yun : "un", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_UN }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 495 */ - text : "rui", - bopomofo : L"ㄖㄨㄟ", - sheng : "r", - yun : "ui", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_UI }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 496 */ - text : "run", - bopomofo : L"ㄖㄨㄣ", - sheng : "r", - yun : "un", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_UN }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 497 */ - text : "ruo", - bopomofo : L"ㄖㄨㄛ", - sheng : "r", - yun : "uo", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_UO }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 498 */ - text : "rv", - bopomofo : L"ㄖㄩ", - sheng : "r", - yun : "ü", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_V }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : PINYIN_FUZZY_R_L - }, - { /* 499 */ - text : "rve", - bopomofo : L"ㄖㄩㄝ", - sheng : "r", - yun : "üe", - pinyin_id : {{ PINYIN_ID_R, PINYIN_ID_VE }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_R_L - }, - { /* 500 */ - text : "s", - bopomofo : L"", - sheng : "s", - yun : "", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 501 */ - text : "sa", - bopomofo : L"ㄙㄚ", - sheng : "s", - yun : "a", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_A }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 502 */ - text : "sagn", - bopomofo : L"", - sheng : "s", - yun : "ang", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ANG }, { PINYIN_ID_SH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 503 */ - text : "sai", - bopomofo : L"ㄙㄞ", - sheng : "s", - yun : "ai", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_AI }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 504 */ - text : "samg", - bopomofo : L"", - sheng : "s", - yun : "ang", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ANG }, { PINYIN_ID_SH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 505 */ - text : "san", - bopomofo : L"ㄙㄢ", - sheng : "s", - yun : "an", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_AN }, { PINYIN_ID_SH, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 506 */ - text : "sang", - bopomofo : L"ㄙㄤ", - sheng : "s", - yun : "ang", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ANG }, { PINYIN_ID_SH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 507 */ - text : "sao", - bopomofo : L"ㄙㄠ", - sheng : "s", - yun : "ao", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_AO }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 508 */ - text : "se", - bopomofo : L"ㄙㄜ", - sheng : "s", - yun : "e", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_E }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 509 */ - text : "segn", - bopomofo : L"", - sheng : "s", - yun : "eng", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ENG }, { PINYIN_ID_SH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 510 */ - text : "sei", - bopomofo : L"ㄙㄟ", - sheng : "s", - yun : "ei", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_EI }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_S_SH - }, - { /* 511 */ - text : "semg", - bopomofo : L"", - sheng : "s", - yun : "eng", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ENG }, { PINYIN_ID_SH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 512 */ - text : "sen", - bopomofo : L"ㄙㄣ", - sheng : "s", - yun : "en", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_EN }, { PINYIN_ID_SH, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 513 */ - text : "seng", - bopomofo : L"ㄙㄥ", - sheng : "s", - yun : "eng", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ENG }, { PINYIN_ID_SH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 514 */ - text : "sh", - bopomofo : L"", - sheng : "sh", - yun : "", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 515 */ - text : "sha", - bopomofo : L"ㄕㄚ", - sheng : "sh", - yun : "a", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_A }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 516 */ - text : "shagn", - bopomofo : L"", - sheng : "sh", - yun : "ang", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ANG }, { PINYIN_ID_S, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 517 */ - text : "shai", - bopomofo : L"ㄕㄞ", - sheng : "sh", - yun : "ai", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_AI }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 518 */ - text : "shamg", - bopomofo : L"", - sheng : "sh", - yun : "ang", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ANG }, { PINYIN_ID_S, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 519 */ - text : "shan", - bopomofo : L"ㄕㄢ", - sheng : "sh", - yun : "an", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_AN }, { PINYIN_ID_S, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 520 */ - text : "shang", - bopomofo : L"ㄕㄤ", - sheng : "sh", - yun : "ang", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ANG }, { PINYIN_ID_S, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 521 */ - text : "shao", - bopomofo : L"ㄕㄠ", - sheng : "sh", - yun : "ao", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_AO }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 522 */ - text : "she", - bopomofo : L"ㄕㄜ", - sheng : "sh", - yun : "e", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_E }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 523 */ - text : "shegn", - bopomofo : L"", - sheng : "sh", - yun : "eng", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ENG }, { PINYIN_ID_S, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 524 */ - text : "shei", - bopomofo : L"ㄕㄟ", - sheng : "sh", - yun : "ei", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_EI }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 525 */ - text : "shemg", - bopomofo : L"", - sheng : "sh", - yun : "eng", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ENG }, { PINYIN_ID_S, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 526 */ - text : "shen", - bopomofo : L"ㄕㄣ", - sheng : "sh", - yun : "en", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_EN }, { PINYIN_ID_S, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 527 */ - text : "sheng", - bopomofo : L"ㄕㄥ", - sheng : "sh", - yun : "eng", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ENG }, { PINYIN_ID_S, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 528 */ - text : "shi", - bopomofo : L"ㄕ", - sheng : "sh", - yun : "i", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_I }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 529 */ - text : "shon", - bopomofo : L"", - sheng : "sh", - yun : "ong", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ONG }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_SH_S | PINYIN_CORRECT_ON_TO_ONG - }, - { /* 530 */ - text : "shong", - bopomofo : L"ㄕㄨㄥ", - sheng : "sh", - yun : "ong", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_ONG }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_SH_S - }, - { /* 531 */ - text : "shou", - bopomofo : L"ㄕㄡ", - sheng : "sh", - yun : "ou", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_OU }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 532 */ - text : "shu", - bopomofo : L"ㄕㄨ", - sheng : "sh", - yun : "u", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_U }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 533 */ - text : "shua", - bopomofo : L"ㄕㄨㄚ", - sheng : "sh", - yun : "ua", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UA }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 534 */ - text : "shuagn", - bopomofo : L"", - sheng : "sh", - yun : "uang", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UANG }, { PINYIN_ID_S, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 6, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 535 */ - text : "shuai", - bopomofo : L"ㄕㄨㄞ", - sheng : "sh", - yun : "uai", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UAI }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 536 */ - text : "shuamg", - bopomofo : L"", - sheng : "sh", - yun : "uang", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UANG }, { PINYIN_ID_S, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 6, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 537 */ - text : "shuan", - bopomofo : L"ㄕㄨㄢ", - sheng : "sh", - yun : "uan", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UAN }, { PINYIN_ID_S, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 538 */ - text : "shuang", - bopomofo : L"ㄕㄨㄤ", - sheng : "sh", - yun : "uang", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UANG }, { PINYIN_ID_S, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 6, - flags : 0 - }, - { /* 539 */ - text : "shuei", - bopomofo : L"", - sheng : "sh", - yun : "ui", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UI }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_UEI_TO_UI - }, - { /* 540 */ - text : "shuen", - bopomofo : L"", - sheng : "sh", - yun : "un", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UN }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 541 */ - text : "shui", - bopomofo : L"ㄕㄨㄟ", - sheng : "sh", - yun : "ui", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UI }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 542 */ - text : "shun", - bopomofo : L"ㄕㄨㄣ", - sheng : "sh", - yun : "un", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UN }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 543 */ - text : "shuo", - bopomofo : L"ㄕㄨㄛ", - sheng : "sh", - yun : "uo", - pinyin_id : {{ PINYIN_ID_SH, PINYIN_ID_UO }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 544 */ - text : "si", - bopomofo : L"ㄙ", - sheng : "s", - yun : "i", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_I }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 545 */ - text : "sogn", - bopomofo : L"", - sheng : "s", - yun : "ong", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ONG }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 546 */ - text : "somg", - bopomofo : L"", - sheng : "s", - yun : "ong", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ONG }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 547 */ - text : "son", - bopomofo : L"", - sheng : "s", - yun : "ong", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ONG }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 548 */ - text : "song", - bopomofo : L"ㄙㄨㄥ", - sheng : "s", - yun : "ong", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_ONG }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 549 */ - text : "sou", - bopomofo : L"ㄙㄡ", - sheng : "s", - yun : "ou", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_OU }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 550 */ - text : "su", - bopomofo : L"ㄙㄨ", - sheng : "s", - yun : "u", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_U }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 551 */ - text : "sua", - bopomofo : L"ㄙㄨㄚ", - sheng : "s", - yun : "ua", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UA }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_S_SH - }, - { /* 552 */ - text : "suai", - bopomofo : L"ㄙㄨㄞ", - sheng : "s", - yun : "uai", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UAI }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_S_SH - }, - { /* 553 */ - text : "suan", - bopomofo : L"ㄙㄨㄢ", - sheng : "s", - yun : "uan", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UAN }, { PINYIN_ID_SH, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 554 */ - text : "suang", - bopomofo : L"ㄙㄨㄤ", - sheng : "s", - yun : "uang", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UANG }, { PINYIN_ID_SH, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_S_SH | PINYIN_FUZZY_UANG_UAN - }, - { /* 555 */ - text : "suei", - bopomofo : L"", - sheng : "s", - yun : "ui", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UI }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEI_TO_UI - }, - { /* 556 */ - text : "suen", - bopomofo : L"", - sheng : "s", - yun : "un", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UN }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 557 */ - text : "sui", - bopomofo : L"ㄙㄨㄟ", - sheng : "s", - yun : "ui", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UI }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 558 */ - text : "sun", - bopomofo : L"ㄙㄨㄣ", - sheng : "s", - yun : "un", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UN }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 559 */ - text : "suo", - bopomofo : L"ㄙㄨㄛ", - sheng : "s", - yun : "uo", - pinyin_id : {{ PINYIN_ID_S, PINYIN_ID_UO }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 560 */ - text : "t", - bopomofo : L"ㄊ", - sheng : "t", - yun : "", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 561 */ - text : "ta", - bopomofo : L"ㄊㄚ", - sheng : "t", - yun : "a", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 562 */ - text : "tagn", - bopomofo : L"", - sheng : "t", - yun : "ang", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 563 */ - text : "tai", - bopomofo : L"ㄊㄞ", - sheng : "t", - yun : "ai", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_AI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 564 */ - text : "tamg", - bopomofo : L"", - sheng : "t", - yun : "ang", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 565 */ - text : "tan", - bopomofo : L"ㄊㄢ", - sheng : "t", - yun : "an", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 566 */ - text : "tang", - bopomofo : L"ㄊㄤ", - sheng : "t", - yun : "ang", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 567 */ - text : "tao", - bopomofo : L"ㄊㄠ", - sheng : "t", - yun : "ao", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_AO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 568 */ - text : "te", - bopomofo : L"ㄊㄜ", - sheng : "t", - yun : "e", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_E }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 569 */ - text : "tegn", - bopomofo : L"", - sheng : "t", - yun : "eng", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 570 */ - text : "temg", - bopomofo : L"", - sheng : "t", - yun : "eng", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 571 */ - text : "ten", - bopomofo : L"ㄊㄣ", - sheng : "t", - yun : "en", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_EN_ENG - }, - { /* 572 */ - text : "teng", - bopomofo : L"ㄊㄥ", - sheng : "t", - yun : "eng", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 573 */ - text : "ti", - bopomofo : L"ㄊㄧ", - sheng : "t", - yun : "i", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 574 */ - text : "tian", - bopomofo : L"ㄊㄧㄢ", - sheng : "t", - yun : "ian", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 575 */ - text : "tiang", - bopomofo : L"ㄊㄧㄤ", - sheng : "t", - yun : "iang", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_IANG_IAN - }, - { /* 576 */ - text : "tiao", - bopomofo : L"ㄊㄧㄠ", - sheng : "t", - yun : "iao", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 577 */ - text : "tie", - bopomofo : L"ㄊㄧㄝ", - sheng : "t", - yun : "ie", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 578 */ - text : "tign", - bopomofo : L"", - sheng : "t", - yun : "ing", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 579 */ - text : "timg", - bopomofo : L"", - sheng : "t", - yun : "ing", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 580 */ - text : "tin", - bopomofo : L"ㄊㄧㄣ", - sheng : "t", - yun : "in", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_IN_ING - }, - { /* 581 */ - text : "ting", - bopomofo : L"ㄊㄧㄥ", - sheng : "t", - yun : "ing", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 582 */ - text : "togn", - bopomofo : L"", - sheng : "t", - yun : "ong", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 583 */ - text : "tomg", - bopomofo : L"", - sheng : "t", - yun : "ong", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 584 */ - text : "ton", - bopomofo : L"", - sheng : "t", - yun : "ong", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 585 */ - text : "tong", - bopomofo : L"ㄊㄨㄥ", - sheng : "t", - yun : "ong", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 586 */ - text : "tou", - bopomofo : L"ㄊㄡ", - sheng : "t", - yun : "ou", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_OU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 587 */ - text : "tu", - bopomofo : L"ㄊㄨ", - sheng : "t", - yun : "u", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 588 */ - text : "tuan", - bopomofo : L"ㄊㄨㄢ", - sheng : "t", - yun : "uan", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 589 */ - text : "tuang", - bopomofo : L"ㄊㄨㄤ", - sheng : "t", - yun : "uang", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_UANG_UAN - }, - { /* 590 */ - text : "tuei", - bopomofo : L"", - sheng : "t", - yun : "ui", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_UI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEI_TO_UI - }, - { /* 591 */ - text : "tuen", - bopomofo : L"", - sheng : "t", - yun : "un", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 592 */ - text : "tui", - bopomofo : L"ㄊㄨㄟ", - sheng : "t", - yun : "ui", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_UI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 593 */ - text : "tun", - bopomofo : L"ㄊㄨㄣ", - sheng : "t", - yun : "un", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 594 */ - text : "tuo", - bopomofo : L"ㄊㄨㄛ", - sheng : "t", - yun : "uo", - pinyin_id : {{ PINYIN_ID_T, PINYIN_ID_UO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 595 */ - text : "w", - bopomofo : L"", - sheng : "w", - yun : "", - pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 596 */ - text : "wa", - bopomofo : L"ㄨㄚ", - sheng : "w", - yun : "a", - pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 597 */ - text : "wagn", - bopomofo : L"", - sheng : "w", - yun : "ang", - pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 598 */ - text : "wai", - bopomofo : L"ㄨㄞ", - sheng : "w", - yun : "ai", - pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_AI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 599 */ - text : "wamg", - bopomofo : L"", - sheng : "w", - yun : "ang", - pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 600 */ - text : "wan", - bopomofo : L"ㄨㄢ", - sheng : "w", - yun : "an", - pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 601 */ - text : "wang", - bopomofo : L"ㄨㄤ", - sheng : "w", - yun : "ang", - pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 602 */ - text : "wegn", - bopomofo : L"", - sheng : "w", - yun : "eng", - pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 603 */ - text : "wei", - bopomofo : L"ㄨㄟ", - sheng : "w", - yun : "ei", - pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_EI }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 604 */ - text : "wemg", - bopomofo : L"", - sheng : "w", - yun : "eng", - pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 605 */ - text : "wen", - bopomofo : L"ㄨㄣ", - sheng : "w", - yun : "en", - pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 606 */ - text : "weng", - bopomofo : L"ㄨㄥ", - sheng : "w", - yun : "eng", - pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 607 */ - text : "wo", - bopomofo : L"ㄨㄛ", - sheng : "w", - yun : "o", - pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_O }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 608 */ - text : "wu", - bopomofo : L"ㄨ", - sheng : "w", - yun : "u", - pinyin_id : {{ PINYIN_ID_W, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 609 */ - text : "x", - bopomofo : L"ㄒ", - sheng : "x", - yun : "", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 610 */ - text : "xi", - bopomofo : L"ㄒㄧ", - sheng : "x", - yun : "i", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 611 */ - text : "xia", - bopomofo : L"ㄒㄧㄚ", - sheng : "x", - yun : "ia", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IA }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 612 */ - text : "xiagn", - bopomofo : L"", - sheng : "x", - yun : "iang", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 613 */ - text : "xiamg", - bopomofo : L"", - sheng : "x", - yun : "iang", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 614 */ - text : "xian", - bopomofo : L"ㄒㄧㄢ", - sheng : "x", - yun : "ian", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 615 */ - text : "xiang", - bopomofo : L"ㄒㄧㄤ", - sheng : "x", - yun : "iang", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IANG }, { PINYIN_ID_ZERO, PINYIN_ID_IAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 616 */ - text : "xiao", - bopomofo : L"ㄒㄧㄠ", - sheng : "x", - yun : "iao", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IAO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 617 */ - text : "xie", - bopomofo : L"ㄒㄧㄝ", - sheng : "x", - yun : "ie", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 618 */ - text : "xign", - bopomofo : L"", - sheng : "x", - yun : "ing", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 619 */ - text : "ximg", - bopomofo : L"", - sheng : "x", - yun : "ing", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 620 */ - text : "xin", - bopomofo : L"ㄒㄧㄣ", - sheng : "x", - yun : "in", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 621 */ - text : "xing", - bopomofo : L"ㄒㄧㄥ", - sheng : "x", - yun : "ing", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 622 */ - text : "xiogn", - bopomofo : L"", - sheng : "x", - yun : "iong", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 623 */ - text : "xiomg", - bopomofo : L"", - sheng : "x", - yun : "iong", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 624 */ - text : "xion", - bopomofo : L"", - sheng : "x", - yun : "iong", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 625 */ - text : "xiong", - bopomofo : L"ㄒㄩㄥ", - sheng : "x", - yun : "iong", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 626 */ - text : "xiou", - bopomofo : L"", - sheng : "x", - yun : "iu", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_IOU_TO_IU - }, - { /* 627 */ - text : "xiu", - bopomofo : L"ㄒㄧㄡ", - sheng : "x", - yun : "iu", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_IU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 628 */ - text : "xu", - bopomofo : L"ㄒㄩ", - sheng : "x", - yun : "u", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 629 */ - text : "xuan", - bopomofo : L"ㄒㄩㄢ", - sheng : "x", - yun : "uan", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 630 */ - text : "xuang", - bopomofo : L"ㄒㄩㄤ", - sheng : "x", - yun : "uang", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_UANG_UAN - }, - { /* 631 */ - text : "xue", - bopomofo : L"ㄒㄩㄝ", - sheng : "x", - yun : "ue", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 632 */ - text : "xuen", - bopomofo : L"", - sheng : "x", - yun : "un", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 633 */ - text : "xun", - bopomofo : L"ㄒㄩㄣ", - sheng : "x", - yun : "un", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 634 */ - text : "xv", - bopomofo : L"", - sheng : "x", - yun : "u", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 635 */ - text : "xvan", - bopomofo : L"", - sheng : "x", - yun : "uan", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 636 */ - text : "xvang", - bopomofo : L"", - sheng : "x", - yun : "uang", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_UANG_UAN | PINYIN_CORRECT_V_TO_U - }, - { /* 637 */ - text : "xve", - bopomofo : L"", - sheng : "x", - yun : "ue", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 638 */ - text : "xven", - bopomofo : L"", - sheng : "x", - yun : "un", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN | PINYIN_CORRECT_V_TO_U - }, - { /* 639 */ - text : "xvn", - bopomofo : L"", - sheng : "x", - yun : "un", - pinyin_id : {{ PINYIN_ID_X, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 640 */ - text : "y", - bopomofo : L"", - sheng : "y", - yun : "", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 641 */ - text : "ya", - bopomofo : L"ㄧㄚ", - sheng : "y", - yun : "a", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_A }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 642 */ - text : "yagn", - bopomofo : L"", - sheng : "y", - yun : "ang", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 643 */ - text : "yamg", - bopomofo : L"", - sheng : "y", - yun : "ang", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 644 */ - text : "yan", - bopomofo : L"ㄧㄢ", - sheng : "y", - yun : "an", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 645 */ - text : "yang", - bopomofo : L"ㄧㄤ", - sheng : "y", - yun : "ang", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 646 */ - text : "yao", - bopomofo : L"ㄧㄠ", - sheng : "y", - yun : "ao", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_AO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 647 */ - text : "ye", - bopomofo : L"ㄧㄝ", - sheng : "y", - yun : "e", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_E }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 648 */ - text : "yi", - bopomofo : L"ㄧ", - sheng : "y", - yun : "i", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_I }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 649 */ - text : "yign", - bopomofo : L"", - sheng : "y", - yun : "ing", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 650 */ - text : "yimg", - bopomofo : L"", - sheng : "y", - yun : "ing", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 651 */ - text : "yin", - bopomofo : L"ㄧㄣ", - sheng : "y", - yun : "in", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 652 */ - text : "ying", - bopomofo : L"ㄧㄥ", - sheng : "y", - yun : "ing", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ING }, { PINYIN_ID_ZERO, PINYIN_ID_IN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 653 */ - text : "yo", - bopomofo : L"ㄧㄛ", - sheng : "y", - yun : "o", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_O }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 654 */ - text : "yogn", - bopomofo : L"", - sheng : "y", - yun : "ong", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 655 */ - text : "yomg", - bopomofo : L"", - sheng : "y", - yun : "ong", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 656 */ - text : "yon", - bopomofo : L"", - sheng : "y", - yun : "ong", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 657 */ - text : "yong", - bopomofo : L"ㄩㄥ", - sheng : "y", - yun : "ong", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 658 */ - text : "you", - bopomofo : L"ㄧㄡ", - sheng : "y", - yun : "ou", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_OU }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 659 */ - text : "yu", - bopomofo : L"ㄩ", - sheng : "y", - yun : "u", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 660 */ - text : "yuan", - bopomofo : L"ㄩㄢ", - sheng : "y", - yun : "uan", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 661 */ - text : "yuang", - bopomofo : L"ㄧㄩㄤ", - sheng : "y", - yun : "uang", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_UANG_UAN - }, - { /* 662 */ - text : "yue", - bopomofo : L"ㄩㄝ", - sheng : "y", - yun : "ue", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 663 */ - text : "yuen", - bopomofo : L"", - sheng : "y", - yun : "un", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 664 */ - text : "yun", - bopomofo : L"ㄩㄣ", - sheng : "y", - yun : "un", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 665 */ - text : "yv", - bopomofo : L"", - sheng : "y", - yun : "u", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_U }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 666 */ - text : "yvan", - bopomofo : L"", - sheng : "y", - yun : "uan", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 667 */ - text : "yvang", - bopomofo : L"", - sheng : "y", - yun : "uang", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_UANG_UAN | PINYIN_CORRECT_V_TO_U - }, - { /* 668 */ - text : "yve", - bopomofo : L"", - sheng : "y", - yun : "ue", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UE }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 669 */ - text : "yven", - bopomofo : L"", - sheng : "y", - yun : "un", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN | PINYIN_CORRECT_V_TO_U - }, - { /* 670 */ - text : "yvn", - bopomofo : L"", - sheng : "y", - yun : "un", - pinyin_id : {{ PINYIN_ID_Y, PINYIN_ID_UN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_V_TO_U - }, - { /* 671 */ - text : "z", - bopomofo : L"", - sheng : "z", - yun : "", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 1, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 672 */ - text : "za", - bopomofo : L"ㄗㄚ", - sheng : "z", - yun : "a", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_A }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 673 */ - text : "zagn", - bopomofo : L"", - sheng : "z", - yun : "ang", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ANG }, { PINYIN_ID_ZH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 674 */ - text : "zai", - bopomofo : L"ㄗㄞ", - sheng : "z", - yun : "ai", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_AI }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 675 */ - text : "zamg", - bopomofo : L"", - sheng : "z", - yun : "ang", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ANG }, { PINYIN_ID_ZH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 676 */ - text : "zan", - bopomofo : L"ㄗㄢ", - sheng : "z", - yun : "an", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_AN }, { PINYIN_ID_ZH, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 677 */ - text : "zang", - bopomofo : L"ㄗㄤ", - sheng : "z", - yun : "ang", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ANG }, { PINYIN_ID_ZH, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 678 */ - text : "zao", - bopomofo : L"ㄗㄠ", - sheng : "z", - yun : "ao", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_AO }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 679 */ - text : "ze", - bopomofo : L"ㄗㄜ", - sheng : "z", - yun : "e", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_E }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 680 */ - text : "zegn", - bopomofo : L"", - sheng : "z", - yun : "eng", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ENG }, { PINYIN_ID_ZH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 681 */ - text : "zei", - bopomofo : L"ㄗㄟ", - sheng : "z", - yun : "ei", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_EI }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 682 */ - text : "zemg", - bopomofo : L"", - sheng : "z", - yun : "eng", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ENG }, { PINYIN_ID_ZH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 683 */ - text : "zen", - bopomofo : L"ㄗㄣ", - sheng : "z", - yun : "en", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_EN }, { PINYIN_ID_ZH, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 684 */ - text : "zeng", - bopomofo : L"ㄗㄥ", - sheng : "z", - yun : "eng", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ENG }, { PINYIN_ID_ZH, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 685 */ - text : "zh", - bopomofo : L"", - sheng : "zh", - yun : "", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : PINYIN_INCOMPLETE_PINYIN - }, - { /* 686 */ - text : "zha", - bopomofo : L"ㄓㄚ", - sheng : "zh", - yun : "a", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_A }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 687 */ - text : "zhagn", - bopomofo : L"", - sheng : "zh", - yun : "ang", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ANG }, { PINYIN_ID_Z, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 688 */ - text : "zhai", - bopomofo : L"ㄓㄞ", - sheng : "zh", - yun : "ai", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_AI }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 689 */ - text : "zhamg", - bopomofo : L"", - sheng : "zh", - yun : "ang", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ANG }, { PINYIN_ID_Z, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 690 */ - text : "zhan", - bopomofo : L"ㄓㄢ", - sheng : "zh", - yun : "an", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_AN }, { PINYIN_ID_Z, PINYIN_ID_ANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 691 */ - text : "zhang", - bopomofo : L"ㄓㄤ", - sheng : "zh", - yun : "ang", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ANG }, { PINYIN_ID_Z, PINYIN_ID_AN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 692 */ - text : "zhao", - bopomofo : L"ㄓㄠ", - sheng : "zh", - yun : "ao", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_AO }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 693 */ - text : "zhe", - bopomofo : L"ㄓㄜ", - sheng : "zh", - yun : "e", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_E }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 694 */ - text : "zhegn", - bopomofo : L"", - sheng : "zh", - yun : "eng", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ENG }, { PINYIN_ID_Z, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 695 */ - text : "zhei", - bopomofo : L"ㄓㄟ", - sheng : "zh", - yun : "ei", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_EI }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_ZH_Z - }, - { /* 696 */ - text : "zhemg", - bopomofo : L"", - sheng : "zh", - yun : "eng", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ENG }, { PINYIN_ID_Z, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 697 */ - text : "zhen", - bopomofo : L"ㄓㄣ", - sheng : "zh", - yun : "en", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_EN }, { PINYIN_ID_Z, PINYIN_ID_ENG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 698 */ - text : "zheng", - bopomofo : L"ㄓㄥ", - sheng : "zh", - yun : "eng", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ENG }, { PINYIN_ID_Z, PINYIN_ID_EN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 699 */ - text : "zhi", - bopomofo : L"ㄓ", - sheng : "zh", - yun : "i", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_I }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 700 */ - text : "zhogn", - bopomofo : L"", - sheng : "zh", - yun : "ong", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ONG }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 701 */ - text : "zhomg", - bopomofo : L"", - sheng : "zh", - yun : "ong", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ONG }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 702 */ - text : "zhon", - bopomofo : L"", - sheng : "zh", - yun : "ong", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ONG }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 703 */ - text : "zhong", - bopomofo : L"ㄓㄨㄥ", - sheng : "zh", - yun : "ong", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_ONG }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 704 */ - text : "zhou", - bopomofo : L"ㄓㄡ", - sheng : "zh", - yun : "ou", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_OU }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 705 */ - text : "zhu", - bopomofo : L"ㄓㄨ", - sheng : "zh", - yun : "u", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_U }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 706 */ - text : "zhua", - bopomofo : L"ㄓㄨㄚ", - sheng : "zh", - yun : "ua", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UA }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 707 */ - text : "zhuagn", - bopomofo : L"", - sheng : "zh", - yun : "uang", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UANG }, { PINYIN_ID_Z, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 6, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 708 */ - text : "zhuai", - bopomofo : L"ㄓㄨㄞ", - sheng : "zh", - yun : "uai", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UAI }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 709 */ - text : "zhuamg", - bopomofo : L"", - sheng : "zh", - yun : "uang", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UANG }, { PINYIN_ID_Z, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 6, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 710 */ - text : "zhuan", - bopomofo : L"ㄓㄨㄢ", - sheng : "zh", - yun : "uan", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UAN }, { PINYIN_ID_Z, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : 0 - }, - { /* 711 */ - text : "zhuang", - bopomofo : L"ㄓㄨㄤ", - sheng : "zh", - yun : "uang", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UANG }, { PINYIN_ID_Z, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 6, - flags : 0 - }, - { /* 712 */ - text : "zhuei", - bopomofo : L"", - sheng : "zh", - yun : "ui", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UI }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_UEI_TO_UI - }, - { /* 713 */ - text : "zhuen", - bopomofo : L"", - sheng : "zh", - yun : "un", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UN }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 714 */ - text : "zhui", - bopomofo : L"ㄓㄨㄟ", - sheng : "zh", - yun : "ui", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UI }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 715 */ - text : "zhun", - bopomofo : L"ㄓㄨㄣ", - sheng : "zh", - yun : "un", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UN }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 716 */ - text : "zhuo", - bopomofo : L"ㄓㄨㄛ", - sheng : "zh", - yun : "uo", - pinyin_id : {{ PINYIN_ID_ZH, PINYIN_ID_UO }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 717 */ - text : "zi", - bopomofo : L"ㄗ", - sheng : "z", - yun : "i", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_I }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 718 */ - text : "zogn", - bopomofo : L"", - sheng : "z", - yun : "ong", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ONG }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_GN_TO_NG - }, - { /* 719 */ - text : "zomg", - bopomofo : L"", - sheng : "z", - yun : "ong", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ONG }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_MG_TO_NG - }, - { /* 720 */ - text : "zon", - bopomofo : L"", - sheng : "z", - yun : "ong", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ONG }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_CORRECT_ON_TO_ONG - }, - { /* 721 */ - text : "zong", - bopomofo : L"ㄗㄨㄥ", - sheng : "z", - yun : "ong", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_ONG }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 722 */ - text : "zou", - bopomofo : L"ㄗㄡ", - sheng : "z", - yun : "ou", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_OU }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 723 */ - text : "zu", - bopomofo : L"ㄗㄨ", - sheng : "z", - yun : "u", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_U }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 2, - flags : 0 - }, - { /* 724 */ - text : "zua", - bopomofo : L"ㄗㄨㄚ", - sheng : "z", - yun : "ua", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UA }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : PINYIN_FUZZY_Z_ZH - }, - { /* 725 */ - text : "zuai", - bopomofo : L"ㄗㄨㄞ", - sheng : "z", - yun : "uai", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UAI }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_FUZZY_Z_ZH - }, - { /* 726 */ - text : "zuan", - bopomofo : L"ㄗㄨㄢ", - sheng : "z", - yun : "uan", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UAN }, { PINYIN_ID_ZH, PINYIN_ID_UANG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : 0 - }, - { /* 727 */ - text : "zuang", - bopomofo : L"ㄗㄨㄤ", - sheng : "z", - yun : "uang", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UANG }, { PINYIN_ID_ZH, PINYIN_ID_UAN }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 5, - flags : PINYIN_FUZZY_Z_ZH | PINYIN_FUZZY_UANG_UAN - }, - { /* 728 */ - text : "zuei", - bopomofo : L"", - sheng : "z", - yun : "ui", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UI }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEI_TO_UI - }, - { /* 729 */ - text : "zuen", - bopomofo : L"", - sheng : "z", - yun : "un", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UN }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 4, - flags : PINYIN_CORRECT_UEN_TO_UN - }, - { /* 730 */ - text : "zui", - bopomofo : L"ㄗㄨㄟ", - sheng : "z", - yun : "ui", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UI }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 731 */ - text : "zun", - bopomofo : L"ㄗㄨㄣ", - sheng : "z", - yun : "un", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UN }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, - { /* 732 */ - text : "zuo", - bopomofo : L"ㄗㄨㄛ", - sheng : "z", - yun : "uo", - pinyin_id : {{ PINYIN_ID_Z, PINYIN_ID_UO }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }}, - len : 3, - flags : 0 - }, -}; - -static const Pinyin *bopomofo_table[] = { - &pinyin_table[7], // "ㄅ" => "b" - &pinyin_table[8], // "ㄅㄚ" => "ba" - &pinyin_table[29], // "ㄅㄛ" => "bo" - &pinyin_table[10], // "ㄅㄞ" => "bai" - &pinyin_table[16], // "ㄅㄟ" => "bei" - &pinyin_table[14], // "ㄅㄠ" => "bao" - &pinyin_table[12], // "ㄅㄢ" => "ban" - &pinyin_table[18], // "ㄅㄣ" => "ben" - &pinyin_table[13], // "ㄅㄤ" => "bang" - &pinyin_table[19], // "ㄅㄥ" => "beng" - &pinyin_table[20], // "ㄅㄧ" => "bi" - &pinyin_table[24], // "ㄅㄧㄝ" => "bie" - &pinyin_table[23], // "ㄅㄧㄠ" => "biao" - &pinyin_table[21], // "ㄅㄧㄢ" => "bian" - &pinyin_table[27], // "ㄅㄧㄣ" => "bin" - &pinyin_table[22], // "ㄅㄧㄤ" => "biang" - &pinyin_table[28], // "ㄅㄧㄥ" => "bing" - &pinyin_table[30], // "ㄅㄨ" => "bu" - &pinyin_table[403], // "ㄆ" => "p" - &pinyin_table[404], // "ㄆㄚ" => "pa" - &pinyin_table[425], // "ㄆㄛ" => "po" - &pinyin_table[406], // "ㄆㄞ" => "pai" - &pinyin_table[412], // "ㄆㄟ" => "pei" - &pinyin_table[410], // "ㄆㄠ" => "pao" - &pinyin_table[426], // "ㄆㄡ" => "pou" - &pinyin_table[408], // "ㄆㄢ" => "pan" - &pinyin_table[414], // "ㄆㄣ" => "pen" - &pinyin_table[409], // "ㄆㄤ" => "pang" - &pinyin_table[415], // "ㄆㄥ" => "peng" - &pinyin_table[416], // "ㄆㄧ" => "pi" - &pinyin_table[420], // "ㄆㄧㄝ" => "pie" - &pinyin_table[419], // "ㄆㄧㄠ" => "piao" - &pinyin_table[417], // "ㄆㄧㄢ" => "pian" - &pinyin_table[423], // "ㄆㄧㄣ" => "pin" - &pinyin_table[418], // "ㄆㄧㄤ" => "piang" - &pinyin_table[424], // "ㄆㄧㄥ" => "ping" - &pinyin_table[427], // "ㄆㄨ" => "pu" - &pinyin_table[330], // "ㄇ" => "m" - &pinyin_table[331], // "ㄇㄚ" => "ma" - &pinyin_table[355], // "ㄇㄛ" => "mo" - &pinyin_table[338], // "ㄇㄜ" => "me" - &pinyin_table[333], // "ㄇㄞ" => "mai" - &pinyin_table[340], // "ㄇㄟ" => "mei" - &pinyin_table[337], // "ㄇㄠ" => "mao" - &pinyin_table[356], // "ㄇㄡ" => "mou" - &pinyin_table[335], // "ㄇㄢ" => "man" - &pinyin_table[342], // "ㄇㄣ" => "men" - &pinyin_table[336], // "ㄇㄤ" => "mang" - &pinyin_table[343], // "ㄇㄥ" => "meng" - &pinyin_table[344], // "ㄇㄧ" => "mi" - &pinyin_table[348], // "ㄇㄧㄝ" => "mie" - &pinyin_table[347], // "ㄇㄧㄠ" => "miao" - &pinyin_table[354], // "ㄇㄧㄡ" => "miu" - &pinyin_table[345], // "ㄇㄧㄢ" => "mian" - &pinyin_table[351], // "ㄇㄧㄣ" => "min" - &pinyin_table[346], // "ㄇㄧㄤ" => "miang" - &pinyin_table[352], // "ㄇㄧㄥ" => "ming" - &pinyin_table[357], // "ㄇㄨ" => "mu" - &pinyin_table[132], // "ㄈ" => "f" - &pinyin_table[133], // "ㄈㄚ" => "fa" - &pinyin_table[146], // "ㄈㄛ" => "fo" - &pinyin_table[140], // "ㄈㄜ" => "fe" - &pinyin_table[135], // "ㄈㄞ" => "fai" - &pinyin_table[142], // "ㄈㄟ" => "fei" - &pinyin_table[139], // "ㄈㄠ" => "fao" - &pinyin_table[149], // "ㄈㄡ" => "fou" - &pinyin_table[137], // "ㄈㄢ" => "fan" - &pinyin_table[144], // "ㄈㄣ" => "fen" - &pinyin_table[138], // "ㄈㄤ" => "fang" - &pinyin_table[145], // "ㄈㄥ" => "feng" - &pinyin_table[150], // "ㄈㄨ" => "fu" - &pinyin_table[151], // "ㄈㄨㄚ" => "fua" - &pinyin_table[159], // "ㄈㄨㄛ" => "fuo" - &pinyin_table[152], // "ㄈㄨㄞ" => "fuai" - &pinyin_table[157], // "ㄈㄨㄟ" => "fui" - &pinyin_table[153], // "ㄈㄨㄢ" => "fuan" - &pinyin_table[158], // "ㄈㄨㄣ" => "fun" - &pinyin_table[154], // "ㄈㄨㄤ" => "fuang" - &pinyin_table[148], // "ㄈㄨㄥ" => "fong" - &pinyin_table[89], // "ㄉ" => "d" - &pinyin_table[90], // "ㄉㄚ" => "da" - &pinyin_table[97], // "ㄉㄜ" => "de" - &pinyin_table[92], // "ㄉㄞ" => "dai" - &pinyin_table[99], // "ㄉㄟ" => "dei" - &pinyin_table[96], // "ㄉㄠ" => "dao" - &pinyin_table[119], // "ㄉㄡ" => "dou" - &pinyin_table[94], // "ㄉㄢ" => "dan" - &pinyin_table[101], // "ㄉㄣ" => "den" - &pinyin_table[95], // "ㄉㄤ" => "dang" - &pinyin_table[102], // "ㄉㄥ" => "deng" - &pinyin_table[103], // "ㄉㄧ" => "di" - &pinyin_table[104], // "ㄉㄧㄚ" => "dia" - &pinyin_table[108], // "ㄉㄧㄝ" => "die" - &pinyin_table[107], // "ㄉㄧㄠ" => "diao" - &pinyin_table[114], // "ㄉㄧㄡ" => "diu" - &pinyin_table[105], // "ㄉㄧㄢ" => "dian" - &pinyin_table[111], // "ㄉㄧㄣ" => "din" - &pinyin_table[106], // "ㄉㄧㄤ" => "diang" - &pinyin_table[112], // "ㄉㄧㄥ" => "ding" - &pinyin_table[120], // "ㄉㄨ" => "du" - &pinyin_table[127], // "ㄉㄨㄛ" => "duo" - &pinyin_table[125], // "ㄉㄨㄟ" => "dui" - &pinyin_table[121], // "ㄉㄨㄢ" => "duan" - &pinyin_table[126], // "ㄉㄨㄣ" => "dun" - &pinyin_table[122], // "ㄉㄨㄤ" => "duang" - &pinyin_table[118], // "ㄉㄨㄥ" => "dong" - &pinyin_table[560], // "ㄊ" => "t" - &pinyin_table[561], // "ㄊㄚ" => "ta" - &pinyin_table[568], // "ㄊㄜ" => "te" - &pinyin_table[563], // "ㄊㄞ" => "tai" - &pinyin_table[567], // "ㄊㄠ" => "tao" - &pinyin_table[586], // "ㄊㄡ" => "tou" - &pinyin_table[565], // "ㄊㄢ" => "tan" - &pinyin_table[571], // "ㄊㄣ" => "ten" - &pinyin_table[566], // "ㄊㄤ" => "tang" - &pinyin_table[572], // "ㄊㄥ" => "teng" - &pinyin_table[573], // "ㄊㄧ" => "ti" - &pinyin_table[577], // "ㄊㄧㄝ" => "tie" - &pinyin_table[576], // "ㄊㄧㄠ" => "tiao" - &pinyin_table[574], // "ㄊㄧㄢ" => "tian" - &pinyin_table[580], // "ㄊㄧㄣ" => "tin" - &pinyin_table[575], // "ㄊㄧㄤ" => "tiang" - &pinyin_table[581], // "ㄊㄧㄥ" => "ting" - &pinyin_table[587], // "ㄊㄨ" => "tu" - &pinyin_table[594], // "ㄊㄨㄛ" => "tuo" - &pinyin_table[592], // "ㄊㄨㄟ" => "tui" - &pinyin_table[588], // "ㄊㄨㄢ" => "tuan" - &pinyin_table[593], // "ㄊㄨㄣ" => "tun" - &pinyin_table[589], // "ㄊㄨㄤ" => "tuang" - &pinyin_table[585], // "ㄊㄨㄥ" => "tong" - &pinyin_table[358], // "ㄋ" => "n" - &pinyin_table[359], // "ㄋㄚ" => "na" - &pinyin_table[386], // "ㄋㄛ" => "no" - &pinyin_table[366], // "ㄋㄜ" => "ne" - &pinyin_table[361], // "ㄋㄞ" => "nai" - &pinyin_table[368], // "ㄋㄟ" => "nei" - &pinyin_table[365], // "ㄋㄠ" => "nao" - &pinyin_table[391], // "ㄋㄡ" => "nou" - &pinyin_table[363], // "ㄋㄢ" => "nan" - &pinyin_table[370], // "ㄋㄣ" => "nen" - &pinyin_table[364], // "ㄋㄤ" => "nang" - &pinyin_table[371], // "ㄋㄥ" => "neng" - &pinyin_table[372], // "ㄋㄧ" => "ni" - &pinyin_table[373], // "ㄋㄧㄚ" => "nia" - &pinyin_table[379], // "ㄋㄧㄝ" => "nie" - &pinyin_table[378], // "ㄋㄧㄠ" => "niao" - &pinyin_table[385], // "ㄋㄧㄡ" => "niu" - &pinyin_table[376], // "ㄋㄧㄢ" => "nian" - &pinyin_table[382], // "ㄋㄧㄣ" => "nin" - &pinyin_table[377], // "ㄋㄧㄤ" => "niang" - &pinyin_table[383], // "ㄋㄧㄥ" => "ning" - &pinyin_table[392], // "ㄋㄨ" => "nu" - &pinyin_table[398], // "ㄋㄨㄛ" => "nuo" - &pinyin_table[393], // "ㄋㄨㄢ" => "nuan" - &pinyin_table[397], // "ㄋㄨㄣ" => "nun" - &pinyin_table[394], // "ㄋㄨㄤ" => "nuang" - &pinyin_table[390], // "ㄋㄨㄥ" => "nong" - &pinyin_table[399], // "ㄋㄩ" => "nv" - &pinyin_table[400], // "ㄋㄩㄝ" => "nve" - &pinyin_table[285], // "ㄌ" => "l" - &pinyin_table[286], // "ㄌㄚ" => "la" - &pinyin_table[313], // "ㄌㄛ" => "lo" - &pinyin_table[293], // "ㄌㄜ" => "le" - &pinyin_table[288], // "ㄌㄞ" => "lai" - &pinyin_table[295], // "ㄌㄟ" => "lei" - &pinyin_table[292], // "ㄌㄠ" => "lao" - &pinyin_table[318], // "ㄌㄡ" => "lou" - &pinyin_table[290], // "ㄌㄢ" => "lan" - &pinyin_table[297], // "ㄌㄣ" => "len" - &pinyin_table[291], // "ㄌㄤ" => "lang" - &pinyin_table[298], // "ㄌㄥ" => "leng" - &pinyin_table[299], // "ㄌㄧ" => "li" - &pinyin_table[300], // "ㄌㄧㄚ" => "lia" - &pinyin_table[306], // "ㄌㄧㄝ" => "lie" - &pinyin_table[305], // "ㄌㄧㄠ" => "liao" - &pinyin_table[312], // "ㄌㄧㄡ" => "liu" - &pinyin_table[303], // "ㄌㄧㄢ" => "lian" - &pinyin_table[309], // "ㄌㄧㄣ" => "lin" - &pinyin_table[304], // "ㄌㄧㄤ" => "liang" - &pinyin_table[310], // "ㄌㄧㄥ" => "ling" - &pinyin_table[319], // "ㄌㄨ" => "lu" - &pinyin_table[327], // "ㄌㄨㄛ" => "luo" - &pinyin_table[325], // "ㄌㄨㄟ" => "lui" - &pinyin_table[320], // "ㄌㄨㄢ" => "luan" - &pinyin_table[326], // "ㄌㄨㄣ" => "lun" - &pinyin_table[321], // "ㄌㄨㄤ" => "luang" - &pinyin_table[317], // "ㄌㄨㄥ" => "long" - &pinyin_table[328], // "ㄌㄩ" => "lv" - &pinyin_table[329], // "ㄌㄩㄝ" => "lve" - &pinyin_table[160], // "ㄍ" => "g" - &pinyin_table[161], // "ㄍㄚ" => "ga" - &pinyin_table[168], // "ㄍㄜ" => "ge" - &pinyin_table[163], // "ㄍㄞ" => "gai" - &pinyin_table[170], // "ㄍㄟ" => "gei" - &pinyin_table[167], // "ㄍㄠ" => "gao" - &pinyin_table[178], // "ㄍㄡ" => "gou" - &pinyin_table[165], // "ㄍㄢ" => "gan" - &pinyin_table[172], // "ㄍㄣ" => "gen" - &pinyin_table[166], // "ㄍㄤ" => "gang" - &pinyin_table[173], // "ㄍㄥ" => "geng" - &pinyin_table[179], // "ㄍㄨ" => "gu" - &pinyin_table[180], // "ㄍㄨㄚ" => "gua" - &pinyin_table[190], // "ㄍㄨㄛ" => "guo" - &pinyin_table[182], // "ㄍㄨㄞ" => "guai" - &pinyin_table[188], // "ㄍㄨㄟ" => "gui" - &pinyin_table[184], // "ㄍㄨㄢ" => "guan" - &pinyin_table[189], // "ㄍㄨㄣ" => "gun" - &pinyin_table[185], // "ㄍㄨㄤ" => "guang" - &pinyin_table[177], // "ㄍㄨㄥ" => "gong" - &pinyin_table[254], // "ㄎ" => "k" - &pinyin_table[255], // "ㄎㄚ" => "ka" - &pinyin_table[262], // "ㄎㄜ" => "ke" - &pinyin_table[257], // "ㄎㄞ" => "kai" - &pinyin_table[264], // "ㄎㄟ" => "kei" - &pinyin_table[261], // "ㄎㄠ" => "kao" - &pinyin_table[272], // "ㄎㄡ" => "kou" - &pinyin_table[259], // "ㄎㄢ" => "kan" - &pinyin_table[266], // "ㄎㄣ" => "ken" - &pinyin_table[260], // "ㄎㄤ" => "kang" - &pinyin_table[267], // "ㄎㄥ" => "keng" - &pinyin_table[273], // "ㄎㄨ" => "ku" - &pinyin_table[274], // "ㄎㄨㄚ" => "kua" - &pinyin_table[284], // "ㄎㄨㄛ" => "kuo" - &pinyin_table[276], // "ㄎㄨㄞ" => "kuai" - &pinyin_table[282], // "ㄎㄨㄟ" => "kui" - &pinyin_table[278], // "ㄎㄨㄢ" => "kuan" - &pinyin_table[283], // "ㄎㄨㄣ" => "kun" - &pinyin_table[279], // "ㄎㄨㄤ" => "kuang" - &pinyin_table[271], // "ㄎㄨㄥ" => "kong" - &pinyin_table[191], // "ㄏ" => "h" - &pinyin_table[192], // "ㄏㄚ" => "ha" - &pinyin_table[205], // "ㄏㄛ" => "ho" - &pinyin_table[199], // "ㄏㄜ" => "he" - &pinyin_table[194], // "ㄏㄞ" => "hai" - &pinyin_table[201], // "ㄏㄟ" => "hei" - &pinyin_table[198], // "ㄏㄠ" => "hao" - &pinyin_table[210], // "ㄏㄡ" => "hou" - &pinyin_table[196], // "ㄏㄢ" => "han" - &pinyin_table[203], // "ㄏㄣ" => "hen" - &pinyin_table[197], // "ㄏㄤ" => "hang" - &pinyin_table[204], // "ㄏㄥ" => "heng" - &pinyin_table[211], // "ㄏㄨ" => "hu" - &pinyin_table[212], // "ㄏㄨㄚ" => "hua" - &pinyin_table[222], // "ㄏㄨㄛ" => "huo" - &pinyin_table[214], // "ㄏㄨㄞ" => "huai" - &pinyin_table[220], // "ㄏㄨㄟ" => "hui" - &pinyin_table[216], // "ㄏㄨㄢ" => "huan" - &pinyin_table[221], // "ㄏㄨㄣ" => "hun" - &pinyin_table[217], // "ㄏㄨㄤ" => "huang" - &pinyin_table[209], // "ㄏㄨㄥ" => "hong" - &pinyin_table[223], // "ㄐ" => "j" - &pinyin_table[224], // "ㄐㄧ" => "ji" - &pinyin_table[225], // "ㄐㄧㄚ" => "jia" - &pinyin_table[231], // "ㄐㄧㄝ" => "jie" - &pinyin_table[230], // "ㄐㄧㄠ" => "jiao" - &pinyin_table[241], // "ㄐㄧㄡ" => "jiu" - &pinyin_table[228], // "ㄐㄧㄢ" => "jian" - &pinyin_table[234], // "ㄐㄧㄣ" => "jin" - &pinyin_table[229], // "ㄐㄧㄤ" => "jiang" - &pinyin_table[235], // "ㄐㄧㄥ" => "jing" - &pinyin_table[242], // "ㄐㄩ" => "ju" - &pinyin_table[245], // "ㄐㄩㄝ" => "jue" - &pinyin_table[243], // "ㄐㄩㄢ" => "juan" - &pinyin_table[247], // "ㄐㄩㄣ" => "jun" - &pinyin_table[244], // "ㄐㄩㄤ" => "juang" - &pinyin_table[239], // "ㄐㄩㄥ" => "jiong" - &pinyin_table[428], // "ㄑ" => "q" - &pinyin_table[429], // "ㄑㄧ" => "qi" - &pinyin_table[430], // "ㄑㄧㄚ" => "qia" - &pinyin_table[436], // "ㄑㄧㄝ" => "qie" - &pinyin_table[435], // "ㄑㄧㄠ" => "qiao" - &pinyin_table[446], // "ㄑㄧㄡ" => "qiu" - &pinyin_table[433], // "ㄑㄧㄢ" => "qian" - &pinyin_table[439], // "ㄑㄧㄣ" => "qin" - &pinyin_table[434], // "ㄑㄧㄤ" => "qiang" - &pinyin_table[440], // "ㄑㄧㄥ" => "qing" - &pinyin_table[447], // "ㄑㄩ" => "qu" - &pinyin_table[450], // "ㄑㄩㄝ" => "que" - &pinyin_table[448], // "ㄑㄩㄢ" => "quan" - &pinyin_table[452], // "ㄑㄩㄣ" => "qun" - &pinyin_table[449], // "ㄑㄩㄤ" => "quang" - &pinyin_table[444], // "ㄑㄩㄥ" => "qiong" - &pinyin_table[609], // "ㄒ" => "x" - &pinyin_table[610], // "ㄒㄧ" => "xi" - &pinyin_table[611], // "ㄒㄧㄚ" => "xia" - &pinyin_table[617], // "ㄒㄧㄝ" => "xie" - &pinyin_table[616], // "ㄒㄧㄠ" => "xiao" - &pinyin_table[627], // "ㄒㄧㄡ" => "xiu" - &pinyin_table[614], // "ㄒㄧㄢ" => "xian" - &pinyin_table[620], // "ㄒㄧㄣ" => "xin" - &pinyin_table[615], // "ㄒㄧㄤ" => "xiang" - &pinyin_table[621], // "ㄒㄧㄥ" => "xing" - &pinyin_table[628], // "ㄒㄩ" => "xu" - &pinyin_table[631], // "ㄒㄩㄝ" => "xue" - &pinyin_table[629], // "ㄒㄩㄢ" => "xuan" - &pinyin_table[633], // "ㄒㄩㄣ" => "xun" - &pinyin_table[630], // "ㄒㄩㄤ" => "xuang" - &pinyin_table[625], // "ㄒㄩㄥ" => "xiong" - &pinyin_table[699], // "ㄓ" => "zhi" - &pinyin_table[686], // "ㄓㄚ" => "zha" - &pinyin_table[693], // "ㄓㄜ" => "zhe" - &pinyin_table[688], // "ㄓㄞ" => "zhai" - &pinyin_table[695], // "ㄓㄟ" => "zhei" - &pinyin_table[692], // "ㄓㄠ" => "zhao" - &pinyin_table[704], // "ㄓㄡ" => "zhou" - &pinyin_table[690], // "ㄓㄢ" => "zhan" - &pinyin_table[697], // "ㄓㄣ" => "zhen" - &pinyin_table[691], // "ㄓㄤ" => "zhang" - &pinyin_table[698], // "ㄓㄥ" => "zheng" - &pinyin_table[705], // "ㄓㄨ" => "zhu" - &pinyin_table[706], // "ㄓㄨㄚ" => "zhua" - &pinyin_table[716], // "ㄓㄨㄛ" => "zhuo" - &pinyin_table[708], // "ㄓㄨㄞ" => "zhuai" - &pinyin_table[714], // "ㄓㄨㄟ" => "zhui" - &pinyin_table[710], // "ㄓㄨㄢ" => "zhuan" - &pinyin_table[715], // "ㄓㄨㄣ" => "zhun" - &pinyin_table[711], // "ㄓㄨㄤ" => "zhuang" - &pinyin_table[703], // "ㄓㄨㄥ" => "zhong" - &pinyin_table[57], // "ㄔ" => "chi" - &pinyin_table[45], // "ㄔㄚ" => "cha" - &pinyin_table[52], // "ㄔㄜ" => "che" - &pinyin_table[47], // "ㄔㄞ" => "chai" - &pinyin_table[51], // "ㄔㄠ" => "chao" - &pinyin_table[62], // "ㄔㄡ" => "chou" - &pinyin_table[49], // "ㄔㄢ" => "chan" - &pinyin_table[55], // "ㄔㄣ" => "chen" - &pinyin_table[50], // "ㄔㄤ" => "chang" - &pinyin_table[56], // "ㄔㄥ" => "cheng" - &pinyin_table[63], // "ㄔㄨ" => "chu" - &pinyin_table[73], // "ㄔㄨㄛ" => "chuo" - &pinyin_table[65], // "ㄔㄨㄞ" => "chuai" - &pinyin_table[71], // "ㄔㄨㄟ" => "chui" - &pinyin_table[67], // "ㄔㄨㄢ" => "chuan" - &pinyin_table[72], // "ㄔㄨㄣ" => "chun" - &pinyin_table[68], // "ㄔㄨㄤ" => "chuang" - &pinyin_table[61], // "ㄔㄨㄥ" => "chong" - &pinyin_table[528], // "ㄕ" => "shi" - &pinyin_table[515], // "ㄕㄚ" => "sha" - &pinyin_table[522], // "ㄕㄜ" => "she" - &pinyin_table[517], // "ㄕㄞ" => "shai" - &pinyin_table[524], // "ㄕㄟ" => "shei" - &pinyin_table[521], // "ㄕㄠ" => "shao" - &pinyin_table[531], // "ㄕㄡ" => "shou" - &pinyin_table[519], // "ㄕㄢ" => "shan" - &pinyin_table[526], // "ㄕㄣ" => "shen" - &pinyin_table[520], // "ㄕㄤ" => "shang" - &pinyin_table[527], // "ㄕㄥ" => "sheng" - &pinyin_table[532], // "ㄕㄨ" => "shu" - &pinyin_table[533], // "ㄕㄨㄚ" => "shua" - &pinyin_table[543], // "ㄕㄨㄛ" => "shuo" - &pinyin_table[535], // "ㄕㄨㄞ" => "shuai" - &pinyin_table[541], // "ㄕㄨㄟ" => "shui" - &pinyin_table[537], // "ㄕㄨㄢ" => "shuan" - &pinyin_table[542], // "ㄕㄨㄣ" => "shun" - &pinyin_table[538], // "ㄕㄨㄤ" => "shuang" - &pinyin_table[530], // "ㄕㄨㄥ" => "shong" - &pinyin_table[473], // "ㄖ" => "ri" - &pinyin_table[460], // "ㄖㄚ" => "ra" - &pinyin_table[483], // "ㄖㄛ" => "ro" - &pinyin_table[467], // "ㄖㄜ" => "re" - &pinyin_table[462], // "ㄖㄞ" => "rai" - &pinyin_table[469], // "ㄖㄟ" => "rei" - &pinyin_table[466], // "ㄖㄠ" => "rao" - &pinyin_table[488], // "ㄖㄡ" => "rou" - &pinyin_table[464], // "ㄖㄢ" => "ran" - &pinyin_table[471], // "ㄖㄣ" => "ren" - &pinyin_table[465], // "ㄖㄤ" => "rang" - &pinyin_table[472], // "ㄖㄥ" => "reng" - &pinyin_table[474], // "ㄖㄧㄚ" => "ria" - &pinyin_table[478], // "ㄖㄧㄝ" => "rie" - &pinyin_table[477], // "ㄖㄧㄠ" => "riao" - &pinyin_table[482], // "ㄖㄧㄡ" => "riu" - &pinyin_table[475], // "ㄖㄧㄢ" => "rian" - &pinyin_table[479], // "ㄖㄧㄣ" => "rin" - &pinyin_table[476], // "ㄖㄧㄤ" => "riang" - &pinyin_table[480], // "ㄖㄧㄥ" => "ring" - &pinyin_table[489], // "ㄖㄨ" => "ru" - &pinyin_table[497], // "ㄖㄨㄛ" => "ruo" - &pinyin_table[495], // "ㄖㄨㄟ" => "rui" - &pinyin_table[490], // "ㄖㄨㄢ" => "ruan" - &pinyin_table[496], // "ㄖㄨㄣ" => "run" - &pinyin_table[491], // "ㄖㄨㄤ" => "ruang" - &pinyin_table[487], // "ㄖㄨㄥ" => "rong" - &pinyin_table[498], // "ㄖㄩ" => "rv" - &pinyin_table[499], // "ㄖㄩㄝ" => "rve" - &pinyin_table[717], // "ㄗ" => "zi" - &pinyin_table[672], // "ㄗㄚ" => "za" - &pinyin_table[679], // "ㄗㄜ" => "ze" - &pinyin_table[674], // "ㄗㄞ" => "zai" - &pinyin_table[681], // "ㄗㄟ" => "zei" - &pinyin_table[678], // "ㄗㄠ" => "zao" - &pinyin_table[722], // "ㄗㄡ" => "zou" - &pinyin_table[676], // "ㄗㄢ" => "zan" - &pinyin_table[683], // "ㄗㄣ" => "zen" - &pinyin_table[677], // "ㄗㄤ" => "zang" - &pinyin_table[684], // "ㄗㄥ" => "zeng" - &pinyin_table[723], // "ㄗㄨ" => "zu" - &pinyin_table[724], // "ㄗㄨㄚ" => "zua" - &pinyin_table[732], // "ㄗㄨㄛ" => "zuo" - &pinyin_table[725], // "ㄗㄨㄞ" => "zuai" - &pinyin_table[730], // "ㄗㄨㄟ" => "zui" - &pinyin_table[726], // "ㄗㄨㄢ" => "zuan" - &pinyin_table[731], // "ㄗㄨㄣ" => "zun" - &pinyin_table[727], // "ㄗㄨㄤ" => "zuang" - &pinyin_table[721], // "ㄗㄨㄥ" => "zong" - &pinyin_table[74], // "ㄘ" => "ci" - &pinyin_table[32], // "ㄘㄚ" => "ca" - &pinyin_table[39], // "ㄘㄜ" => "ce" - &pinyin_table[34], // "ㄘㄞ" => "cai" - &pinyin_table[38], // "ㄘㄠ" => "cao" - &pinyin_table[79], // "ㄘㄡ" => "cou" - &pinyin_table[36], // "ㄘㄢ" => "can" - &pinyin_table[42], // "ㄘㄣ" => "cen" - &pinyin_table[37], // "ㄘㄤ" => "cang" - &pinyin_table[43], // "ㄘㄥ" => "ceng" - &pinyin_table[80], // "ㄘㄨ" => "cu" - &pinyin_table[88], // "ㄘㄨㄛ" => "cuo" - &pinyin_table[81], // "ㄘㄨㄞ" => "cuai" - &pinyin_table[86], // "ㄘㄨㄟ" => "cui" - &pinyin_table[82], // "ㄘㄨㄢ" => "cuan" - &pinyin_table[87], // "ㄘㄨㄣ" => "cun" - &pinyin_table[83], // "ㄘㄨㄤ" => "cuang" - &pinyin_table[78], // "ㄘㄨㄥ" => "cong" - &pinyin_table[544], // "ㄙ" => "si" - &pinyin_table[501], // "ㄙㄚ" => "sa" - &pinyin_table[508], // "ㄙㄜ" => "se" - &pinyin_table[503], // "ㄙㄞ" => "sai" - &pinyin_table[510], // "ㄙㄟ" => "sei" - &pinyin_table[507], // "ㄙㄠ" => "sao" - &pinyin_table[549], // "ㄙㄡ" => "sou" - &pinyin_table[505], // "ㄙㄢ" => "san" - &pinyin_table[512], // "ㄙㄣ" => "sen" - &pinyin_table[506], // "ㄙㄤ" => "sang" - &pinyin_table[513], // "ㄙㄥ" => "seng" - &pinyin_table[550], // "ㄙㄨ" => "su" - &pinyin_table[551], // "ㄙㄨㄚ" => "sua" - &pinyin_table[559], // "ㄙㄨㄛ" => "suo" - &pinyin_table[552], // "ㄙㄨㄞ" => "suai" - &pinyin_table[557], // "ㄙㄨㄟ" => "sui" - &pinyin_table[553], // "ㄙㄨㄢ" => "suan" - &pinyin_table[558], // "ㄙㄨㄣ" => "sun" - &pinyin_table[554], // "ㄙㄨㄤ" => "suang" - &pinyin_table[548], // "ㄙㄨㄥ" => "song" - &pinyin_table[0], // "ㄚ" => "a" - &pinyin_table[401], // "ㄛ" => "o" - &pinyin_table[128], // "ㄜ" => "e" - &pinyin_table[2], // "ㄞ" => "ai" - &pinyin_table[129], // "ㄟ" => "ei" - &pinyin_table[6], // "ㄠ" => "ao" - &pinyin_table[402], // "ㄡ" => "ou" - &pinyin_table[4], // "ㄢ" => "an" - &pinyin_table[130], // "ㄣ" => "en" - &pinyin_table[5], // "ㄤ" => "ang" - &pinyin_table[131], // "ㄦ" => "er" - &pinyin_table[648], // "ㄧ" => "yi" - &pinyin_table[641], // "ㄧㄚ" => "ya" - &pinyin_table[653], // "ㄧㄛ" => "yo" - &pinyin_table[647], // "ㄧㄝ" => "ye" - &pinyin_table[646], // "ㄧㄠ" => "yao" - &pinyin_table[658], // "ㄧㄡ" => "you" - &pinyin_table[644], // "ㄧㄢ" => "yan" - &pinyin_table[651], // "ㄧㄣ" => "yin" - &pinyin_table[645], // "ㄧㄤ" => "yang" - &pinyin_table[652], // "ㄧㄥ" => "ying" - &pinyin_table[661], // "ㄧㄩㄤ" => "yuang" - &pinyin_table[608], // "ㄨ" => "wu" - &pinyin_table[596], // "ㄨㄚ" => "wa" - &pinyin_table[607], // "ㄨㄛ" => "wo" - &pinyin_table[598], // "ㄨㄞ" => "wai" - &pinyin_table[603], // "ㄨㄟ" => "wei" - &pinyin_table[600], // "ㄨㄢ" => "wan" - &pinyin_table[605], // "ㄨㄣ" => "wen" - &pinyin_table[601], // "ㄨㄤ" => "wang" - &pinyin_table[606], // "ㄨㄥ" => "weng" - &pinyin_table[659], // "ㄩ" => "yu" - &pinyin_table[662], // "ㄩㄝ" => "yue" - &pinyin_table[660], // "ㄩㄢ" => "yuan" - &pinyin_table[664], // "ㄩㄣ" => "yun" - &pinyin_table[657], // "ㄩㄥ" => "yong" -}; - -static const Pinyin *special_table[][4] = { - { &pinyin_table[4], &pinyin_table[0], &pinyin_table[0], &pinyin_table[359], }, /* an a => a na */ - { &pinyin_table[4], &pinyin_table[2], &pinyin_table[0], &pinyin_table[361], }, /* an ai => a nai */ - { &pinyin_table[4], &pinyin_table[6], &pinyin_table[0], &pinyin_table[365], }, /* an ao => a nao */ - { &pinyin_table[4], &pinyin_table[128], &pinyin_table[0], &pinyin_table[366], }, /* an e => a ne */ - { &pinyin_table[4], &pinyin_table[129], &pinyin_table[0], &pinyin_table[368], }, /* an ei => a nei */ - { &pinyin_table[5], &pinyin_table[0], &pinyin_table[4], &pinyin_table[161], }, /* ang a => an ga */ - { &pinyin_table[5], &pinyin_table[2], &pinyin_table[4], &pinyin_table[163], }, /* ang ai => an gai */ - { &pinyin_table[5], &pinyin_table[4], &pinyin_table[4], &pinyin_table[165], }, /* ang an => an gan */ - { &pinyin_table[5], &pinyin_table[5], &pinyin_table[4], &pinyin_table[166], }, /* ang ang => an gang */ - { &pinyin_table[5], &pinyin_table[6], &pinyin_table[4], &pinyin_table[167], }, /* ang ao => an gao */ - { &pinyin_table[5], &pinyin_table[128], &pinyin_table[4], &pinyin_table[168], }, /* ang e => an ge */ - { &pinyin_table[5], &pinyin_table[129], &pinyin_table[4], &pinyin_table[170], }, /* ang ei => an gei */ - { &pinyin_table[5], &pinyin_table[130], &pinyin_table[4], &pinyin_table[172], }, /* ang en => an gen */ - { &pinyin_table[5], &pinyin_table[402], &pinyin_table[4], &pinyin_table[178], }, /* ang ou => an gou */ - { &pinyin_table[12], &pinyin_table[0], &pinyin_table[8], &pinyin_table[359], }, /* ban a => ba na */ - { &pinyin_table[12], &pinyin_table[5], &pinyin_table[8], &pinyin_table[364], }, /* ban ang => ba nang */ - { &pinyin_table[12], &pinyin_table[6], &pinyin_table[8], &pinyin_table[365], }, /* ban ao => ba nao */ - { &pinyin_table[12], &pinyin_table[128], &pinyin_table[8], &pinyin_table[366], }, /* ban e => ba ne */ - { &pinyin_table[12], &pinyin_table[129], &pinyin_table[8], &pinyin_table[368], }, /* ban ei => ba nei */ - { &pinyin_table[13], &pinyin_table[2], &pinyin_table[12], &pinyin_table[163], }, /* bang ai => ban gai */ - { &pinyin_table[13], &pinyin_table[5], &pinyin_table[12], &pinyin_table[166], }, /* bang ang => ban gang */ - { &pinyin_table[13], &pinyin_table[6], &pinyin_table[12], &pinyin_table[167], }, /* bang ao => ban gao */ - { &pinyin_table[13], &pinyin_table[128], &pinyin_table[12], &pinyin_table[168], }, /* bang e => ban ge */ - { &pinyin_table[13], &pinyin_table[129], &pinyin_table[12], &pinyin_table[170], }, /* bang ei => ban gei */ - { &pinyin_table[13], &pinyin_table[130], &pinyin_table[12], &pinyin_table[172], }, /* bang en => ban gen */ - { &pinyin_table[19], &pinyin_table[0], &pinyin_table[18], &pinyin_table[161], }, /* beng a => ben ga */ - { &pinyin_table[19], &pinyin_table[2], &pinyin_table[18], &pinyin_table[163], }, /* beng ai => ben gai */ - { &pinyin_table[19], &pinyin_table[4], &pinyin_table[18], &pinyin_table[165], }, /* beng an => ben gan */ - { &pinyin_table[19], &pinyin_table[5], &pinyin_table[18], &pinyin_table[166], }, /* beng ang => ben gang */ - { &pinyin_table[19], &pinyin_table[6], &pinyin_table[18], &pinyin_table[167], }, /* beng ao => ben gao */ - { &pinyin_table[19], &pinyin_table[128], &pinyin_table[18], &pinyin_table[168], }, /* beng e => ben ge */ - { &pinyin_table[19], &pinyin_table[129], &pinyin_table[18], &pinyin_table[170], }, /* beng ei => ben gei */ - { &pinyin_table[19], &pinyin_table[130], &pinyin_table[18], &pinyin_table[172], }, /* beng en => ben gen */ - { &pinyin_table[19], &pinyin_table[402], &pinyin_table[18], &pinyin_table[178], }, /* beng ou => ben gou */ - { &pinyin_table[22], &pinyin_table[0], &pinyin_table[21], &pinyin_table[161], }, /* biang a => bian ga */ - { &pinyin_table[22], &pinyin_table[2], &pinyin_table[21], &pinyin_table[163], }, /* biang ai => bian gai */ - { &pinyin_table[22], &pinyin_table[4], &pinyin_table[21], &pinyin_table[165], }, /* biang an => bian gan */ - { &pinyin_table[22], &pinyin_table[5], &pinyin_table[21], &pinyin_table[166], }, /* biang ang => bian gang */ - { &pinyin_table[22], &pinyin_table[6], &pinyin_table[21], &pinyin_table[167], }, /* biang ao => bian gao */ - { &pinyin_table[22], &pinyin_table[128], &pinyin_table[21], &pinyin_table[168], }, /* biang e => bian ge */ - { &pinyin_table[22], &pinyin_table[129], &pinyin_table[21], &pinyin_table[170], }, /* biang ei => bian gei */ - { &pinyin_table[22], &pinyin_table[130], &pinyin_table[21], &pinyin_table[172], }, /* biang en => bian gen */ - { &pinyin_table[22], &pinyin_table[402], &pinyin_table[21], &pinyin_table[178], }, /* biang ou => bian gou */ - { &pinyin_table[24], &pinyin_table[459], &pinyin_table[20], &pinyin_table[131], }, /* bie r => bi er */ - { &pinyin_table[27], &pinyin_table[0], &pinyin_table[20], &pinyin_table[359], }, /* bin a => bi na */ - { &pinyin_table[27], &pinyin_table[2], &pinyin_table[20], &pinyin_table[361], }, /* bin ai => bi nai */ - { &pinyin_table[27], &pinyin_table[4], &pinyin_table[20], &pinyin_table[363], }, /* bin an => bi nan */ - { &pinyin_table[27], &pinyin_table[5], &pinyin_table[20], &pinyin_table[364], }, /* bin ang => bi nang */ - { &pinyin_table[27], &pinyin_table[6], &pinyin_table[20], &pinyin_table[365], }, /* bin ao => bi nao */ - { &pinyin_table[27], &pinyin_table[128], &pinyin_table[20], &pinyin_table[366], }, /* bin e => bi ne */ - { &pinyin_table[27], &pinyin_table[129], &pinyin_table[20], &pinyin_table[368], }, /* bin ei => bi nei */ - { &pinyin_table[27], &pinyin_table[130], &pinyin_table[20], &pinyin_table[370], }, /* bin en => bi nen */ - { &pinyin_table[28], &pinyin_table[128], &pinyin_table[27], &pinyin_table[168], }, /* bing e => bin ge */ - { &pinyin_table[28], &pinyin_table[129], &pinyin_table[27], &pinyin_table[170], }, /* bing ei => bin gei */ - { &pinyin_table[36], &pinyin_table[129], &pinyin_table[32], &pinyin_table[368], }, /* can ei => ca nei */ - { &pinyin_table[37], &pinyin_table[4], &pinyin_table[36], &pinyin_table[165], }, /* cang an => can gan */ - { &pinyin_table[37], &pinyin_table[5], &pinyin_table[36], &pinyin_table[166], }, /* cang ang => can gang */ - { &pinyin_table[37], &pinyin_table[128], &pinyin_table[36], &pinyin_table[168], }, /* cang e => can ge */ - { &pinyin_table[37], &pinyin_table[129], &pinyin_table[36], &pinyin_table[170], }, /* cang ei => can gei */ - { &pinyin_table[37], &pinyin_table[130], &pinyin_table[36], &pinyin_table[172], }, /* cang en => can gen */ - { &pinyin_table[37], &pinyin_table[402], &pinyin_table[36], &pinyin_table[178], }, /* cang ou => can gou */ - { &pinyin_table[42], &pinyin_table[0], &pinyin_table[39], &pinyin_table[359], }, /* cen a => ce na */ - { &pinyin_table[42], &pinyin_table[2], &pinyin_table[39], &pinyin_table[361], }, /* cen ai => ce nai */ - { &pinyin_table[42], &pinyin_table[4], &pinyin_table[39], &pinyin_table[363], }, /* cen an => ce nan */ - { &pinyin_table[42], &pinyin_table[5], &pinyin_table[39], &pinyin_table[364], }, /* cen ang => ce nang */ - { &pinyin_table[42], &pinyin_table[6], &pinyin_table[39], &pinyin_table[365], }, /* cen ao => ce nao */ - { &pinyin_table[42], &pinyin_table[128], &pinyin_table[39], &pinyin_table[366], }, /* cen e => ce ne */ - { &pinyin_table[42], &pinyin_table[129], &pinyin_table[39], &pinyin_table[368], }, /* cen ei => ce nei */ - { &pinyin_table[42], &pinyin_table[130], &pinyin_table[39], &pinyin_table[370], }, /* cen en => ce nen */ - { &pinyin_table[43], &pinyin_table[129], &pinyin_table[42], &pinyin_table[170], }, /* ceng ei => cen gei */ - { &pinyin_table[49], &pinyin_table[0], &pinyin_table[45], &pinyin_table[359], }, /* chan a => cha na */ - { &pinyin_table[49], &pinyin_table[6], &pinyin_table[45], &pinyin_table[365], }, /* chan ao => cha nao */ - { &pinyin_table[49], &pinyin_table[128], &pinyin_table[45], &pinyin_table[366], }, /* chan e => cha ne */ - { &pinyin_table[49], &pinyin_table[129], &pinyin_table[45], &pinyin_table[368], }, /* chan ei => cha nei */ - { &pinyin_table[50], &pinyin_table[5], &pinyin_table[49], &pinyin_table[166], }, /* chang ang => chan gang */ - { &pinyin_table[50], &pinyin_table[6], &pinyin_table[49], &pinyin_table[167], }, /* chang ao => chan gao */ - { &pinyin_table[50], &pinyin_table[129], &pinyin_table[49], &pinyin_table[170], }, /* chang ei => chan gei */ - { &pinyin_table[50], &pinyin_table[130], &pinyin_table[49], &pinyin_table[172], }, /* chang en => chan gen */ - { &pinyin_table[50], &pinyin_table[402], &pinyin_table[49], &pinyin_table[178], }, /* chang ou => chan gou */ - { &pinyin_table[55], &pinyin_table[0], &pinyin_table[52], &pinyin_table[359], }, /* chen a => che na */ - { &pinyin_table[55], &pinyin_table[4], &pinyin_table[52], &pinyin_table[363], }, /* chen an => che nan */ - { &pinyin_table[55], &pinyin_table[5], &pinyin_table[52], &pinyin_table[364], }, /* chen ang => che nang */ - { &pinyin_table[55], &pinyin_table[6], &pinyin_table[52], &pinyin_table[365], }, /* chen ao => che nao */ - { &pinyin_table[55], &pinyin_table[128], &pinyin_table[52], &pinyin_table[366], }, /* chen e => che ne */ - { &pinyin_table[55], &pinyin_table[129], &pinyin_table[52], &pinyin_table[368], }, /* chen ei => che nei */ - { &pinyin_table[56], &pinyin_table[5], &pinyin_table[55], &pinyin_table[166], }, /* cheng ang => chen gang */ - { &pinyin_table[56], &pinyin_table[6], &pinyin_table[55], &pinyin_table[167], }, /* cheng ao => chen gao */ - { &pinyin_table[56], &pinyin_table[129], &pinyin_table[55], &pinyin_table[170], }, /* cheng ei => chen gei */ - { &pinyin_table[56], &pinyin_table[402], &pinyin_table[55], &pinyin_table[178], }, /* cheng ou => chen gou */ - { &pinyin_table[68], &pinyin_table[4], &pinyin_table[67], &pinyin_table[165], }, /* chuang an => chuan gan */ - { &pinyin_table[68], &pinyin_table[5], &pinyin_table[67], &pinyin_table[166], }, /* chuang ang => chuan gang */ - { &pinyin_table[68], &pinyin_table[6], &pinyin_table[67], &pinyin_table[167], }, /* chuang ao => chuan gao */ - { &pinyin_table[68], &pinyin_table[128], &pinyin_table[67], &pinyin_table[168], }, /* chuang e => chuan ge */ - { &pinyin_table[68], &pinyin_table[129], &pinyin_table[67], &pinyin_table[170], }, /* chuang ei => chuan gei */ - { &pinyin_table[68], &pinyin_table[130], &pinyin_table[67], &pinyin_table[172], }, /* chuang en => chuan gen */ - { &pinyin_table[68], &pinyin_table[402], &pinyin_table[67], &pinyin_table[178], }, /* chuang ou => chuan gou */ - { &pinyin_table[72], &pinyin_table[0], &pinyin_table[63], &pinyin_table[359], }, /* chun a => chu na */ - { &pinyin_table[72], &pinyin_table[4], &pinyin_table[63], &pinyin_table[363], }, /* chun an => chu nan */ - { &pinyin_table[72], &pinyin_table[5], &pinyin_table[63], &pinyin_table[364], }, /* chun ang => chu nang */ - { &pinyin_table[72], &pinyin_table[6], &pinyin_table[63], &pinyin_table[365], }, /* chun ao => chu nao */ - { &pinyin_table[72], &pinyin_table[128], &pinyin_table[63], &pinyin_table[366], }, /* chun e => chu ne */ - { &pinyin_table[72], &pinyin_table[129], &pinyin_table[63], &pinyin_table[368], }, /* chun ei => chu nei */ - { &pinyin_table[83], &pinyin_table[0], &pinyin_table[82], &pinyin_table[161], }, /* cuang a => cuan ga */ - { &pinyin_table[83], &pinyin_table[2], &pinyin_table[82], &pinyin_table[163], }, /* cuang ai => cuan gai */ - { &pinyin_table[83], &pinyin_table[4], &pinyin_table[82], &pinyin_table[165], }, /* cuang an => cuan gan */ - { &pinyin_table[83], &pinyin_table[5], &pinyin_table[82], &pinyin_table[166], }, /* cuang ang => cuan gang */ - { &pinyin_table[83], &pinyin_table[6], &pinyin_table[82], &pinyin_table[167], }, /* cuang ao => cuan gao */ - { &pinyin_table[83], &pinyin_table[128], &pinyin_table[82], &pinyin_table[168], }, /* cuang e => cuan ge */ - { &pinyin_table[83], &pinyin_table[129], &pinyin_table[82], &pinyin_table[170], }, /* cuang ei => cuan gei */ - { &pinyin_table[83], &pinyin_table[130], &pinyin_table[82], &pinyin_table[172], }, /* cuang en => cuan gen */ - { &pinyin_table[83], &pinyin_table[402], &pinyin_table[82], &pinyin_table[178], }, /* cuang ou => cuan gou */ - { &pinyin_table[87], &pinyin_table[128], &pinyin_table[80], &pinyin_table[366], }, /* cun e => cu ne */ - { &pinyin_table[87], &pinyin_table[129], &pinyin_table[80], &pinyin_table[368], }, /* cun ei => cu nei */ - { &pinyin_table[94], &pinyin_table[0], &pinyin_table[90], &pinyin_table[359], }, /* dan a => da na */ - { &pinyin_table[94], &pinyin_table[2], &pinyin_table[90], &pinyin_table[361], }, /* dan ai => da nai */ - { &pinyin_table[94], &pinyin_table[4], &pinyin_table[90], &pinyin_table[363], }, /* dan an => da nan */ - { &pinyin_table[94], &pinyin_table[5], &pinyin_table[90], &pinyin_table[364], }, /* dan ang => da nang */ - { &pinyin_table[94], &pinyin_table[6], &pinyin_table[90], &pinyin_table[365], }, /* dan ao => da nao */ - { &pinyin_table[94], &pinyin_table[128], &pinyin_table[90], &pinyin_table[366], }, /* dan e => da ne */ - { &pinyin_table[94], &pinyin_table[129], &pinyin_table[90], &pinyin_table[368], }, /* dan ei => da nei */ - { &pinyin_table[95], &pinyin_table[2], &pinyin_table[94], &pinyin_table[163], }, /* dang ai => dan gai */ - { &pinyin_table[95], &pinyin_table[5], &pinyin_table[94], &pinyin_table[166], }, /* dang ang => dan gang */ - { &pinyin_table[95], &pinyin_table[6], &pinyin_table[94], &pinyin_table[167], }, /* dang ao => dan gao */ - { &pinyin_table[95], &pinyin_table[128], &pinyin_table[94], &pinyin_table[168], }, /* dang e => dan ge */ - { &pinyin_table[95], &pinyin_table[129], &pinyin_table[94], &pinyin_table[170], }, /* dang ei => dan gei */ - { &pinyin_table[95], &pinyin_table[130], &pinyin_table[94], &pinyin_table[172], }, /* dang en => dan gen */ - { &pinyin_table[101], &pinyin_table[0], &pinyin_table[97], &pinyin_table[359], }, /* den a => de na */ - { &pinyin_table[101], &pinyin_table[2], &pinyin_table[97], &pinyin_table[361], }, /* den ai => de nai */ - { &pinyin_table[101], &pinyin_table[4], &pinyin_table[97], &pinyin_table[363], }, /* den an => de nan */ - { &pinyin_table[101], &pinyin_table[5], &pinyin_table[97], &pinyin_table[364], }, /* den ang => de nang */ - { &pinyin_table[101], &pinyin_table[6], &pinyin_table[97], &pinyin_table[365], }, /* den ao => de nao */ - { &pinyin_table[101], &pinyin_table[128], &pinyin_table[97], &pinyin_table[366], }, /* den e => de ne */ - { &pinyin_table[101], &pinyin_table[129], &pinyin_table[97], &pinyin_table[368], }, /* den ei => de nei */ - { &pinyin_table[101], &pinyin_table[130], &pinyin_table[97], &pinyin_table[370], }, /* den en => de nen */ - { &pinyin_table[101], &pinyin_table[402], &pinyin_table[97], &pinyin_table[391], }, /* den ou => de nou */ - { &pinyin_table[106], &pinyin_table[0], &pinyin_table[105], &pinyin_table[161], }, /* diang a => dian ga */ - { &pinyin_table[106], &pinyin_table[2], &pinyin_table[105], &pinyin_table[163], }, /* diang ai => dian gai */ - { &pinyin_table[106], &pinyin_table[4], &pinyin_table[105], &pinyin_table[165], }, /* diang an => dian gan */ - { &pinyin_table[106], &pinyin_table[5], &pinyin_table[105], &pinyin_table[166], }, /* diang ang => dian gang */ - { &pinyin_table[106], &pinyin_table[6], &pinyin_table[105], &pinyin_table[167], }, /* diang ao => dian gao */ - { &pinyin_table[106], &pinyin_table[128], &pinyin_table[105], &pinyin_table[168], }, /* diang e => dian ge */ - { &pinyin_table[106], &pinyin_table[129], &pinyin_table[105], &pinyin_table[170], }, /* diang ei => dian gei */ - { &pinyin_table[106], &pinyin_table[130], &pinyin_table[105], &pinyin_table[172], }, /* diang en => dian gen */ - { &pinyin_table[106], &pinyin_table[402], &pinyin_table[105], &pinyin_table[178], }, /* diang ou => dian gou */ - { &pinyin_table[108], &pinyin_table[459], &pinyin_table[103], &pinyin_table[131], }, /* die r => di er */ - { &pinyin_table[111], &pinyin_table[0], &pinyin_table[103], &pinyin_table[359], }, /* din a => di na */ - { &pinyin_table[111], &pinyin_table[2], &pinyin_table[103], &pinyin_table[361], }, /* din ai => di nai */ - { &pinyin_table[111], &pinyin_table[4], &pinyin_table[103], &pinyin_table[363], }, /* din an => di nan */ - { &pinyin_table[111], &pinyin_table[5], &pinyin_table[103], &pinyin_table[364], }, /* din ang => di nang */ - { &pinyin_table[111], &pinyin_table[6], &pinyin_table[103], &pinyin_table[365], }, /* din ao => di nao */ - { &pinyin_table[111], &pinyin_table[128], &pinyin_table[103], &pinyin_table[366], }, /* din e => di ne */ - { &pinyin_table[111], &pinyin_table[129], &pinyin_table[103], &pinyin_table[368], }, /* din ei => di nei */ - { &pinyin_table[111], &pinyin_table[130], &pinyin_table[103], &pinyin_table[370], }, /* din en => di nen */ - { &pinyin_table[111], &pinyin_table[402], &pinyin_table[103], &pinyin_table[391], }, /* din ou => di nou */ - { &pinyin_table[122], &pinyin_table[0], &pinyin_table[121], &pinyin_table[161], }, /* duang a => duan ga */ - { &pinyin_table[122], &pinyin_table[2], &pinyin_table[121], &pinyin_table[163], }, /* duang ai => duan gai */ - { &pinyin_table[122], &pinyin_table[4], &pinyin_table[121], &pinyin_table[165], }, /* duang an => duan gan */ - { &pinyin_table[122], &pinyin_table[5], &pinyin_table[121], &pinyin_table[166], }, /* duang ang => duan gang */ - { &pinyin_table[122], &pinyin_table[6], &pinyin_table[121], &pinyin_table[167], }, /* duang ao => duan gao */ - { &pinyin_table[122], &pinyin_table[128], &pinyin_table[121], &pinyin_table[168], }, /* duang e => duan ge */ - { &pinyin_table[122], &pinyin_table[129], &pinyin_table[121], &pinyin_table[170], }, /* duang ei => duan gei */ - { &pinyin_table[122], &pinyin_table[130], &pinyin_table[121], &pinyin_table[172], }, /* duang en => duan gen */ - { &pinyin_table[122], &pinyin_table[402], &pinyin_table[121], &pinyin_table[178], }, /* duang ou => duan gou */ - { &pinyin_table[126], &pinyin_table[0], &pinyin_table[120], &pinyin_table[359], }, /* dun a => du na */ - { &pinyin_table[126], &pinyin_table[4], &pinyin_table[120], &pinyin_table[363], }, /* dun an => du nan */ - { &pinyin_table[126], &pinyin_table[5], &pinyin_table[120], &pinyin_table[364], }, /* dun ang => du nang */ - { &pinyin_table[126], &pinyin_table[6], &pinyin_table[120], &pinyin_table[365], }, /* dun ao => du nao */ - { &pinyin_table[126], &pinyin_table[128], &pinyin_table[120], &pinyin_table[366], }, /* dun e => du ne */ - { &pinyin_table[126], &pinyin_table[129], &pinyin_table[120], &pinyin_table[368], }, /* dun ei => du nei */ - { &pinyin_table[130], &pinyin_table[4], &pinyin_table[128], &pinyin_table[363], }, /* en an => e nan */ - { &pinyin_table[130], &pinyin_table[5], &pinyin_table[128], &pinyin_table[364], }, /* en ang => e nang */ - { &pinyin_table[130], &pinyin_table[6], &pinyin_table[128], &pinyin_table[365], }, /* en ao => e nao */ - { &pinyin_table[130], &pinyin_table[128], &pinyin_table[128], &pinyin_table[366], }, /* en e => e ne */ - { &pinyin_table[130], &pinyin_table[129], &pinyin_table[128], &pinyin_table[368], }, /* en ei => e nei */ - { &pinyin_table[131], &pinyin_table[4], &pinyin_table[128], &pinyin_table[464], }, /* er an => e ran */ - { &pinyin_table[131], &pinyin_table[5], &pinyin_table[128], &pinyin_table[465], }, /* er ang => e rang */ - { &pinyin_table[131], &pinyin_table[130], &pinyin_table[128], &pinyin_table[471], }, /* er en => e ren */ - { &pinyin_table[131], &pinyin_table[402], &pinyin_table[128], &pinyin_table[488], }, /* er ou => e rou */ - { &pinyin_table[137], &pinyin_table[5], &pinyin_table[133], &pinyin_table[364], }, /* fan ang => fa nang */ - { &pinyin_table[137], &pinyin_table[6], &pinyin_table[133], &pinyin_table[365], }, /* fan ao => fa nao */ - { &pinyin_table[137], &pinyin_table[129], &pinyin_table[133], &pinyin_table[368], }, /* fan ei => fa nei */ - { &pinyin_table[138], &pinyin_table[5], &pinyin_table[137], &pinyin_table[166], }, /* fang ang => fan gang */ - { &pinyin_table[138], &pinyin_table[6], &pinyin_table[137], &pinyin_table[167], }, /* fang ao => fan gao */ - { &pinyin_table[138], &pinyin_table[128], &pinyin_table[137], &pinyin_table[168], }, /* fang e => fan ge */ - { &pinyin_table[138], &pinyin_table[129], &pinyin_table[137], &pinyin_table[170], }, /* fang ei => fan gei */ - { &pinyin_table[138], &pinyin_table[130], &pinyin_table[137], &pinyin_table[172], }, /* fang en => fan gen */ - { &pinyin_table[145], &pinyin_table[5], &pinyin_table[144], &pinyin_table[166], }, /* feng ang => fen gang */ - { &pinyin_table[145], &pinyin_table[6], &pinyin_table[144], &pinyin_table[167], }, /* feng ao => fen gao */ - { &pinyin_table[145], &pinyin_table[128], &pinyin_table[144], &pinyin_table[168], }, /* feng e => fen ge */ - { &pinyin_table[145], &pinyin_table[129], &pinyin_table[144], &pinyin_table[170], }, /* feng ei => fen gei */ - { &pinyin_table[145], &pinyin_table[130], &pinyin_table[144], &pinyin_table[172], }, /* feng en => fen gen */ - { &pinyin_table[145], &pinyin_table[402], &pinyin_table[144], &pinyin_table[178], }, /* feng ou => fen gou */ - { &pinyin_table[147], &pinyin_table[0], &pinyin_table[146], &pinyin_table[359], }, /* fon a => fo na */ - { &pinyin_table[147], &pinyin_table[2], &pinyin_table[146], &pinyin_table[361], }, /* fon ai => fo nai */ - { &pinyin_table[147], &pinyin_table[4], &pinyin_table[146], &pinyin_table[363], }, /* fon an => fo nan */ - { &pinyin_table[147], &pinyin_table[5], &pinyin_table[146], &pinyin_table[364], }, /* fon ang => fo nang */ - { &pinyin_table[147], &pinyin_table[6], &pinyin_table[146], &pinyin_table[365], }, /* fon ao => fo nao */ - { &pinyin_table[147], &pinyin_table[128], &pinyin_table[146], &pinyin_table[366], }, /* fon e => fo ne */ - { &pinyin_table[147], &pinyin_table[129], &pinyin_table[146], &pinyin_table[368], }, /* fon ei => fo nei */ - { &pinyin_table[147], &pinyin_table[130], &pinyin_table[146], &pinyin_table[370], }, /* fon en => fo nen */ - { &pinyin_table[147], &pinyin_table[402], &pinyin_table[146], &pinyin_table[391], }, /* fon ou => fo nou */ - { &pinyin_table[158], &pinyin_table[0], &pinyin_table[150], &pinyin_table[359], }, /* fun a => fu na */ - { &pinyin_table[158], &pinyin_table[2], &pinyin_table[150], &pinyin_table[361], }, /* fun ai => fu nai */ - { &pinyin_table[158], &pinyin_table[4], &pinyin_table[150], &pinyin_table[363], }, /* fun an => fu nan */ - { &pinyin_table[158], &pinyin_table[5], &pinyin_table[150], &pinyin_table[364], }, /* fun ang => fu nang */ - { &pinyin_table[158], &pinyin_table[6], &pinyin_table[150], &pinyin_table[365], }, /* fun ao => fu nao */ - { &pinyin_table[158], &pinyin_table[128], &pinyin_table[150], &pinyin_table[366], }, /* fun e => fu ne */ - { &pinyin_table[158], &pinyin_table[129], &pinyin_table[150], &pinyin_table[368], }, /* fun ei => fu nei */ - { &pinyin_table[158], &pinyin_table[130], &pinyin_table[150], &pinyin_table[370], }, /* fun en => fu nen */ - { &pinyin_table[158], &pinyin_table[402], &pinyin_table[150], &pinyin_table[391], }, /* fun ou => fu nou */ - { &pinyin_table[165], &pinyin_table[128], &pinyin_table[161], &pinyin_table[366], }, /* gan e => ga ne */ - { &pinyin_table[165], &pinyin_table[129], &pinyin_table[161], &pinyin_table[368], }, /* gan ei => ga nei */ - { &pinyin_table[166], &pinyin_table[0], &pinyin_table[165], &pinyin_table[161], }, /* gang a => gan ga */ - { &pinyin_table[166], &pinyin_table[2], &pinyin_table[165], &pinyin_table[163], }, /* gang ai => gan gai */ - { &pinyin_table[166], &pinyin_table[4], &pinyin_table[165], &pinyin_table[165], }, /* gang an => gan gan */ - { &pinyin_table[166], &pinyin_table[5], &pinyin_table[165], &pinyin_table[166], }, /* gang ang => gan gang */ - { &pinyin_table[166], &pinyin_table[128], &pinyin_table[165], &pinyin_table[168], }, /* gang e => gan ge */ - { &pinyin_table[166], &pinyin_table[129], &pinyin_table[165], &pinyin_table[170], }, /* gang ei => gan gei */ - { &pinyin_table[166], &pinyin_table[130], &pinyin_table[165], &pinyin_table[172], }, /* gang en => gan gen */ - { &pinyin_table[166], &pinyin_table[402], &pinyin_table[165], &pinyin_table[178], }, /* gang ou => gan gou */ - { &pinyin_table[172], &pinyin_table[0], &pinyin_table[168], &pinyin_table[359], }, /* gen a => ge na */ - { &pinyin_table[172], &pinyin_table[4], &pinyin_table[168], &pinyin_table[363], }, /* gen an => ge nan */ - { &pinyin_table[172], &pinyin_table[5], &pinyin_table[168], &pinyin_table[364], }, /* gen ang => ge nang */ - { &pinyin_table[172], &pinyin_table[6], &pinyin_table[168], &pinyin_table[365], }, /* gen ao => ge nao */ - { &pinyin_table[172], &pinyin_table[128], &pinyin_table[168], &pinyin_table[366], }, /* gen e => ge ne */ - { &pinyin_table[172], &pinyin_table[129], &pinyin_table[168], &pinyin_table[368], }, /* gen ei => ge nei */ - { &pinyin_table[173], &pinyin_table[5], &pinyin_table[172], &pinyin_table[166], }, /* geng ang => gen gang */ - { &pinyin_table[173], &pinyin_table[6], &pinyin_table[172], &pinyin_table[167], }, /* geng ao => gen gao */ - { &pinyin_table[173], &pinyin_table[128], &pinyin_table[172], &pinyin_table[168], }, /* geng e => gen ge */ - { &pinyin_table[173], &pinyin_table[129], &pinyin_table[172], &pinyin_table[170], }, /* geng ei => gen gei */ - { &pinyin_table[173], &pinyin_table[130], &pinyin_table[172], &pinyin_table[172], }, /* geng en => gen gen */ - { &pinyin_table[173], &pinyin_table[402], &pinyin_table[172], &pinyin_table[178], }, /* geng ou => gen gou */ - { &pinyin_table[184], &pinyin_table[129], &pinyin_table[180], &pinyin_table[368], }, /* guan ei => gua nei */ - { &pinyin_table[185], &pinyin_table[2], &pinyin_table[184], &pinyin_table[163], }, /* guang ai => guan gai */ - { &pinyin_table[185], &pinyin_table[5], &pinyin_table[184], &pinyin_table[166], }, /* guang ang => guan gang */ - { &pinyin_table[185], &pinyin_table[6], &pinyin_table[184], &pinyin_table[167], }, /* guang ao => guan gao */ - { &pinyin_table[185], &pinyin_table[128], &pinyin_table[184], &pinyin_table[168], }, /* guang e => guan ge */ - { &pinyin_table[185], &pinyin_table[129], &pinyin_table[184], &pinyin_table[170], }, /* guang ei => guan gei */ - { &pinyin_table[185], &pinyin_table[130], &pinyin_table[184], &pinyin_table[172], }, /* guang en => guan gen */ - { &pinyin_table[189], &pinyin_table[4], &pinyin_table[179], &pinyin_table[363], }, /* gun an => gu nan */ - { &pinyin_table[189], &pinyin_table[5], &pinyin_table[179], &pinyin_table[364], }, /* gun ang => gu nang */ - { &pinyin_table[189], &pinyin_table[6], &pinyin_table[179], &pinyin_table[365], }, /* gun ao => gu nao */ - { &pinyin_table[189], &pinyin_table[128], &pinyin_table[179], &pinyin_table[366], }, /* gun e => gu ne */ - { &pinyin_table[189], &pinyin_table[129], &pinyin_table[179], &pinyin_table[368], }, /* gun ei => gu nei */ - { &pinyin_table[196], &pinyin_table[5], &pinyin_table[192], &pinyin_table[364], }, /* han ang => ha nang */ - { &pinyin_table[196], &pinyin_table[6], &pinyin_table[192], &pinyin_table[365], }, /* han ao => ha nao */ - { &pinyin_table[196], &pinyin_table[129], &pinyin_table[192], &pinyin_table[368], }, /* han ei => ha nei */ - { &pinyin_table[197], &pinyin_table[2], &pinyin_table[196], &pinyin_table[163], }, /* hang ai => han gai */ - { &pinyin_table[197], &pinyin_table[5], &pinyin_table[196], &pinyin_table[166], }, /* hang ang => han gang */ - { &pinyin_table[197], &pinyin_table[6], &pinyin_table[196], &pinyin_table[167], }, /* hang ao => han gao */ - { &pinyin_table[197], &pinyin_table[128], &pinyin_table[196], &pinyin_table[168], }, /* hang e => han ge */ - { &pinyin_table[197], &pinyin_table[129], &pinyin_table[196], &pinyin_table[170], }, /* hang ei => han gei */ - { &pinyin_table[197], &pinyin_table[130], &pinyin_table[196], &pinyin_table[172], }, /* hang en => han gen */ - { &pinyin_table[197], &pinyin_table[402], &pinyin_table[196], &pinyin_table[178], }, /* hang ou => han gou */ - { &pinyin_table[203], &pinyin_table[0], &pinyin_table[199], &pinyin_table[359], }, /* hen a => he na */ - { &pinyin_table[203], &pinyin_table[4], &pinyin_table[199], &pinyin_table[363], }, /* hen an => he nan */ - { &pinyin_table[203], &pinyin_table[5], &pinyin_table[199], &pinyin_table[364], }, /* hen ang => he nang */ - { &pinyin_table[203], &pinyin_table[6], &pinyin_table[199], &pinyin_table[365], }, /* hen ao => he nao */ - { &pinyin_table[203], &pinyin_table[129], &pinyin_table[199], &pinyin_table[368], }, /* hen ei => he nei */ - { &pinyin_table[204], &pinyin_table[2], &pinyin_table[203], &pinyin_table[163], }, /* heng ai => hen gai */ - { &pinyin_table[204], &pinyin_table[4], &pinyin_table[203], &pinyin_table[165], }, /* heng an => hen gan */ - { &pinyin_table[204], &pinyin_table[5], &pinyin_table[203], &pinyin_table[166], }, /* heng ang => hen gang */ - { &pinyin_table[204], &pinyin_table[6], &pinyin_table[203], &pinyin_table[167], }, /* heng ao => hen gao */ - { &pinyin_table[204], &pinyin_table[129], &pinyin_table[203], &pinyin_table[170], }, /* heng ei => hen gei */ - { &pinyin_table[204], &pinyin_table[130], &pinyin_table[203], &pinyin_table[172], }, /* heng en => hen gen */ - { &pinyin_table[204], &pinyin_table[402], &pinyin_table[203], &pinyin_table[178], }, /* heng ou => hen gou */ - { &pinyin_table[216], &pinyin_table[0], &pinyin_table[212], &pinyin_table[359], }, /* huan a => hua na */ - { &pinyin_table[216], &pinyin_table[4], &pinyin_table[212], &pinyin_table[363], }, /* huan an => hua nan */ - { &pinyin_table[216], &pinyin_table[5], &pinyin_table[212], &pinyin_table[364], }, /* huan ang => hua nang */ - { &pinyin_table[216], &pinyin_table[6], &pinyin_table[212], &pinyin_table[365], }, /* huan ao => hua nao */ - { &pinyin_table[216], &pinyin_table[128], &pinyin_table[212], &pinyin_table[366], }, /* huan e => hua ne */ - { &pinyin_table[216], &pinyin_table[129], &pinyin_table[212], &pinyin_table[368], }, /* huan ei => hua nei */ - { &pinyin_table[216], &pinyin_table[130], &pinyin_table[212], &pinyin_table[370], }, /* huan en => hua nen */ - { &pinyin_table[217], &pinyin_table[2], &pinyin_table[216], &pinyin_table[163], }, /* huang ai => huan gai */ - { &pinyin_table[217], &pinyin_table[5], &pinyin_table[216], &pinyin_table[166], }, /* huang ang => huan gang */ - { &pinyin_table[217], &pinyin_table[6], &pinyin_table[216], &pinyin_table[167], }, /* huang ao => huan gao */ - { &pinyin_table[217], &pinyin_table[128], &pinyin_table[216], &pinyin_table[168], }, /* huang e => huan ge */ - { &pinyin_table[217], &pinyin_table[129], &pinyin_table[216], &pinyin_table[170], }, /* huang ei => huan gei */ - { &pinyin_table[217], &pinyin_table[402], &pinyin_table[216], &pinyin_table[178], }, /* huang ou => huan gou */ - { &pinyin_table[221], &pinyin_table[4], &pinyin_table[211], &pinyin_table[363], }, /* hun an => hu nan */ - { &pinyin_table[221], &pinyin_table[5], &pinyin_table[211], &pinyin_table[364], }, /* hun ang => hu nang */ - { &pinyin_table[221], &pinyin_table[6], &pinyin_table[211], &pinyin_table[365], }, /* hun ao => hu nao */ - { &pinyin_table[221], &pinyin_table[129], &pinyin_table[211], &pinyin_table[368], }, /* hun ei => hu nei */ - { &pinyin_table[228], &pinyin_table[0], &pinyin_table[225], &pinyin_table[359], }, /* jian a => jia na */ - { &pinyin_table[228], &pinyin_table[2], &pinyin_table[225], &pinyin_table[361], }, /* jian ai => jia nai */ - { &pinyin_table[228], &pinyin_table[5], &pinyin_table[225], &pinyin_table[364], }, /* jian ang => jia nang */ - { &pinyin_table[228], &pinyin_table[128], &pinyin_table[225], &pinyin_table[366], }, /* jian e => jia ne */ - { &pinyin_table[228], &pinyin_table[129], &pinyin_table[225], &pinyin_table[368], }, /* jian ei => jia nei */ - { &pinyin_table[229], &pinyin_table[5], &pinyin_table[228], &pinyin_table[166], }, /* jiang ang => jian gang */ - { &pinyin_table[229], &pinyin_table[6], &pinyin_table[228], &pinyin_table[167], }, /* jiang ao => jian gao */ - { &pinyin_table[229], &pinyin_table[128], &pinyin_table[228], &pinyin_table[168], }, /* jiang e => jian ge */ - { &pinyin_table[229], &pinyin_table[129], &pinyin_table[228], &pinyin_table[170], }, /* jiang ei => jian gei */ - { &pinyin_table[229], &pinyin_table[402], &pinyin_table[228], &pinyin_table[178], }, /* jiang ou => jian gou */ - { &pinyin_table[231], &pinyin_table[459], &pinyin_table[224], &pinyin_table[131], }, /* jie r => ji er */ - { &pinyin_table[234], &pinyin_table[0], &pinyin_table[224], &pinyin_table[359], }, /* jin a => ji na */ - { &pinyin_table[234], &pinyin_table[4], &pinyin_table[224], &pinyin_table[363], }, /* jin an => ji nan */ - { &pinyin_table[234], &pinyin_table[5], &pinyin_table[224], &pinyin_table[364], }, /* jin ang => ji nang */ - { &pinyin_table[234], &pinyin_table[6], &pinyin_table[224], &pinyin_table[365], }, /* jin ao => ji nao */ - { &pinyin_table[234], &pinyin_table[129], &pinyin_table[224], &pinyin_table[368], }, /* jin ei => ji nei */ - { &pinyin_table[235], &pinyin_table[5], &pinyin_table[234], &pinyin_table[166], }, /* jing ang => jin gang */ - { &pinyin_table[235], &pinyin_table[6], &pinyin_table[234], &pinyin_table[167], }, /* jing ao => jin gao */ - { &pinyin_table[235], &pinyin_table[129], &pinyin_table[234], &pinyin_table[170], }, /* jing ei => jin gei */ - { &pinyin_table[235], &pinyin_table[130], &pinyin_table[234], &pinyin_table[172], }, /* jing en => jin gen */ - { &pinyin_table[235], &pinyin_table[402], &pinyin_table[234], &pinyin_table[178], }, /* jing ou => jin gou */ - { &pinyin_table[244], &pinyin_table[0], &pinyin_table[243], &pinyin_table[161], }, /* juang a => juan ga */ - { &pinyin_table[244], &pinyin_table[2], &pinyin_table[243], &pinyin_table[163], }, /* juang ai => juan gai */ - { &pinyin_table[244], &pinyin_table[4], &pinyin_table[243], &pinyin_table[165], }, /* juang an => juan gan */ - { &pinyin_table[244], &pinyin_table[5], &pinyin_table[243], &pinyin_table[166], }, /* juang ang => juan gang */ - { &pinyin_table[244], &pinyin_table[6], &pinyin_table[243], &pinyin_table[167], }, /* juang ao => juan gao */ - { &pinyin_table[244], &pinyin_table[128], &pinyin_table[243], &pinyin_table[168], }, /* juang e => juan ge */ - { &pinyin_table[244], &pinyin_table[129], &pinyin_table[243], &pinyin_table[170], }, /* juang ei => juan gei */ - { &pinyin_table[244], &pinyin_table[130], &pinyin_table[243], &pinyin_table[172], }, /* juang en => juan gen */ - { &pinyin_table[244], &pinyin_table[402], &pinyin_table[243], &pinyin_table[178], }, /* juang ou => juan gou */ - { &pinyin_table[245], &pinyin_table[459], &pinyin_table[242], &pinyin_table[131], }, /* jue r => ju er */ - { &pinyin_table[246], &pinyin_table[0], &pinyin_table[245], &pinyin_table[359], }, /* juen a => jue na */ - { &pinyin_table[246], &pinyin_table[2], &pinyin_table[245], &pinyin_table[361], }, /* juen ai => jue nai */ - { &pinyin_table[246], &pinyin_table[4], &pinyin_table[245], &pinyin_table[363], }, /* juen an => jue nan */ - { &pinyin_table[246], &pinyin_table[5], &pinyin_table[245], &pinyin_table[364], }, /* juen ang => jue nang */ - { &pinyin_table[246], &pinyin_table[6], &pinyin_table[245], &pinyin_table[365], }, /* juen ao => jue nao */ - { &pinyin_table[246], &pinyin_table[128], &pinyin_table[245], &pinyin_table[366], }, /* juen e => jue ne */ - { &pinyin_table[246], &pinyin_table[129], &pinyin_table[245], &pinyin_table[368], }, /* juen ei => jue nei */ - { &pinyin_table[246], &pinyin_table[130], &pinyin_table[245], &pinyin_table[370], }, /* juen en => jue nen */ - { &pinyin_table[246], &pinyin_table[402], &pinyin_table[245], &pinyin_table[391], }, /* juen ou => jue nou */ - { &pinyin_table[247], &pinyin_table[0], &pinyin_table[242], &pinyin_table[359], }, /* jun a => ju na */ - { &pinyin_table[247], &pinyin_table[2], &pinyin_table[242], &pinyin_table[361], }, /* jun ai => ju nai */ - { &pinyin_table[247], &pinyin_table[128], &pinyin_table[242], &pinyin_table[366], }, /* jun e => ju ne */ - { &pinyin_table[247], &pinyin_table[129], &pinyin_table[242], &pinyin_table[368], }, /* jun ei => ju nei */ - { &pinyin_table[259], &pinyin_table[129], &pinyin_table[255], &pinyin_table[368], }, /* kan ei => ka nei */ - { &pinyin_table[260], &pinyin_table[4], &pinyin_table[259], &pinyin_table[165], }, /* kang an => kan gan */ - { &pinyin_table[260], &pinyin_table[5], &pinyin_table[259], &pinyin_table[166], }, /* kang ang => kan gang */ - { &pinyin_table[260], &pinyin_table[6], &pinyin_table[259], &pinyin_table[167], }, /* kang ao => kan gao */ - { &pinyin_table[260], &pinyin_table[128], &pinyin_table[259], &pinyin_table[168], }, /* kang e => kan ge */ - { &pinyin_table[260], &pinyin_table[129], &pinyin_table[259], &pinyin_table[170], }, /* kang ei => kan gei */ - { &pinyin_table[260], &pinyin_table[130], &pinyin_table[259], &pinyin_table[172], }, /* kang en => kan gen */ - { &pinyin_table[260], &pinyin_table[402], &pinyin_table[259], &pinyin_table[178], }, /* kang ou => kan gou */ - { &pinyin_table[266], &pinyin_table[0], &pinyin_table[262], &pinyin_table[359], }, /* ken a => ke na */ - { &pinyin_table[266], &pinyin_table[2], &pinyin_table[262], &pinyin_table[361], }, /* ken ai => ke nai */ - { &pinyin_table[266], &pinyin_table[4], &pinyin_table[262], &pinyin_table[363], }, /* ken an => ke nan */ - { &pinyin_table[266], &pinyin_table[5], &pinyin_table[262], &pinyin_table[364], }, /* ken ang => ke nang */ - { &pinyin_table[266], &pinyin_table[6], &pinyin_table[262], &pinyin_table[365], }, /* ken ao => ke nao */ - { &pinyin_table[266], &pinyin_table[128], &pinyin_table[262], &pinyin_table[366], }, /* ken e => ke ne */ - { &pinyin_table[266], &pinyin_table[129], &pinyin_table[262], &pinyin_table[368], }, /* ken ei => ke nei */ - { &pinyin_table[267], &pinyin_table[2], &pinyin_table[266], &pinyin_table[163], }, /* keng ai => ken gai */ - { &pinyin_table[267], &pinyin_table[4], &pinyin_table[266], &pinyin_table[165], }, /* keng an => ken gan */ - { &pinyin_table[267], &pinyin_table[5], &pinyin_table[266], &pinyin_table[166], }, /* keng ang => ken gang */ - { &pinyin_table[267], &pinyin_table[6], &pinyin_table[266], &pinyin_table[167], }, /* keng ao => ken gao */ - { &pinyin_table[267], &pinyin_table[128], &pinyin_table[266], &pinyin_table[168], }, /* keng e => ken ge */ - { &pinyin_table[267], &pinyin_table[129], &pinyin_table[266], &pinyin_table[170], }, /* keng ei => ken gei */ - { &pinyin_table[267], &pinyin_table[130], &pinyin_table[266], &pinyin_table[172], }, /* keng en => ken gen */ - { &pinyin_table[267], &pinyin_table[402], &pinyin_table[266], &pinyin_table[178], }, /* keng ou => ken gou */ - { &pinyin_table[278], &pinyin_table[0], &pinyin_table[274], &pinyin_table[359], }, /* kuan a => kua na */ - { &pinyin_table[278], &pinyin_table[129], &pinyin_table[274], &pinyin_table[368], }, /* kuan ei => kua nei */ - { &pinyin_table[279], &pinyin_table[5], &pinyin_table[278], &pinyin_table[166], }, /* kuang ang => kuan gang */ - { &pinyin_table[279], &pinyin_table[128], &pinyin_table[278], &pinyin_table[168], }, /* kuang e => kuan ge */ - { &pinyin_table[279], &pinyin_table[129], &pinyin_table[278], &pinyin_table[170], }, /* kuang ei => kuan gei */ - { &pinyin_table[279], &pinyin_table[130], &pinyin_table[278], &pinyin_table[172], }, /* kuang en => kuan gen */ - { &pinyin_table[283], &pinyin_table[4], &pinyin_table[273], &pinyin_table[363], }, /* kun an => ku nan */ - { &pinyin_table[283], &pinyin_table[5], &pinyin_table[273], &pinyin_table[364], }, /* kun ang => ku nang */ - { &pinyin_table[283], &pinyin_table[6], &pinyin_table[273], &pinyin_table[365], }, /* kun ao => ku nao */ - { &pinyin_table[283], &pinyin_table[128], &pinyin_table[273], &pinyin_table[366], }, /* kun e => ku ne */ - { &pinyin_table[283], &pinyin_table[129], &pinyin_table[273], &pinyin_table[368], }, /* kun ei => ku nei */ - { &pinyin_table[290], &pinyin_table[0], &pinyin_table[286], &pinyin_table[359], }, /* lan a => la na */ - { &pinyin_table[290], &pinyin_table[4], &pinyin_table[286], &pinyin_table[363], }, /* lan an => la nan */ - { &pinyin_table[290], &pinyin_table[5], &pinyin_table[286], &pinyin_table[364], }, /* lan ang => la nang */ - { &pinyin_table[290], &pinyin_table[6], &pinyin_table[286], &pinyin_table[365], }, /* lan ao => la nao */ - { &pinyin_table[290], &pinyin_table[128], &pinyin_table[286], &pinyin_table[366], }, /* lan e => la ne */ - { &pinyin_table[290], &pinyin_table[129], &pinyin_table[286], &pinyin_table[368], }, /* lan ei => la nei */ - { &pinyin_table[291], &pinyin_table[4], &pinyin_table[290], &pinyin_table[165], }, /* lang an => lan gan */ - { &pinyin_table[291], &pinyin_table[5], &pinyin_table[290], &pinyin_table[166], }, /* lang ang => lan gang */ - { &pinyin_table[291], &pinyin_table[6], &pinyin_table[290], &pinyin_table[167], }, /* lang ao => lan gao */ - { &pinyin_table[291], &pinyin_table[128], &pinyin_table[290], &pinyin_table[168], }, /* lang e => lan ge */ - { &pinyin_table[291], &pinyin_table[129], &pinyin_table[290], &pinyin_table[170], }, /* lang ei => lan gei */ - { &pinyin_table[291], &pinyin_table[130], &pinyin_table[290], &pinyin_table[172], }, /* lang en => lan gen */ - { &pinyin_table[291], &pinyin_table[402], &pinyin_table[290], &pinyin_table[178], }, /* lang ou => lan gou */ - { &pinyin_table[297], &pinyin_table[0], &pinyin_table[293], &pinyin_table[359], }, /* len a => le na */ - { &pinyin_table[297], &pinyin_table[2], &pinyin_table[293], &pinyin_table[361], }, /* len ai => le nai */ - { &pinyin_table[297], &pinyin_table[4], &pinyin_table[293], &pinyin_table[363], }, /* len an => le nan */ - { &pinyin_table[297], &pinyin_table[5], &pinyin_table[293], &pinyin_table[364], }, /* len ang => le nang */ - { &pinyin_table[297], &pinyin_table[6], &pinyin_table[293], &pinyin_table[365], }, /* len ao => le nao */ - { &pinyin_table[297], &pinyin_table[128], &pinyin_table[293], &pinyin_table[366], }, /* len e => le ne */ - { &pinyin_table[297], &pinyin_table[129], &pinyin_table[293], &pinyin_table[368], }, /* len ei => le nei */ - { &pinyin_table[297], &pinyin_table[130], &pinyin_table[293], &pinyin_table[370], }, /* len en => le nen */ - { &pinyin_table[297], &pinyin_table[402], &pinyin_table[293], &pinyin_table[391], }, /* len ou => le nou */ - { &pinyin_table[303], &pinyin_table[129], &pinyin_table[300], &pinyin_table[368], }, /* lian ei => lia nei */ - { &pinyin_table[304], &pinyin_table[5], &pinyin_table[303], &pinyin_table[166], }, /* liang ang => lian gang */ - { &pinyin_table[304], &pinyin_table[6], &pinyin_table[303], &pinyin_table[167], }, /* liang ao => lian gao */ - { &pinyin_table[304], &pinyin_table[128], &pinyin_table[303], &pinyin_table[168], }, /* liang e => lian ge */ - { &pinyin_table[304], &pinyin_table[129], &pinyin_table[303], &pinyin_table[170], }, /* liang ei => lian gei */ - { &pinyin_table[304], &pinyin_table[130], &pinyin_table[303], &pinyin_table[172], }, /* liang en => lian gen */ - { &pinyin_table[304], &pinyin_table[402], &pinyin_table[303], &pinyin_table[178], }, /* liang ou => lian gou */ - { &pinyin_table[306], &pinyin_table[459], &pinyin_table[299], &pinyin_table[131], }, /* lie r => li er */ - { &pinyin_table[309], &pinyin_table[0], &pinyin_table[299], &pinyin_table[359], }, /* lin a => li na */ - { &pinyin_table[309], &pinyin_table[4], &pinyin_table[299], &pinyin_table[363], }, /* lin an => li nan */ - { &pinyin_table[309], &pinyin_table[5], &pinyin_table[299], &pinyin_table[364], }, /* lin ang => li nang */ - { &pinyin_table[309], &pinyin_table[6], &pinyin_table[299], &pinyin_table[365], }, /* lin ao => li nao */ - { &pinyin_table[309], &pinyin_table[128], &pinyin_table[299], &pinyin_table[366], }, /* lin e => li ne */ - { &pinyin_table[309], &pinyin_table[129], &pinyin_table[299], &pinyin_table[368], }, /* lin ei => li nei */ - { &pinyin_table[310], &pinyin_table[5], &pinyin_table[309], &pinyin_table[166], }, /* ling ang => lin gang */ - { &pinyin_table[310], &pinyin_table[6], &pinyin_table[309], &pinyin_table[167], }, /* ling ao => lin gao */ - { &pinyin_table[310], &pinyin_table[128], &pinyin_table[309], &pinyin_table[168], }, /* ling e => lin ge */ - { &pinyin_table[310], &pinyin_table[129], &pinyin_table[309], &pinyin_table[170], }, /* ling ei => lin gei */ - { &pinyin_table[310], &pinyin_table[130], &pinyin_table[309], &pinyin_table[172], }, /* ling en => lin gen */ - { &pinyin_table[310], &pinyin_table[402], &pinyin_table[309], &pinyin_table[178], }, /* ling ou => lin gou */ - { &pinyin_table[316], &pinyin_table[0], &pinyin_table[313], &pinyin_table[359], }, /* lon a => lo na */ - { &pinyin_table[316], &pinyin_table[2], &pinyin_table[313], &pinyin_table[361], }, /* lon ai => lo nai */ - { &pinyin_table[316], &pinyin_table[4], &pinyin_table[313], &pinyin_table[363], }, /* lon an => lo nan */ - { &pinyin_table[316], &pinyin_table[5], &pinyin_table[313], &pinyin_table[364], }, /* lon ang => lo nang */ - { &pinyin_table[316], &pinyin_table[6], &pinyin_table[313], &pinyin_table[365], }, /* lon ao => lo nao */ - { &pinyin_table[316], &pinyin_table[128], &pinyin_table[313], &pinyin_table[366], }, /* lon e => lo ne */ - { &pinyin_table[316], &pinyin_table[129], &pinyin_table[313], &pinyin_table[368], }, /* lon ei => lo nei */ - { &pinyin_table[316], &pinyin_table[130], &pinyin_table[313], &pinyin_table[370], }, /* lon en => lo nen */ - { &pinyin_table[316], &pinyin_table[402], &pinyin_table[313], &pinyin_table[391], }, /* lon ou => lo nou */ - { &pinyin_table[321], &pinyin_table[0], &pinyin_table[320], &pinyin_table[161], }, /* luang a => luan ga */ - { &pinyin_table[321], &pinyin_table[2], &pinyin_table[320], &pinyin_table[163], }, /* luang ai => luan gai */ - { &pinyin_table[321], &pinyin_table[4], &pinyin_table[320], &pinyin_table[165], }, /* luang an => luan gan */ - { &pinyin_table[321], &pinyin_table[5], &pinyin_table[320], &pinyin_table[166], }, /* luang ang => luan gang */ - { &pinyin_table[321], &pinyin_table[6], &pinyin_table[320], &pinyin_table[167], }, /* luang ao => luan gao */ - { &pinyin_table[321], &pinyin_table[128], &pinyin_table[320], &pinyin_table[168], }, /* luang e => luan ge */ - { &pinyin_table[321], &pinyin_table[129], &pinyin_table[320], &pinyin_table[170], }, /* luang ei => luan gei */ - { &pinyin_table[321], &pinyin_table[130], &pinyin_table[320], &pinyin_table[172], }, /* luang en => luan gen */ - { &pinyin_table[321], &pinyin_table[402], &pinyin_table[320], &pinyin_table[178], }, /* luang ou => luan gou */ - { &pinyin_table[322], &pinyin_table[459], &pinyin_table[319], &pinyin_table[131], }, /* lue r => lu er */ - { &pinyin_table[326], &pinyin_table[0], &pinyin_table[319], &pinyin_table[359], }, /* lun a => lu na */ - { &pinyin_table[326], &pinyin_table[2], &pinyin_table[319], &pinyin_table[361], }, /* lun ai => lu nai */ - { &pinyin_table[326], &pinyin_table[4], &pinyin_table[319], &pinyin_table[363], }, /* lun an => lu nan */ - { &pinyin_table[326], &pinyin_table[5], &pinyin_table[319], &pinyin_table[364], }, /* lun ang => lu nang */ - { &pinyin_table[326], &pinyin_table[6], &pinyin_table[319], &pinyin_table[365], }, /* lun ao => lu nao */ - { &pinyin_table[326], &pinyin_table[128], &pinyin_table[319], &pinyin_table[366], }, /* lun e => lu ne */ - { &pinyin_table[326], &pinyin_table[129], &pinyin_table[319], &pinyin_table[368], }, /* lun ei => lu nei */ - { &pinyin_table[329], &pinyin_table[459], &pinyin_table[328], &pinyin_table[131], }, /* lve r => lv er */ - { &pinyin_table[335], &pinyin_table[2], &pinyin_table[331], &pinyin_table[361], }, /* man ai => ma nai */ - { &pinyin_table[335], &pinyin_table[4], &pinyin_table[331], &pinyin_table[363], }, /* man an => ma nan */ - { &pinyin_table[335], &pinyin_table[5], &pinyin_table[331], &pinyin_table[364], }, /* man ang => ma nang */ - { &pinyin_table[335], &pinyin_table[6], &pinyin_table[331], &pinyin_table[365], }, /* man ao => ma nao */ - { &pinyin_table[335], &pinyin_table[128], &pinyin_table[331], &pinyin_table[366], }, /* man e => ma ne */ - { &pinyin_table[335], &pinyin_table[129], &pinyin_table[331], &pinyin_table[368], }, /* man ei => ma nei */ - { &pinyin_table[336], &pinyin_table[2], &pinyin_table[335], &pinyin_table[163], }, /* mang ai => man gai */ - { &pinyin_table[336], &pinyin_table[4], &pinyin_table[335], &pinyin_table[165], }, /* mang an => man gan */ - { &pinyin_table[336], &pinyin_table[5], &pinyin_table[335], &pinyin_table[166], }, /* mang ang => man gang */ - { &pinyin_table[336], &pinyin_table[6], &pinyin_table[335], &pinyin_table[167], }, /* mang ao => man gao */ - { &pinyin_table[336], &pinyin_table[128], &pinyin_table[335], &pinyin_table[168], }, /* mang e => man ge */ - { &pinyin_table[336], &pinyin_table[129], &pinyin_table[335], &pinyin_table[170], }, /* mang ei => man gei */ - { &pinyin_table[336], &pinyin_table[130], &pinyin_table[335], &pinyin_table[172], }, /* mang en => man gen */ - { &pinyin_table[336], &pinyin_table[402], &pinyin_table[335], &pinyin_table[178], }, /* mang ou => man gou */ - { &pinyin_table[342], &pinyin_table[5], &pinyin_table[338], &pinyin_table[364], }, /* men ang => me nang */ - { &pinyin_table[342], &pinyin_table[6], &pinyin_table[338], &pinyin_table[365], }, /* men ao => me nao */ - { &pinyin_table[342], &pinyin_table[128], &pinyin_table[338], &pinyin_table[366], }, /* men e => me ne */ - { &pinyin_table[342], &pinyin_table[129], &pinyin_table[338], &pinyin_table[368], }, /* men ei => me nei */ - { &pinyin_table[343], &pinyin_table[2], &pinyin_table[342], &pinyin_table[163], }, /* meng ai => men gai */ - { &pinyin_table[343], &pinyin_table[5], &pinyin_table[342], &pinyin_table[166], }, /* meng ang => men gang */ - { &pinyin_table[343], &pinyin_table[6], &pinyin_table[342], &pinyin_table[167], }, /* meng ao => men gao */ - { &pinyin_table[343], &pinyin_table[128], &pinyin_table[342], &pinyin_table[168], }, /* meng e => men ge */ - { &pinyin_table[343], &pinyin_table[129], &pinyin_table[342], &pinyin_table[170], }, /* meng ei => men gei */ - { &pinyin_table[343], &pinyin_table[402], &pinyin_table[342], &pinyin_table[178], }, /* meng ou => men gou */ - { &pinyin_table[346], &pinyin_table[0], &pinyin_table[345], &pinyin_table[161], }, /* miang a => mian ga */ - { &pinyin_table[346], &pinyin_table[2], &pinyin_table[345], &pinyin_table[163], }, /* miang ai => mian gai */ - { &pinyin_table[346], &pinyin_table[4], &pinyin_table[345], &pinyin_table[165], }, /* miang an => mian gan */ - { &pinyin_table[346], &pinyin_table[5], &pinyin_table[345], &pinyin_table[166], }, /* miang ang => mian gang */ - { &pinyin_table[346], &pinyin_table[6], &pinyin_table[345], &pinyin_table[167], }, /* miang ao => mian gao */ - { &pinyin_table[346], &pinyin_table[128], &pinyin_table[345], &pinyin_table[168], }, /* miang e => mian ge */ - { &pinyin_table[346], &pinyin_table[129], &pinyin_table[345], &pinyin_table[170], }, /* miang ei => mian gei */ - { &pinyin_table[346], &pinyin_table[130], &pinyin_table[345], &pinyin_table[172], }, /* miang en => mian gen */ - { &pinyin_table[346], &pinyin_table[402], &pinyin_table[345], &pinyin_table[178], }, /* miang ou => mian gou */ - { &pinyin_table[348], &pinyin_table[459], &pinyin_table[344], &pinyin_table[131], }, /* mie r => mi er */ - { &pinyin_table[351], &pinyin_table[0], &pinyin_table[344], &pinyin_table[359], }, /* min a => mi na */ - { &pinyin_table[351], &pinyin_table[128], &pinyin_table[344], &pinyin_table[366], }, /* min e => mi ne */ - { &pinyin_table[351], &pinyin_table[129], &pinyin_table[344], &pinyin_table[368], }, /* min ei => mi nei */ - { &pinyin_table[352], &pinyin_table[4], &pinyin_table[351], &pinyin_table[165], }, /* ming an => min gan */ - { &pinyin_table[352], &pinyin_table[5], &pinyin_table[351], &pinyin_table[166], }, /* ming ang => min gang */ - { &pinyin_table[352], &pinyin_table[6], &pinyin_table[351], &pinyin_table[167], }, /* ming ao => min gao */ - { &pinyin_table[352], &pinyin_table[128], &pinyin_table[351], &pinyin_table[168], }, /* ming e => min ge */ - { &pinyin_table[352], &pinyin_table[129], &pinyin_table[351], &pinyin_table[170], }, /* ming ei => min gei */ - { &pinyin_table[352], &pinyin_table[402], &pinyin_table[351], &pinyin_table[178], }, /* ming ou => min gou */ - { &pinyin_table[363], &pinyin_table[0], &pinyin_table[359], &pinyin_table[359], }, /* nan a => na na */ - { &pinyin_table[363], &pinyin_table[5], &pinyin_table[359], &pinyin_table[364], }, /* nan ang => na nang */ - { &pinyin_table[363], &pinyin_table[128], &pinyin_table[359], &pinyin_table[366], }, /* nan e => na ne */ - { &pinyin_table[363], &pinyin_table[129], &pinyin_table[359], &pinyin_table[368], }, /* nan ei => na nei */ - { &pinyin_table[364], &pinyin_table[0], &pinyin_table[363], &pinyin_table[161], }, /* nang a => nan ga */ - { &pinyin_table[364], &pinyin_table[2], &pinyin_table[363], &pinyin_table[163], }, /* nang ai => nan gai */ - { &pinyin_table[364], &pinyin_table[4], &pinyin_table[363], &pinyin_table[165], }, /* nang an => nan gan */ - { &pinyin_table[364], &pinyin_table[5], &pinyin_table[363], &pinyin_table[166], }, /* nang ang => nan gang */ - { &pinyin_table[364], &pinyin_table[6], &pinyin_table[363], &pinyin_table[167], }, /* nang ao => nan gao */ - { &pinyin_table[364], &pinyin_table[128], &pinyin_table[363], &pinyin_table[168], }, /* nang e => nan ge */ - { &pinyin_table[364], &pinyin_table[129], &pinyin_table[363], &pinyin_table[170], }, /* nang ei => nan gei */ - { &pinyin_table[364], &pinyin_table[130], &pinyin_table[363], &pinyin_table[172], }, /* nang en => nan gen */ - { &pinyin_table[364], &pinyin_table[402], &pinyin_table[363], &pinyin_table[178], }, /* nang ou => nan gou */ - { &pinyin_table[370], &pinyin_table[0], &pinyin_table[366], &pinyin_table[359], }, /* nen a => ne na */ - { &pinyin_table[370], &pinyin_table[2], &pinyin_table[366], &pinyin_table[361], }, /* nen ai => ne nai */ - { &pinyin_table[370], &pinyin_table[4], &pinyin_table[366], &pinyin_table[363], }, /* nen an => ne nan */ - { &pinyin_table[370], &pinyin_table[5], &pinyin_table[366], &pinyin_table[364], }, /* nen ang => ne nang */ - { &pinyin_table[370], &pinyin_table[6], &pinyin_table[366], &pinyin_table[365], }, /* nen ao => ne nao */ - { &pinyin_table[370], &pinyin_table[128], &pinyin_table[366], &pinyin_table[366], }, /* nen e => ne ne */ - { &pinyin_table[370], &pinyin_table[129], &pinyin_table[366], &pinyin_table[368], }, /* nen ei => ne nei */ - { &pinyin_table[370], &pinyin_table[130], &pinyin_table[366], &pinyin_table[370], }, /* nen en => ne nen */ - { &pinyin_table[371], &pinyin_table[128], &pinyin_table[370], &pinyin_table[168], }, /* neng e => nen ge */ - { &pinyin_table[371], &pinyin_table[129], &pinyin_table[370], &pinyin_table[170], }, /* neng ei => nen gei */ - { &pinyin_table[377], &pinyin_table[2], &pinyin_table[376], &pinyin_table[163], }, /* niang ai => nian gai */ - { &pinyin_table[377], &pinyin_table[4], &pinyin_table[376], &pinyin_table[165], }, /* niang an => nian gan */ - { &pinyin_table[377], &pinyin_table[5], &pinyin_table[376], &pinyin_table[166], }, /* niang ang => nian gang */ - { &pinyin_table[377], &pinyin_table[6], &pinyin_table[376], &pinyin_table[167], }, /* niang ao => nian gao */ - { &pinyin_table[377], &pinyin_table[128], &pinyin_table[376], &pinyin_table[168], }, /* niang e => nian ge */ - { &pinyin_table[377], &pinyin_table[129], &pinyin_table[376], &pinyin_table[170], }, /* niang ei => nian gei */ - { &pinyin_table[377], &pinyin_table[130], &pinyin_table[376], &pinyin_table[172], }, /* niang en => nian gen */ - { &pinyin_table[377], &pinyin_table[402], &pinyin_table[376], &pinyin_table[178], }, /* niang ou => nian gou */ - { &pinyin_table[379], &pinyin_table[459], &pinyin_table[372], &pinyin_table[131], }, /* nie r => ni er */ - { &pinyin_table[382], &pinyin_table[0], &pinyin_table[372], &pinyin_table[359], }, /* nin a => ni na */ - { &pinyin_table[382], &pinyin_table[4], &pinyin_table[372], &pinyin_table[363], }, /* nin an => ni nan */ - { &pinyin_table[382], &pinyin_table[5], &pinyin_table[372], &pinyin_table[364], }, /* nin ang => ni nang */ - { &pinyin_table[382], &pinyin_table[6], &pinyin_table[372], &pinyin_table[365], }, /* nin ao => ni nao */ - { &pinyin_table[382], &pinyin_table[128], &pinyin_table[372], &pinyin_table[366], }, /* nin e => ni ne */ - { &pinyin_table[382], &pinyin_table[129], &pinyin_table[372], &pinyin_table[368], }, /* nin ei => ni nei */ - { &pinyin_table[383], &pinyin_table[2], &pinyin_table[382], &pinyin_table[163], }, /* ning ai => nin gai */ - { &pinyin_table[383], &pinyin_table[5], &pinyin_table[382], &pinyin_table[166], }, /* ning ang => nin gang */ - { &pinyin_table[383], &pinyin_table[6], &pinyin_table[382], &pinyin_table[167], }, /* ning ao => nin gao */ - { &pinyin_table[383], &pinyin_table[129], &pinyin_table[382], &pinyin_table[170], }, /* ning ei => nin gei */ - { &pinyin_table[383], &pinyin_table[130], &pinyin_table[382], &pinyin_table[172], }, /* ning en => nin gen */ - { &pinyin_table[383], &pinyin_table[402], &pinyin_table[382], &pinyin_table[178], }, /* ning ou => nin gou */ - { &pinyin_table[394], &pinyin_table[0], &pinyin_table[393], &pinyin_table[161], }, /* nuang a => nuan ga */ - { &pinyin_table[394], &pinyin_table[2], &pinyin_table[393], &pinyin_table[163], }, /* nuang ai => nuan gai */ - { &pinyin_table[394], &pinyin_table[4], &pinyin_table[393], &pinyin_table[165], }, /* nuang an => nuan gan */ - { &pinyin_table[394], &pinyin_table[5], &pinyin_table[393], &pinyin_table[166], }, /* nuang ang => nuan gang */ - { &pinyin_table[394], &pinyin_table[6], &pinyin_table[393], &pinyin_table[167], }, /* nuang ao => nuan gao */ - { &pinyin_table[394], &pinyin_table[128], &pinyin_table[393], &pinyin_table[168], }, /* nuang e => nuan ge */ - { &pinyin_table[394], &pinyin_table[129], &pinyin_table[393], &pinyin_table[170], }, /* nuang ei => nuan gei */ - { &pinyin_table[394], &pinyin_table[130], &pinyin_table[393], &pinyin_table[172], }, /* nuang en => nuan gen */ - { &pinyin_table[394], &pinyin_table[402], &pinyin_table[393], &pinyin_table[178], }, /* nuang ou => nuan gou */ - { &pinyin_table[395], &pinyin_table[459], &pinyin_table[392], &pinyin_table[131], }, /* nue r => nu er */ - { &pinyin_table[397], &pinyin_table[0], &pinyin_table[392], &pinyin_table[359], }, /* nun a => nu na */ - { &pinyin_table[397], &pinyin_table[2], &pinyin_table[392], &pinyin_table[361], }, /* nun ai => nu nai */ - { &pinyin_table[397], &pinyin_table[4], &pinyin_table[392], &pinyin_table[363], }, /* nun an => nu nan */ - { &pinyin_table[397], &pinyin_table[5], &pinyin_table[392], &pinyin_table[364], }, /* nun ang => nu nang */ - { &pinyin_table[397], &pinyin_table[6], &pinyin_table[392], &pinyin_table[365], }, /* nun ao => nu nao */ - { &pinyin_table[397], &pinyin_table[128], &pinyin_table[392], &pinyin_table[366], }, /* nun e => nu ne */ - { &pinyin_table[397], &pinyin_table[129], &pinyin_table[392], &pinyin_table[368], }, /* nun ei => nu nei */ - { &pinyin_table[397], &pinyin_table[130], &pinyin_table[392], &pinyin_table[370], }, /* nun en => nu nen */ - { &pinyin_table[397], &pinyin_table[402], &pinyin_table[392], &pinyin_table[391], }, /* nun ou => nu nou */ - { &pinyin_table[400], &pinyin_table[459], &pinyin_table[399], &pinyin_table[131], }, /* nve r => nv er */ - { &pinyin_table[408], &pinyin_table[0], &pinyin_table[404], &pinyin_table[359], }, /* pan a => pa na */ - { &pinyin_table[408], &pinyin_table[5], &pinyin_table[404], &pinyin_table[364], }, /* pan ang => pa nang */ - { &pinyin_table[408], &pinyin_table[6], &pinyin_table[404], &pinyin_table[365], }, /* pan ao => pa nao */ - { &pinyin_table[408], &pinyin_table[128], &pinyin_table[404], &pinyin_table[366], }, /* pan e => pa ne */ - { &pinyin_table[408], &pinyin_table[129], &pinyin_table[404], &pinyin_table[368], }, /* pan ei => pa nei */ - { &pinyin_table[409], &pinyin_table[5], &pinyin_table[408], &pinyin_table[166], }, /* pang ang => pan gang */ - { &pinyin_table[409], &pinyin_table[6], &pinyin_table[408], &pinyin_table[167], }, /* pang ao => pan gao */ - { &pinyin_table[409], &pinyin_table[128], &pinyin_table[408], &pinyin_table[168], }, /* pang e => pan ge */ - { &pinyin_table[409], &pinyin_table[129], &pinyin_table[408], &pinyin_table[170], }, /* pang ei => pan gei */ - { &pinyin_table[409], &pinyin_table[130], &pinyin_table[408], &pinyin_table[172], }, /* pang en => pan gen */ - { &pinyin_table[409], &pinyin_table[402], &pinyin_table[408], &pinyin_table[178], }, /* pang ou => pan gou */ - { &pinyin_table[415], &pinyin_table[5], &pinyin_table[414], &pinyin_table[166], }, /* peng ang => pen gang */ - { &pinyin_table[415], &pinyin_table[6], &pinyin_table[414], &pinyin_table[167], }, /* peng ao => pen gao */ - { &pinyin_table[415], &pinyin_table[128], &pinyin_table[414], &pinyin_table[168], }, /* peng e => pen ge */ - { &pinyin_table[415], &pinyin_table[129], &pinyin_table[414], &pinyin_table[170], }, /* peng ei => pen gei */ - { &pinyin_table[418], &pinyin_table[0], &pinyin_table[417], &pinyin_table[161], }, /* piang a => pian ga */ - { &pinyin_table[418], &pinyin_table[2], &pinyin_table[417], &pinyin_table[163], }, /* piang ai => pian gai */ - { &pinyin_table[418], &pinyin_table[4], &pinyin_table[417], &pinyin_table[165], }, /* piang an => pian gan */ - { &pinyin_table[418], &pinyin_table[5], &pinyin_table[417], &pinyin_table[166], }, /* piang ang => pian gang */ - { &pinyin_table[418], &pinyin_table[6], &pinyin_table[417], &pinyin_table[167], }, /* piang ao => pian gao */ - { &pinyin_table[418], &pinyin_table[128], &pinyin_table[417], &pinyin_table[168], }, /* piang e => pian ge */ - { &pinyin_table[418], &pinyin_table[129], &pinyin_table[417], &pinyin_table[170], }, /* piang ei => pian gei */ - { &pinyin_table[418], &pinyin_table[130], &pinyin_table[417], &pinyin_table[172], }, /* piang en => pian gen */ - { &pinyin_table[418], &pinyin_table[402], &pinyin_table[417], &pinyin_table[178], }, /* piang ou => pian gou */ - { &pinyin_table[420], &pinyin_table[459], &pinyin_table[416], &pinyin_table[131], }, /* pie r => pi er */ - { &pinyin_table[423], &pinyin_table[0], &pinyin_table[416], &pinyin_table[359], }, /* pin a => pi na */ - { &pinyin_table[423], &pinyin_table[5], &pinyin_table[416], &pinyin_table[364], }, /* pin ang => pi nang */ - { &pinyin_table[423], &pinyin_table[6], &pinyin_table[416], &pinyin_table[365], }, /* pin ao => pi nao */ - { &pinyin_table[423], &pinyin_table[128], &pinyin_table[416], &pinyin_table[366], }, /* pin e => pi ne */ - { &pinyin_table[423], &pinyin_table[129], &pinyin_table[416], &pinyin_table[368], }, /* pin ei => pi nei */ - { &pinyin_table[424], &pinyin_table[5], &pinyin_table[423], &pinyin_table[166], }, /* ping ang => pin gang */ - { &pinyin_table[424], &pinyin_table[6], &pinyin_table[423], &pinyin_table[167], }, /* ping ao => pin gao */ - { &pinyin_table[424], &pinyin_table[128], &pinyin_table[423], &pinyin_table[168], }, /* ping e => pin ge */ - { &pinyin_table[424], &pinyin_table[129], &pinyin_table[423], &pinyin_table[170], }, /* ping ei => pin gei */ - { &pinyin_table[424], &pinyin_table[130], &pinyin_table[423], &pinyin_table[172], }, /* ping en => pin gen */ - { &pinyin_table[424], &pinyin_table[402], &pinyin_table[423], &pinyin_table[178], }, /* ping ou => pin gou */ - { &pinyin_table[433], &pinyin_table[129], &pinyin_table[430], &pinyin_table[368], }, /* qian ei => qia nei */ - { &pinyin_table[434], &pinyin_table[2], &pinyin_table[433], &pinyin_table[163], }, /* qiang ai => qian gai */ - { &pinyin_table[434], &pinyin_table[4], &pinyin_table[433], &pinyin_table[165], }, /* qiang an => qian gan */ - { &pinyin_table[434], &pinyin_table[5], &pinyin_table[433], &pinyin_table[166], }, /* qiang ang => qian gang */ - { &pinyin_table[434], &pinyin_table[6], &pinyin_table[433], &pinyin_table[167], }, /* qiang ao => qian gao */ - { &pinyin_table[434], &pinyin_table[128], &pinyin_table[433], &pinyin_table[168], }, /* qiang e => qian ge */ - { &pinyin_table[434], &pinyin_table[129], &pinyin_table[433], &pinyin_table[170], }, /* qiang ei => qian gei */ - { &pinyin_table[434], &pinyin_table[130], &pinyin_table[433], &pinyin_table[172], }, /* qiang en => qian gen */ - { &pinyin_table[434], &pinyin_table[402], &pinyin_table[433], &pinyin_table[178], }, /* qiang ou => qian gou */ - { &pinyin_table[436], &pinyin_table[459], &pinyin_table[429], &pinyin_table[131], }, /* qie r => qi er */ - { &pinyin_table[439], &pinyin_table[0], &pinyin_table[429], &pinyin_table[359], }, /* qin a => qi na */ - { &pinyin_table[439], &pinyin_table[5], &pinyin_table[429], &pinyin_table[364], }, /* qin ang => qi nang */ - { &pinyin_table[439], &pinyin_table[6], &pinyin_table[429], &pinyin_table[365], }, /* qin ao => qi nao */ - { &pinyin_table[439], &pinyin_table[128], &pinyin_table[429], &pinyin_table[366], }, /* qin e => qi ne */ - { &pinyin_table[439], &pinyin_table[129], &pinyin_table[429], &pinyin_table[368], }, /* qin ei => qi nei */ - { &pinyin_table[440], &pinyin_table[5], &pinyin_table[439], &pinyin_table[166], }, /* qing ang => qin gang */ - { &pinyin_table[440], &pinyin_table[6], &pinyin_table[439], &pinyin_table[167], }, /* qing ao => qin gao */ - { &pinyin_table[440], &pinyin_table[128], &pinyin_table[439], &pinyin_table[168], }, /* qing e => qin ge */ - { &pinyin_table[440], &pinyin_table[129], &pinyin_table[439], &pinyin_table[170], }, /* qing ei => qin gei */ - { &pinyin_table[440], &pinyin_table[130], &pinyin_table[439], &pinyin_table[172], }, /* qing en => qin gen */ - { &pinyin_table[440], &pinyin_table[402], &pinyin_table[439], &pinyin_table[178], }, /* qing ou => qin gou */ - { &pinyin_table[449], &pinyin_table[0], &pinyin_table[448], &pinyin_table[161], }, /* quang a => quan ga */ - { &pinyin_table[449], &pinyin_table[2], &pinyin_table[448], &pinyin_table[163], }, /* quang ai => quan gai */ - { &pinyin_table[449], &pinyin_table[4], &pinyin_table[448], &pinyin_table[165], }, /* quang an => quan gan */ - { &pinyin_table[449], &pinyin_table[5], &pinyin_table[448], &pinyin_table[166], }, /* quang ang => quan gang */ - { &pinyin_table[449], &pinyin_table[6], &pinyin_table[448], &pinyin_table[167], }, /* quang ao => quan gao */ - { &pinyin_table[449], &pinyin_table[128], &pinyin_table[448], &pinyin_table[168], }, /* quang e => quan ge */ - { &pinyin_table[449], &pinyin_table[129], &pinyin_table[448], &pinyin_table[170], }, /* quang ei => quan gei */ - { &pinyin_table[449], &pinyin_table[130], &pinyin_table[448], &pinyin_table[172], }, /* quang en => quan gen */ - { &pinyin_table[449], &pinyin_table[402], &pinyin_table[448], &pinyin_table[178], }, /* quang ou => quan gou */ - { &pinyin_table[450], &pinyin_table[459], &pinyin_table[447], &pinyin_table[131], }, /* que r => qu er */ - { &pinyin_table[451], &pinyin_table[0], &pinyin_table[450], &pinyin_table[359], }, /* quen a => que na */ - { &pinyin_table[451], &pinyin_table[2], &pinyin_table[450], &pinyin_table[361], }, /* quen ai => que nai */ - { &pinyin_table[451], &pinyin_table[4], &pinyin_table[450], &pinyin_table[363], }, /* quen an => que nan */ - { &pinyin_table[451], &pinyin_table[5], &pinyin_table[450], &pinyin_table[364], }, /* quen ang => que nang */ - { &pinyin_table[451], &pinyin_table[6], &pinyin_table[450], &pinyin_table[365], }, /* quen ao => que nao */ - { &pinyin_table[451], &pinyin_table[128], &pinyin_table[450], &pinyin_table[366], }, /* quen e => que ne */ - { &pinyin_table[451], &pinyin_table[129], &pinyin_table[450], &pinyin_table[368], }, /* quen ei => que nei */ - { &pinyin_table[451], &pinyin_table[130], &pinyin_table[450], &pinyin_table[370], }, /* quen en => que nen */ - { &pinyin_table[451], &pinyin_table[402], &pinyin_table[450], &pinyin_table[391], }, /* quen ou => que nou */ - { &pinyin_table[452], &pinyin_table[0], &pinyin_table[447], &pinyin_table[359], }, /* qun a => qu na */ - { &pinyin_table[452], &pinyin_table[4], &pinyin_table[447], &pinyin_table[363], }, /* qun an => qu nan */ - { &pinyin_table[452], &pinyin_table[5], &pinyin_table[447], &pinyin_table[364], }, /* qun ang => qu nang */ - { &pinyin_table[452], &pinyin_table[6], &pinyin_table[447], &pinyin_table[365], }, /* qun ao => qu nao */ - { &pinyin_table[452], &pinyin_table[128], &pinyin_table[447], &pinyin_table[366], }, /* qun e => qu ne */ - { &pinyin_table[452], &pinyin_table[129], &pinyin_table[447], &pinyin_table[368], }, /* qun ei => qu nei */ - { &pinyin_table[465], &pinyin_table[5], &pinyin_table[464], &pinyin_table[166], }, /* rang ang => ran gang */ - { &pinyin_table[465], &pinyin_table[6], &pinyin_table[464], &pinyin_table[167], }, /* rang ao => ran gao */ - { &pinyin_table[465], &pinyin_table[129], &pinyin_table[464], &pinyin_table[170], }, /* rang ei => ran gei */ - { &pinyin_table[465], &pinyin_table[130], &pinyin_table[464], &pinyin_table[172], }, /* rang en => ran gen */ - { &pinyin_table[471], &pinyin_table[6], &pinyin_table[467], &pinyin_table[365], }, /* ren ao => re nao */ - { &pinyin_table[471], &pinyin_table[128], &pinyin_table[467], &pinyin_table[366], }, /* ren e => re ne */ - { &pinyin_table[471], &pinyin_table[129], &pinyin_table[467], &pinyin_table[368], }, /* ren ei => re nei */ - { &pinyin_table[472], &pinyin_table[0], &pinyin_table[471], &pinyin_table[161], }, /* reng a => ren ga */ - { &pinyin_table[472], &pinyin_table[2], &pinyin_table[471], &pinyin_table[163], }, /* reng ai => ren gai */ - { &pinyin_table[472], &pinyin_table[4], &pinyin_table[471], &pinyin_table[165], }, /* reng an => ren gan */ - { &pinyin_table[472], &pinyin_table[5], &pinyin_table[471], &pinyin_table[166], }, /* reng ang => ren gang */ - { &pinyin_table[472], &pinyin_table[6], &pinyin_table[471], &pinyin_table[167], }, /* reng ao => ren gao */ - { &pinyin_table[472], &pinyin_table[128], &pinyin_table[471], &pinyin_table[168], }, /* reng e => ren ge */ - { &pinyin_table[472], &pinyin_table[129], &pinyin_table[471], &pinyin_table[170], }, /* reng ei => ren gei */ - { &pinyin_table[472], &pinyin_table[130], &pinyin_table[471], &pinyin_table[172], }, /* reng en => ren gen */ - { &pinyin_table[472], &pinyin_table[402], &pinyin_table[471], &pinyin_table[178], }, /* reng ou => ren gou */ - { &pinyin_table[478], &pinyin_table[459], &pinyin_table[473], &pinyin_table[131], }, /* rie r => ri er */ - { &pinyin_table[479], &pinyin_table[0], &pinyin_table[473], &pinyin_table[359], }, /* rin a => ri na */ - { &pinyin_table[479], &pinyin_table[2], &pinyin_table[473], &pinyin_table[361], }, /* rin ai => ri nai */ - { &pinyin_table[479], &pinyin_table[4], &pinyin_table[473], &pinyin_table[363], }, /* rin an => ri nan */ - { &pinyin_table[479], &pinyin_table[5], &pinyin_table[473], &pinyin_table[364], }, /* rin ang => ri nang */ - { &pinyin_table[479], &pinyin_table[6], &pinyin_table[473], &pinyin_table[365], }, /* rin ao => ri nao */ - { &pinyin_table[479], &pinyin_table[128], &pinyin_table[473], &pinyin_table[366], }, /* rin e => ri ne */ - { &pinyin_table[479], &pinyin_table[129], &pinyin_table[473], &pinyin_table[368], }, /* rin ei => ri nei */ - { &pinyin_table[479], &pinyin_table[130], &pinyin_table[473], &pinyin_table[370], }, /* rin en => ri nen */ - { &pinyin_table[479], &pinyin_table[402], &pinyin_table[473], &pinyin_table[391], }, /* rin ou => ri nou */ - { &pinyin_table[491], &pinyin_table[0], &pinyin_table[490], &pinyin_table[161], }, /* ruang a => ruan ga */ - { &pinyin_table[491], &pinyin_table[2], &pinyin_table[490], &pinyin_table[163], }, /* ruang ai => ruan gai */ - { &pinyin_table[491], &pinyin_table[4], &pinyin_table[490], &pinyin_table[165], }, /* ruang an => ruan gan */ - { &pinyin_table[491], &pinyin_table[5], &pinyin_table[490], &pinyin_table[166], }, /* ruang ang => ruan gang */ - { &pinyin_table[491], &pinyin_table[6], &pinyin_table[490], &pinyin_table[167], }, /* ruang ao => ruan gao */ - { &pinyin_table[491], &pinyin_table[128], &pinyin_table[490], &pinyin_table[168], }, /* ruang e => ruan ge */ - { &pinyin_table[491], &pinyin_table[129], &pinyin_table[490], &pinyin_table[170], }, /* ruang ei => ruan gei */ - { &pinyin_table[491], &pinyin_table[130], &pinyin_table[490], &pinyin_table[172], }, /* ruang en => ruan gen */ - { &pinyin_table[491], &pinyin_table[402], &pinyin_table[490], &pinyin_table[178], }, /* ruang ou => ruan gou */ - { &pinyin_table[492], &pinyin_table[459], &pinyin_table[489], &pinyin_table[131], }, /* rue r => ru er */ - { &pinyin_table[496], &pinyin_table[0], &pinyin_table[489], &pinyin_table[359], }, /* run a => ru na */ - { &pinyin_table[496], &pinyin_table[2], &pinyin_table[489], &pinyin_table[361], }, /* run ai => ru nai */ - { &pinyin_table[496], &pinyin_table[4], &pinyin_table[489], &pinyin_table[363], }, /* run an => ru nan */ - { &pinyin_table[496], &pinyin_table[5], &pinyin_table[489], &pinyin_table[364], }, /* run ang => ru nang */ - { &pinyin_table[496], &pinyin_table[6], &pinyin_table[489], &pinyin_table[365], }, /* run ao => ru nao */ - { &pinyin_table[496], &pinyin_table[128], &pinyin_table[489], &pinyin_table[366], }, /* run e => ru ne */ - { &pinyin_table[496], &pinyin_table[129], &pinyin_table[489], &pinyin_table[368], }, /* run ei => ru nei */ - { &pinyin_table[496], &pinyin_table[130], &pinyin_table[489], &pinyin_table[370], }, /* run en => ru nen */ - { &pinyin_table[505], &pinyin_table[0], &pinyin_table[501], &pinyin_table[359], }, /* san a => sa na */ - { &pinyin_table[505], &pinyin_table[129], &pinyin_table[501], &pinyin_table[368], }, /* san ei => sa nei */ - { &pinyin_table[506], &pinyin_table[2], &pinyin_table[505], &pinyin_table[163], }, /* sang ai => san gai */ - { &pinyin_table[506], &pinyin_table[4], &pinyin_table[505], &pinyin_table[165], }, /* sang an => san gan */ - { &pinyin_table[506], &pinyin_table[5], &pinyin_table[505], &pinyin_table[166], }, /* sang ang => san gang */ - { &pinyin_table[506], &pinyin_table[6], &pinyin_table[505], &pinyin_table[167], }, /* sang ao => san gao */ - { &pinyin_table[506], &pinyin_table[128], &pinyin_table[505], &pinyin_table[168], }, /* sang e => san ge */ - { &pinyin_table[506], &pinyin_table[129], &pinyin_table[505], &pinyin_table[170], }, /* sang ei => san gei */ - { &pinyin_table[506], &pinyin_table[130], &pinyin_table[505], &pinyin_table[172], }, /* sang en => san gen */ - { &pinyin_table[512], &pinyin_table[0], &pinyin_table[508], &pinyin_table[359], }, /* sen a => se na */ - { &pinyin_table[512], &pinyin_table[2], &pinyin_table[508], &pinyin_table[361], }, /* sen ai => se nai */ - { &pinyin_table[512], &pinyin_table[4], &pinyin_table[508], &pinyin_table[363], }, /* sen an => se nan */ - { &pinyin_table[512], &pinyin_table[5], &pinyin_table[508], &pinyin_table[364], }, /* sen ang => se nang */ - { &pinyin_table[512], &pinyin_table[6], &pinyin_table[508], &pinyin_table[365], }, /* sen ao => se nao */ - { &pinyin_table[512], &pinyin_table[128], &pinyin_table[508], &pinyin_table[366], }, /* sen e => se ne */ - { &pinyin_table[512], &pinyin_table[129], &pinyin_table[508], &pinyin_table[368], }, /* sen ei => se nei */ - { &pinyin_table[513], &pinyin_table[2], &pinyin_table[512], &pinyin_table[163], }, /* seng ai => sen gai */ - { &pinyin_table[513], &pinyin_table[4], &pinyin_table[512], &pinyin_table[165], }, /* seng an => sen gan */ - { &pinyin_table[513], &pinyin_table[5], &pinyin_table[512], &pinyin_table[166], }, /* seng ang => sen gang */ - { &pinyin_table[513], &pinyin_table[6], &pinyin_table[512], &pinyin_table[167], }, /* seng ao => sen gao */ - { &pinyin_table[513], &pinyin_table[128], &pinyin_table[512], &pinyin_table[168], }, /* seng e => sen ge */ - { &pinyin_table[513], &pinyin_table[129], &pinyin_table[512], &pinyin_table[170], }, /* seng ei => sen gei */ - { &pinyin_table[513], &pinyin_table[130], &pinyin_table[512], &pinyin_table[172], }, /* seng en => sen gen */ - { &pinyin_table[513], &pinyin_table[402], &pinyin_table[512], &pinyin_table[178], }, /* seng ou => sen gou */ - { &pinyin_table[519], &pinyin_table[0], &pinyin_table[515], &pinyin_table[359], }, /* shan a => sha na */ - { &pinyin_table[519], &pinyin_table[4], &pinyin_table[515], &pinyin_table[363], }, /* shan an => sha nan */ - { &pinyin_table[519], &pinyin_table[129], &pinyin_table[515], &pinyin_table[368], }, /* shan ei => sha nei */ - { &pinyin_table[520], &pinyin_table[2], &pinyin_table[519], &pinyin_table[163], }, /* shang ai => shan gai */ - { &pinyin_table[520], &pinyin_table[5], &pinyin_table[519], &pinyin_table[166], }, /* shang ang => shan gang */ - { &pinyin_table[520], &pinyin_table[6], &pinyin_table[519], &pinyin_table[167], }, /* shang ao => shan gao */ - { &pinyin_table[520], &pinyin_table[128], &pinyin_table[519], &pinyin_table[168], }, /* shang e => shan ge */ - { &pinyin_table[520], &pinyin_table[129], &pinyin_table[519], &pinyin_table[170], }, /* shang ei => shan gei */ - { &pinyin_table[520], &pinyin_table[130], &pinyin_table[519], &pinyin_table[172], }, /* shang en => shan gen */ - { &pinyin_table[520], &pinyin_table[402], &pinyin_table[519], &pinyin_table[178], }, /* shang ou => shan gou */ - { &pinyin_table[526], &pinyin_table[129], &pinyin_table[522], &pinyin_table[368], }, /* shen ei => she nei */ - { &pinyin_table[527], &pinyin_table[4], &pinyin_table[526], &pinyin_table[165], }, /* sheng an => shen gan */ - { &pinyin_table[527], &pinyin_table[5], &pinyin_table[526], &pinyin_table[166], }, /* sheng ang => shen gang */ - { &pinyin_table[527], &pinyin_table[6], &pinyin_table[526], &pinyin_table[167], }, /* sheng ao => shen gao */ - { &pinyin_table[527], &pinyin_table[128], &pinyin_table[526], &pinyin_table[168], }, /* sheng e => shen ge */ - { &pinyin_table[527], &pinyin_table[129], &pinyin_table[526], &pinyin_table[170], }, /* sheng ei => shen gei */ - { &pinyin_table[527], &pinyin_table[402], &pinyin_table[526], &pinyin_table[178], }, /* sheng ou => shen gou */ - { &pinyin_table[537], &pinyin_table[0], &pinyin_table[533], &pinyin_table[359], }, /* shuan a => shua na */ - { &pinyin_table[537], &pinyin_table[2], &pinyin_table[533], &pinyin_table[361], }, /* shuan ai => shua nai */ - { &pinyin_table[537], &pinyin_table[4], &pinyin_table[533], &pinyin_table[363], }, /* shuan an => shua nan */ - { &pinyin_table[537], &pinyin_table[5], &pinyin_table[533], &pinyin_table[364], }, /* shuan ang => shua nang */ - { &pinyin_table[537], &pinyin_table[6], &pinyin_table[533], &pinyin_table[365], }, /* shuan ao => shua nao */ - { &pinyin_table[537], &pinyin_table[128], &pinyin_table[533], &pinyin_table[366], }, /* shuan e => shua ne */ - { &pinyin_table[537], &pinyin_table[129], &pinyin_table[533], &pinyin_table[368], }, /* shuan ei => shua nei */ - { &pinyin_table[538], &pinyin_table[129], &pinyin_table[537], &pinyin_table[170], }, /* shuang ei => shuan gei */ - { &pinyin_table[542], &pinyin_table[4], &pinyin_table[532], &pinyin_table[363], }, /* shun an => shu nan */ - { &pinyin_table[542], &pinyin_table[5], &pinyin_table[532], &pinyin_table[364], }, /* shun ang => shu nang */ - { &pinyin_table[542], &pinyin_table[6], &pinyin_table[532], &pinyin_table[365], }, /* shun ao => shu nao */ - { &pinyin_table[542], &pinyin_table[128], &pinyin_table[532], &pinyin_table[366], }, /* shun e => shu ne */ - { &pinyin_table[542], &pinyin_table[129], &pinyin_table[532], &pinyin_table[368], }, /* shun ei => shu nei */ - { &pinyin_table[554], &pinyin_table[0], &pinyin_table[553], &pinyin_table[161], }, /* suang a => suan ga */ - { &pinyin_table[554], &pinyin_table[2], &pinyin_table[553], &pinyin_table[163], }, /* suang ai => suan gai */ - { &pinyin_table[554], &pinyin_table[4], &pinyin_table[553], &pinyin_table[165], }, /* suang an => suan gan */ - { &pinyin_table[554], &pinyin_table[5], &pinyin_table[553], &pinyin_table[166], }, /* suang ang => suan gang */ - { &pinyin_table[554], &pinyin_table[6], &pinyin_table[553], &pinyin_table[167], }, /* suang ao => suan gao */ - { &pinyin_table[554], &pinyin_table[128], &pinyin_table[553], &pinyin_table[168], }, /* suang e => suan ge */ - { &pinyin_table[554], &pinyin_table[129], &pinyin_table[553], &pinyin_table[170], }, /* suang ei => suan gei */ - { &pinyin_table[554], &pinyin_table[130], &pinyin_table[553], &pinyin_table[172], }, /* suang en => suan gen */ - { &pinyin_table[554], &pinyin_table[402], &pinyin_table[553], &pinyin_table[178], }, /* suang ou => suan gou */ - { &pinyin_table[558], &pinyin_table[0], &pinyin_table[550], &pinyin_table[359], }, /* sun a => su na */ - { &pinyin_table[558], &pinyin_table[4], &pinyin_table[550], &pinyin_table[363], }, /* sun an => su nan */ - { &pinyin_table[558], &pinyin_table[5], &pinyin_table[550], &pinyin_table[364], }, /* sun ang => su nang */ - { &pinyin_table[558], &pinyin_table[6], &pinyin_table[550], &pinyin_table[365], }, /* sun ao => su nao */ - { &pinyin_table[558], &pinyin_table[128], &pinyin_table[550], &pinyin_table[366], }, /* sun e => su ne */ - { &pinyin_table[558], &pinyin_table[129], &pinyin_table[550], &pinyin_table[368], }, /* sun ei => su nei */ - { &pinyin_table[565], &pinyin_table[0], &pinyin_table[561], &pinyin_table[359], }, /* tan a => ta na */ - { &pinyin_table[565], &pinyin_table[5], &pinyin_table[561], &pinyin_table[364], }, /* tan ang => ta nang */ - { &pinyin_table[565], &pinyin_table[6], &pinyin_table[561], &pinyin_table[365], }, /* tan ao => ta nao */ - { &pinyin_table[565], &pinyin_table[128], &pinyin_table[561], &pinyin_table[366], }, /* tan e => ta ne */ - { &pinyin_table[565], &pinyin_table[129], &pinyin_table[561], &pinyin_table[368], }, /* tan ei => ta nei */ - { &pinyin_table[566], &pinyin_table[2], &pinyin_table[565], &pinyin_table[163], }, /* tang ai => tan gai */ - { &pinyin_table[566], &pinyin_table[4], &pinyin_table[565], &pinyin_table[165], }, /* tang an => tan gan */ - { &pinyin_table[566], &pinyin_table[5], &pinyin_table[565], &pinyin_table[166], }, /* tang ang => tan gang */ - { &pinyin_table[566], &pinyin_table[128], &pinyin_table[565], &pinyin_table[168], }, /* tang e => tan ge */ - { &pinyin_table[566], &pinyin_table[129], &pinyin_table[565], &pinyin_table[170], }, /* tang ei => tan gei */ - { &pinyin_table[566], &pinyin_table[402], &pinyin_table[565], &pinyin_table[178], }, /* tang ou => tan gou */ - { &pinyin_table[571], &pinyin_table[0], &pinyin_table[568], &pinyin_table[359], }, /* ten a => te na */ - { &pinyin_table[571], &pinyin_table[2], &pinyin_table[568], &pinyin_table[361], }, /* ten ai => te nai */ - { &pinyin_table[571], &pinyin_table[4], &pinyin_table[568], &pinyin_table[363], }, /* ten an => te nan */ - { &pinyin_table[571], &pinyin_table[5], &pinyin_table[568], &pinyin_table[364], }, /* ten ang => te nang */ - { &pinyin_table[571], &pinyin_table[6], &pinyin_table[568], &pinyin_table[365], }, /* ten ao => te nao */ - { &pinyin_table[571], &pinyin_table[128], &pinyin_table[568], &pinyin_table[366], }, /* ten e => te ne */ - { &pinyin_table[571], &pinyin_table[129], &pinyin_table[568], &pinyin_table[368], }, /* ten ei => te nei */ - { &pinyin_table[571], &pinyin_table[130], &pinyin_table[568], &pinyin_table[370], }, /* ten en => te nen */ - { &pinyin_table[571], &pinyin_table[402], &pinyin_table[568], &pinyin_table[391], }, /* ten ou => te nou */ - { &pinyin_table[575], &pinyin_table[0], &pinyin_table[574], &pinyin_table[161], }, /* tiang a => tian ga */ - { &pinyin_table[575], &pinyin_table[2], &pinyin_table[574], &pinyin_table[163], }, /* tiang ai => tian gai */ - { &pinyin_table[575], &pinyin_table[4], &pinyin_table[574], &pinyin_table[165], }, /* tiang an => tian gan */ - { &pinyin_table[575], &pinyin_table[5], &pinyin_table[574], &pinyin_table[166], }, /* tiang ang => tian gang */ - { &pinyin_table[575], &pinyin_table[6], &pinyin_table[574], &pinyin_table[167], }, /* tiang ao => tian gao */ - { &pinyin_table[575], &pinyin_table[128], &pinyin_table[574], &pinyin_table[168], }, /* tiang e => tian ge */ - { &pinyin_table[575], &pinyin_table[129], &pinyin_table[574], &pinyin_table[170], }, /* tiang ei => tian gei */ - { &pinyin_table[575], &pinyin_table[130], &pinyin_table[574], &pinyin_table[172], }, /* tiang en => tian gen */ - { &pinyin_table[575], &pinyin_table[402], &pinyin_table[574], &pinyin_table[178], }, /* tiang ou => tian gou */ - { &pinyin_table[577], &pinyin_table[459], &pinyin_table[573], &pinyin_table[131], }, /* tie r => ti er */ - { &pinyin_table[580], &pinyin_table[0], &pinyin_table[573], &pinyin_table[359], }, /* tin a => ti na */ - { &pinyin_table[580], &pinyin_table[2], &pinyin_table[573], &pinyin_table[361], }, /* tin ai => ti nai */ - { &pinyin_table[580], &pinyin_table[4], &pinyin_table[573], &pinyin_table[363], }, /* tin an => ti nan */ - { &pinyin_table[580], &pinyin_table[5], &pinyin_table[573], &pinyin_table[364], }, /* tin ang => ti nang */ - { &pinyin_table[580], &pinyin_table[6], &pinyin_table[573], &pinyin_table[365], }, /* tin ao => ti nao */ - { &pinyin_table[580], &pinyin_table[128], &pinyin_table[573], &pinyin_table[366], }, /* tin e => ti ne */ - { &pinyin_table[580], &pinyin_table[129], &pinyin_table[573], &pinyin_table[368], }, /* tin ei => ti nei */ - { &pinyin_table[580], &pinyin_table[130], &pinyin_table[573], &pinyin_table[370], }, /* tin en => ti nen */ - { &pinyin_table[580], &pinyin_table[402], &pinyin_table[573], &pinyin_table[391], }, /* tin ou => ti nou */ - { &pinyin_table[589], &pinyin_table[0], &pinyin_table[588], &pinyin_table[161], }, /* tuang a => tuan ga */ - { &pinyin_table[589], &pinyin_table[2], &pinyin_table[588], &pinyin_table[163], }, /* tuang ai => tuan gai */ - { &pinyin_table[589], &pinyin_table[4], &pinyin_table[588], &pinyin_table[165], }, /* tuang an => tuan gan */ - { &pinyin_table[589], &pinyin_table[5], &pinyin_table[588], &pinyin_table[166], }, /* tuang ang => tuan gang */ - { &pinyin_table[589], &pinyin_table[6], &pinyin_table[588], &pinyin_table[167], }, /* tuang ao => tuan gao */ - { &pinyin_table[589], &pinyin_table[128], &pinyin_table[588], &pinyin_table[168], }, /* tuang e => tuan ge */ - { &pinyin_table[589], &pinyin_table[129], &pinyin_table[588], &pinyin_table[170], }, /* tuang ei => tuan gei */ - { &pinyin_table[589], &pinyin_table[130], &pinyin_table[588], &pinyin_table[172], }, /* tuang en => tuan gen */ - { &pinyin_table[589], &pinyin_table[402], &pinyin_table[588], &pinyin_table[178], }, /* tuang ou => tuan gou */ - { &pinyin_table[593], &pinyin_table[0], &pinyin_table[587], &pinyin_table[359], }, /* tun a => tu na */ - { &pinyin_table[593], &pinyin_table[2], &pinyin_table[587], &pinyin_table[361], }, /* tun ai => tu nai */ - { &pinyin_table[593], &pinyin_table[4], &pinyin_table[587], &pinyin_table[363], }, /* tun an => tu nan */ - { &pinyin_table[593], &pinyin_table[5], &pinyin_table[587], &pinyin_table[364], }, /* tun ang => tu nang */ - { &pinyin_table[593], &pinyin_table[6], &pinyin_table[587], &pinyin_table[365], }, /* tun ao => tu nao */ - { &pinyin_table[593], &pinyin_table[128], &pinyin_table[587], &pinyin_table[366], }, /* tun e => tu ne */ - { &pinyin_table[593], &pinyin_table[129], &pinyin_table[587], &pinyin_table[368], }, /* tun ei => tu nei */ - { &pinyin_table[593], &pinyin_table[130], &pinyin_table[587], &pinyin_table[370], }, /* tun en => tu nen */ - { &pinyin_table[600], &pinyin_table[129], &pinyin_table[596], &pinyin_table[368], }, /* wan ei => wa nei */ - { &pinyin_table[601], &pinyin_table[5], &pinyin_table[600], &pinyin_table[166], }, /* wang ang => wan gang */ - { &pinyin_table[601], &pinyin_table[6], &pinyin_table[600], &pinyin_table[167], }, /* wang ao => wan gao */ - { &pinyin_table[601], &pinyin_table[128], &pinyin_table[600], &pinyin_table[168], }, /* wang e => wan ge */ - { &pinyin_table[601], &pinyin_table[129], &pinyin_table[600], &pinyin_table[170], }, /* wang ei => wan gei */ - { &pinyin_table[601], &pinyin_table[402], &pinyin_table[600], &pinyin_table[178], }, /* wang ou => wan gou */ - { &pinyin_table[606], &pinyin_table[0], &pinyin_table[605], &pinyin_table[161], }, /* weng a => wen ga */ - { &pinyin_table[606], &pinyin_table[2], &pinyin_table[605], &pinyin_table[163], }, /* weng ai => wen gai */ - { &pinyin_table[606], &pinyin_table[4], &pinyin_table[605], &pinyin_table[165], }, /* weng an => wen gan */ - { &pinyin_table[606], &pinyin_table[5], &pinyin_table[605], &pinyin_table[166], }, /* weng ang => wen gang */ - { &pinyin_table[606], &pinyin_table[6], &pinyin_table[605], &pinyin_table[167], }, /* weng ao => wen gao */ - { &pinyin_table[606], &pinyin_table[128], &pinyin_table[605], &pinyin_table[168], }, /* weng e => wen ge */ - { &pinyin_table[606], &pinyin_table[129], &pinyin_table[605], &pinyin_table[170], }, /* weng ei => wen gei */ - { &pinyin_table[606], &pinyin_table[130], &pinyin_table[605], &pinyin_table[172], }, /* weng en => wen gen */ - { &pinyin_table[606], &pinyin_table[402], &pinyin_table[605], &pinyin_table[178], }, /* weng ou => wen gou */ - { &pinyin_table[614], &pinyin_table[0], &pinyin_table[611], &pinyin_table[359], }, /* xian a => xia na */ - { &pinyin_table[614], &pinyin_table[5], &pinyin_table[611], &pinyin_table[364], }, /* xian ang => xia nang */ - { &pinyin_table[614], &pinyin_table[6], &pinyin_table[611], &pinyin_table[365], }, /* xian ao => xia nao */ - { &pinyin_table[614], &pinyin_table[129], &pinyin_table[611], &pinyin_table[368], }, /* xian ei => xia nei */ - { &pinyin_table[615], &pinyin_table[5], &pinyin_table[614], &pinyin_table[166], }, /* xiang ang => xian gang */ - { &pinyin_table[615], &pinyin_table[6], &pinyin_table[614], &pinyin_table[167], }, /* xiang ao => xian gao */ - { &pinyin_table[615], &pinyin_table[129], &pinyin_table[614], &pinyin_table[170], }, /* xiang ei => xian gei */ - { &pinyin_table[615], &pinyin_table[130], &pinyin_table[614], &pinyin_table[172], }, /* xiang en => xian gen */ - { &pinyin_table[615], &pinyin_table[402], &pinyin_table[614], &pinyin_table[178], }, /* xiang ou => xian gou */ - { &pinyin_table[617], &pinyin_table[459], &pinyin_table[610], &pinyin_table[131], }, /* xie r => xi er */ - { &pinyin_table[620], &pinyin_table[0], &pinyin_table[610], &pinyin_table[359], }, /* xin a => xi na */ - { &pinyin_table[620], &pinyin_table[4], &pinyin_table[610], &pinyin_table[363], }, /* xin an => xi nan */ - { &pinyin_table[620], &pinyin_table[128], &pinyin_table[610], &pinyin_table[366], }, /* xin e => xi ne */ - { &pinyin_table[620], &pinyin_table[129], &pinyin_table[610], &pinyin_table[368], }, /* xin ei => xi nei */ - { &pinyin_table[620], &pinyin_table[130], &pinyin_table[610], &pinyin_table[370], }, /* xin en => xi nen */ - { &pinyin_table[621], &pinyin_table[4], &pinyin_table[620], &pinyin_table[165], }, /* xing an => xin gan */ - { &pinyin_table[621], &pinyin_table[5], &pinyin_table[620], &pinyin_table[166], }, /* xing ang => xin gang */ - { &pinyin_table[621], &pinyin_table[6], &pinyin_table[620], &pinyin_table[167], }, /* xing ao => xin gao */ - { &pinyin_table[621], &pinyin_table[128], &pinyin_table[620], &pinyin_table[168], }, /* xing e => xin ge */ - { &pinyin_table[621], &pinyin_table[129], &pinyin_table[620], &pinyin_table[170], }, /* xing ei => xin gei */ - { &pinyin_table[621], &pinyin_table[130], &pinyin_table[620], &pinyin_table[172], }, /* xing en => xin gen */ - { &pinyin_table[621], &pinyin_table[402], &pinyin_table[620], &pinyin_table[178], }, /* xing ou => xin gou */ - { &pinyin_table[630], &pinyin_table[0], &pinyin_table[629], &pinyin_table[161], }, /* xuang a => xuan ga */ - { &pinyin_table[630], &pinyin_table[2], &pinyin_table[629], &pinyin_table[163], }, /* xuang ai => xuan gai */ - { &pinyin_table[630], &pinyin_table[4], &pinyin_table[629], &pinyin_table[165], }, /* xuang an => xuan gan */ - { &pinyin_table[630], &pinyin_table[5], &pinyin_table[629], &pinyin_table[166], }, /* xuang ang => xuan gang */ - { &pinyin_table[630], &pinyin_table[6], &pinyin_table[629], &pinyin_table[167], }, /* xuang ao => xuan gao */ - { &pinyin_table[630], &pinyin_table[128], &pinyin_table[629], &pinyin_table[168], }, /* xuang e => xuan ge */ - { &pinyin_table[630], &pinyin_table[129], &pinyin_table[629], &pinyin_table[170], }, /* xuang ei => xuan gei */ - { &pinyin_table[630], &pinyin_table[130], &pinyin_table[629], &pinyin_table[172], }, /* xuang en => xuan gen */ - { &pinyin_table[630], &pinyin_table[402], &pinyin_table[629], &pinyin_table[178], }, /* xuang ou => xuan gou */ - { &pinyin_table[631], &pinyin_table[459], &pinyin_table[628], &pinyin_table[131], }, /* xue r => xu er */ - { &pinyin_table[632], &pinyin_table[0], &pinyin_table[631], &pinyin_table[359], }, /* xuen a => xue na */ - { &pinyin_table[632], &pinyin_table[2], &pinyin_table[631], &pinyin_table[361], }, /* xuen ai => xue nai */ - { &pinyin_table[632], &pinyin_table[4], &pinyin_table[631], &pinyin_table[363], }, /* xuen an => xue nan */ - { &pinyin_table[632], &pinyin_table[5], &pinyin_table[631], &pinyin_table[364], }, /* xuen ang => xue nang */ - { &pinyin_table[632], &pinyin_table[6], &pinyin_table[631], &pinyin_table[365], }, /* xuen ao => xue nao */ - { &pinyin_table[632], &pinyin_table[128], &pinyin_table[631], &pinyin_table[366], }, /* xuen e => xue ne */ - { &pinyin_table[632], &pinyin_table[129], &pinyin_table[631], &pinyin_table[368], }, /* xuen ei => xue nei */ - { &pinyin_table[632], &pinyin_table[130], &pinyin_table[631], &pinyin_table[370], }, /* xuen en => xue nen */ - { &pinyin_table[632], &pinyin_table[402], &pinyin_table[631], &pinyin_table[391], }, /* xuen ou => xue nou */ - { &pinyin_table[633], &pinyin_table[5], &pinyin_table[628], &pinyin_table[364], }, /* xun ang => xu nang */ - { &pinyin_table[633], &pinyin_table[6], &pinyin_table[628], &pinyin_table[365], }, /* xun ao => xu nao */ - { &pinyin_table[633], &pinyin_table[128], &pinyin_table[628], &pinyin_table[366], }, /* xun e => xu ne */ - { &pinyin_table[633], &pinyin_table[129], &pinyin_table[628], &pinyin_table[368], }, /* xun ei => xu nei */ - { &pinyin_table[644], &pinyin_table[0], &pinyin_table[641], &pinyin_table[359], }, /* yan a => ya na */ - { &pinyin_table[644], &pinyin_table[128], &pinyin_table[641], &pinyin_table[366], }, /* yan e => ya ne */ - { &pinyin_table[644], &pinyin_table[129], &pinyin_table[641], &pinyin_table[368], }, /* yan ei => ya nei */ - { &pinyin_table[645], &pinyin_table[2], &pinyin_table[644], &pinyin_table[163], }, /* yang ai => yan gai */ - { &pinyin_table[645], &pinyin_table[4], &pinyin_table[644], &pinyin_table[165], }, /* yang an => yan gan */ - { &pinyin_table[645], &pinyin_table[5], &pinyin_table[644], &pinyin_table[166], }, /* yang ang => yan gang */ - { &pinyin_table[645], &pinyin_table[6], &pinyin_table[644], &pinyin_table[167], }, /* yang ao => yan gao */ - { &pinyin_table[645], &pinyin_table[128], &pinyin_table[644], &pinyin_table[168], }, /* yang e => yan ge */ - { &pinyin_table[645], &pinyin_table[129], &pinyin_table[644], &pinyin_table[170], }, /* yang ei => yan gei */ - { &pinyin_table[645], &pinyin_table[402], &pinyin_table[644], &pinyin_table[178], }, /* yang ou => yan gou */ - { &pinyin_table[651], &pinyin_table[0], &pinyin_table[648], &pinyin_table[359], }, /* yin a => yi na */ - { &pinyin_table[651], &pinyin_table[2], &pinyin_table[648], &pinyin_table[361], }, /* yin ai => yi nai */ - { &pinyin_table[651], &pinyin_table[4], &pinyin_table[648], &pinyin_table[363], }, /* yin an => yi nan */ - { &pinyin_table[651], &pinyin_table[5], &pinyin_table[648], &pinyin_table[364], }, /* yin ang => yi nang */ - { &pinyin_table[651], &pinyin_table[6], &pinyin_table[648], &pinyin_table[365], }, /* yin ao => yi nao */ - { &pinyin_table[651], &pinyin_table[129], &pinyin_table[648], &pinyin_table[368], }, /* yin ei => yi nei */ - { &pinyin_table[652], &pinyin_table[2], &pinyin_table[651], &pinyin_table[163], }, /* ying ai => yin gai */ - { &pinyin_table[652], &pinyin_table[5], &pinyin_table[651], &pinyin_table[166], }, /* ying ang => yin gang */ - { &pinyin_table[652], &pinyin_table[6], &pinyin_table[651], &pinyin_table[167], }, /* ying ao => yin gao */ - { &pinyin_table[652], &pinyin_table[129], &pinyin_table[651], &pinyin_table[170], }, /* ying ei => yin gei */ - { &pinyin_table[652], &pinyin_table[130], &pinyin_table[651], &pinyin_table[172], }, /* ying en => yin gen */ - { &pinyin_table[652], &pinyin_table[402], &pinyin_table[651], &pinyin_table[178], }, /* ying ou => yin gou */ - { &pinyin_table[656], &pinyin_table[0], &pinyin_table[653], &pinyin_table[359], }, /* yon a => yo na */ - { &pinyin_table[656], &pinyin_table[2], &pinyin_table[653], &pinyin_table[361], }, /* yon ai => yo nai */ - { &pinyin_table[656], &pinyin_table[4], &pinyin_table[653], &pinyin_table[363], }, /* yon an => yo nan */ - { &pinyin_table[656], &pinyin_table[5], &pinyin_table[653], &pinyin_table[364], }, /* yon ang => yo nang */ - { &pinyin_table[656], &pinyin_table[6], &pinyin_table[653], &pinyin_table[365], }, /* yon ao => yo nao */ - { &pinyin_table[656], &pinyin_table[128], &pinyin_table[653], &pinyin_table[366], }, /* yon e => yo ne */ - { &pinyin_table[656], &pinyin_table[129], &pinyin_table[653], &pinyin_table[368], }, /* yon ei => yo nei */ - { &pinyin_table[656], &pinyin_table[130], &pinyin_table[653], &pinyin_table[370], }, /* yon en => yo nen */ - { &pinyin_table[656], &pinyin_table[402], &pinyin_table[653], &pinyin_table[391], }, /* yon ou => yo nou */ - { &pinyin_table[661], &pinyin_table[0], &pinyin_table[660], &pinyin_table[161], }, /* yuang a => yuan ga */ - { &pinyin_table[661], &pinyin_table[2], &pinyin_table[660], &pinyin_table[163], }, /* yuang ai => yuan gai */ - { &pinyin_table[661], &pinyin_table[4], &pinyin_table[660], &pinyin_table[165], }, /* yuang an => yuan gan */ - { &pinyin_table[661], &pinyin_table[5], &pinyin_table[660], &pinyin_table[166], }, /* yuang ang => yuan gang */ - { &pinyin_table[661], &pinyin_table[6], &pinyin_table[660], &pinyin_table[167], }, /* yuang ao => yuan gao */ - { &pinyin_table[661], &pinyin_table[128], &pinyin_table[660], &pinyin_table[168], }, /* yuang e => yuan ge */ - { &pinyin_table[661], &pinyin_table[129], &pinyin_table[660], &pinyin_table[170], }, /* yuang ei => yuan gei */ - { &pinyin_table[661], &pinyin_table[130], &pinyin_table[660], &pinyin_table[172], }, /* yuang en => yuan gen */ - { &pinyin_table[661], &pinyin_table[402], &pinyin_table[660], &pinyin_table[178], }, /* yuang ou => yuan gou */ - { &pinyin_table[662], &pinyin_table[459], &pinyin_table[659], &pinyin_table[131], }, /* yue r => yu er */ - { &pinyin_table[663], &pinyin_table[0], &pinyin_table[662], &pinyin_table[359], }, /* yuen a => yue na */ - { &pinyin_table[663], &pinyin_table[2], &pinyin_table[662], &pinyin_table[361], }, /* yuen ai => yue nai */ - { &pinyin_table[663], &pinyin_table[4], &pinyin_table[662], &pinyin_table[363], }, /* yuen an => yue nan */ - { &pinyin_table[663], &pinyin_table[5], &pinyin_table[662], &pinyin_table[364], }, /* yuen ang => yue nang */ - { &pinyin_table[663], &pinyin_table[6], &pinyin_table[662], &pinyin_table[365], }, /* yuen ao => yue nao */ - { &pinyin_table[663], &pinyin_table[128], &pinyin_table[662], &pinyin_table[366], }, /* yuen e => yue ne */ - { &pinyin_table[663], &pinyin_table[129], &pinyin_table[662], &pinyin_table[368], }, /* yuen ei => yue nei */ - { &pinyin_table[663], &pinyin_table[130], &pinyin_table[662], &pinyin_table[370], }, /* yuen en => yue nen */ - { &pinyin_table[663], &pinyin_table[402], &pinyin_table[662], &pinyin_table[391], }, /* yuen ou => yue nou */ - { &pinyin_table[664], &pinyin_table[0], &pinyin_table[659], &pinyin_table[359], }, /* yun a => yu na */ - { &pinyin_table[664], &pinyin_table[2], &pinyin_table[659], &pinyin_table[361], }, /* yun ai => yu nai */ - { &pinyin_table[664], &pinyin_table[4], &pinyin_table[659], &pinyin_table[363], }, /* yun an => yu nan */ - { &pinyin_table[664], &pinyin_table[5], &pinyin_table[659], &pinyin_table[364], }, /* yun ang => yu nang */ - { &pinyin_table[664], &pinyin_table[6], &pinyin_table[659], &pinyin_table[365], }, /* yun ao => yu nao */ - { &pinyin_table[664], &pinyin_table[128], &pinyin_table[659], &pinyin_table[366], }, /* yun e => yu ne */ - { &pinyin_table[664], &pinyin_table[129], &pinyin_table[659], &pinyin_table[368], }, /* yun ei => yu nei */ - { &pinyin_table[676], &pinyin_table[0], &pinyin_table[672], &pinyin_table[359], }, /* zan a => za na */ - { &pinyin_table[676], &pinyin_table[4], &pinyin_table[672], &pinyin_table[363], }, /* zan an => za nan */ - { &pinyin_table[676], &pinyin_table[5], &pinyin_table[672], &pinyin_table[364], }, /* zan ang => za nang */ - { &pinyin_table[676], &pinyin_table[6], &pinyin_table[672], &pinyin_table[365], }, /* zan ao => za nao */ - { &pinyin_table[676], &pinyin_table[128], &pinyin_table[672], &pinyin_table[366], }, /* zan e => za ne */ - { &pinyin_table[676], &pinyin_table[129], &pinyin_table[672], &pinyin_table[368], }, /* zan ei => za nei */ - { &pinyin_table[677], &pinyin_table[4], &pinyin_table[676], &pinyin_table[165], }, /* zang an => zan gan */ - { &pinyin_table[677], &pinyin_table[5], &pinyin_table[676], &pinyin_table[166], }, /* zang ang => zan gang */ - { &pinyin_table[677], &pinyin_table[6], &pinyin_table[676], &pinyin_table[167], }, /* zang ao => zan gao */ - { &pinyin_table[677], &pinyin_table[128], &pinyin_table[676], &pinyin_table[168], }, /* zang e => zan ge */ - { &pinyin_table[677], &pinyin_table[129], &pinyin_table[676], &pinyin_table[170], }, /* zang ei => zan gei */ - { &pinyin_table[677], &pinyin_table[130], &pinyin_table[676], &pinyin_table[172], }, /* zang en => zan gen */ - { &pinyin_table[677], &pinyin_table[402], &pinyin_table[676], &pinyin_table[178], }, /* zang ou => zan gou */ - { &pinyin_table[683], &pinyin_table[0], &pinyin_table[679], &pinyin_table[359], }, /* zen a => ze na */ - { &pinyin_table[683], &pinyin_table[4], &pinyin_table[679], &pinyin_table[363], }, /* zen an => ze nan */ - { &pinyin_table[683], &pinyin_table[6], &pinyin_table[679], &pinyin_table[365], }, /* zen ao => ze nao */ - { &pinyin_table[683], &pinyin_table[128], &pinyin_table[679], &pinyin_table[366], }, /* zen e => ze ne */ - { &pinyin_table[683], &pinyin_table[129], &pinyin_table[679], &pinyin_table[368], }, /* zen ei => ze nei */ - { &pinyin_table[684], &pinyin_table[2], &pinyin_table[683], &pinyin_table[163], }, /* zeng ai => zen gai */ - { &pinyin_table[684], &pinyin_table[4], &pinyin_table[683], &pinyin_table[165], }, /* zeng an => zen gan */ - { &pinyin_table[684], &pinyin_table[5], &pinyin_table[683], &pinyin_table[166], }, /* zeng ang => zen gang */ - { &pinyin_table[684], &pinyin_table[6], &pinyin_table[683], &pinyin_table[167], }, /* zeng ao => zen gao */ - { &pinyin_table[684], &pinyin_table[129], &pinyin_table[683], &pinyin_table[170], }, /* zeng ei => zen gei */ - { &pinyin_table[684], &pinyin_table[130], &pinyin_table[683], &pinyin_table[172], }, /* zeng en => zen gen */ - { &pinyin_table[684], &pinyin_table[402], &pinyin_table[683], &pinyin_table[178], }, /* zeng ou => zen gou */ - { &pinyin_table[690], &pinyin_table[129], &pinyin_table[686], &pinyin_table[368], }, /* zhan ei => zha nei */ - { &pinyin_table[691], &pinyin_table[4], &pinyin_table[690], &pinyin_table[165], }, /* zhang an => zhan gan */ - { &pinyin_table[691], &pinyin_table[5], &pinyin_table[690], &pinyin_table[166], }, /* zhang ang => zhan gang */ - { &pinyin_table[691], &pinyin_table[6], &pinyin_table[690], &pinyin_table[167], }, /* zhang ao => zhan gao */ - { &pinyin_table[691], &pinyin_table[128], &pinyin_table[690], &pinyin_table[168], }, /* zhang e => zhan ge */ - { &pinyin_table[691], &pinyin_table[129], &pinyin_table[690], &pinyin_table[170], }, /* zhang ei => zhan gei */ - { &pinyin_table[691], &pinyin_table[130], &pinyin_table[690], &pinyin_table[172], }, /* zhang en => zhan gen */ - { &pinyin_table[691], &pinyin_table[402], &pinyin_table[690], &pinyin_table[178], }, /* zhang ou => zhan gou */ - { &pinyin_table[697], &pinyin_table[0], &pinyin_table[693], &pinyin_table[359], }, /* zhen a => zhe na */ - { &pinyin_table[697], &pinyin_table[4], &pinyin_table[693], &pinyin_table[363], }, /* zhen an => zhe nan */ - { &pinyin_table[697], &pinyin_table[5], &pinyin_table[693], &pinyin_table[364], }, /* zhen ang => zhe nang */ - { &pinyin_table[697], &pinyin_table[6], &pinyin_table[693], &pinyin_table[365], }, /* zhen ao => zhe nao */ - { &pinyin_table[697], &pinyin_table[128], &pinyin_table[693], &pinyin_table[366], }, /* zhen e => zhe ne */ - { &pinyin_table[697], &pinyin_table[129], &pinyin_table[693], &pinyin_table[368], }, /* zhen ei => zhe nei */ - { &pinyin_table[698], &pinyin_table[2], &pinyin_table[697], &pinyin_table[163], }, /* zheng ai => zhen gai */ - { &pinyin_table[698], &pinyin_table[4], &pinyin_table[697], &pinyin_table[165], }, /* zheng an => zhen gan */ - { &pinyin_table[698], &pinyin_table[5], &pinyin_table[697], &pinyin_table[166], }, /* zheng ang => zhen gang */ - { &pinyin_table[698], &pinyin_table[6], &pinyin_table[697], &pinyin_table[167], }, /* zheng ao => zhen gao */ - { &pinyin_table[698], &pinyin_table[128], &pinyin_table[697], &pinyin_table[168], }, /* zheng e => zhen ge */ - { &pinyin_table[698], &pinyin_table[129], &pinyin_table[697], &pinyin_table[170], }, /* zheng ei => zhen gei */ - { &pinyin_table[698], &pinyin_table[130], &pinyin_table[697], &pinyin_table[172], }, /* zheng en => zhen gen */ - { &pinyin_table[698], &pinyin_table[402], &pinyin_table[697], &pinyin_table[178], }, /* zheng ou => zhen gou */ - { &pinyin_table[710], &pinyin_table[6], &pinyin_table[706], &pinyin_table[365], }, /* zhuan ao => zhua nao */ - { &pinyin_table[710], &pinyin_table[128], &pinyin_table[706], &pinyin_table[366], }, /* zhuan e => zhua ne */ - { &pinyin_table[710], &pinyin_table[129], &pinyin_table[706], &pinyin_table[368], }, /* zhuan ei => zhua nei */ - { &pinyin_table[711], &pinyin_table[2], &pinyin_table[710], &pinyin_table[163], }, /* zhuang ai => zhuan gai */ - { &pinyin_table[711], &pinyin_table[4], &pinyin_table[710], &pinyin_table[165], }, /* zhuang an => zhuan gan */ - { &pinyin_table[711], &pinyin_table[5], &pinyin_table[710], &pinyin_table[166], }, /* zhuang ang => zhuan gang */ - { &pinyin_table[711], &pinyin_table[6], &pinyin_table[710], &pinyin_table[167], }, /* zhuang ao => zhuan gao */ - { &pinyin_table[711], &pinyin_table[128], &pinyin_table[710], &pinyin_table[168], }, /* zhuang e => zhuan ge */ - { &pinyin_table[711], &pinyin_table[129], &pinyin_table[710], &pinyin_table[170], }, /* zhuang ei => zhuan gei */ - { &pinyin_table[711], &pinyin_table[130], &pinyin_table[710], &pinyin_table[172], }, /* zhuang en => zhuan gen */ - { &pinyin_table[711], &pinyin_table[402], &pinyin_table[710], &pinyin_table[178], }, /* zhuang ou => zhuan gou */ - { &pinyin_table[715], &pinyin_table[0], &pinyin_table[705], &pinyin_table[359], }, /* zhun a => zhu na */ - { &pinyin_table[715], &pinyin_table[4], &pinyin_table[705], &pinyin_table[363], }, /* zhun an => zhu nan */ - { &pinyin_table[715], &pinyin_table[5], &pinyin_table[705], &pinyin_table[364], }, /* zhun ang => zhu nang */ - { &pinyin_table[715], &pinyin_table[6], &pinyin_table[705], &pinyin_table[365], }, /* zhun ao => zhu nao */ - { &pinyin_table[715], &pinyin_table[128], &pinyin_table[705], &pinyin_table[366], }, /* zhun e => zhu ne */ - { &pinyin_table[715], &pinyin_table[129], &pinyin_table[705], &pinyin_table[368], }, /* zhun ei => zhu nei */ - { &pinyin_table[727], &pinyin_table[0], &pinyin_table[726], &pinyin_table[161], }, /* zuang a => zuan ga */ - { &pinyin_table[727], &pinyin_table[2], &pinyin_table[726], &pinyin_table[163], }, /* zuang ai => zuan gai */ - { &pinyin_table[727], &pinyin_table[4], &pinyin_table[726], &pinyin_table[165], }, /* zuang an => zuan gan */ - { &pinyin_table[727], &pinyin_table[5], &pinyin_table[726], &pinyin_table[166], }, /* zuang ang => zuan gang */ - { &pinyin_table[727], &pinyin_table[6], &pinyin_table[726], &pinyin_table[167], }, /* zuang ao => zuan gao */ - { &pinyin_table[727], &pinyin_table[128], &pinyin_table[726], &pinyin_table[168], }, /* zuang e => zuan ge */ - { &pinyin_table[727], &pinyin_table[129], &pinyin_table[726], &pinyin_table[170], }, /* zuang ei => zuan gei */ - { &pinyin_table[727], &pinyin_table[130], &pinyin_table[726], &pinyin_table[172], }, /* zuang en => zuan gen */ - { &pinyin_table[727], &pinyin_table[402], &pinyin_table[726], &pinyin_table[178], }, /* zuang ou => zuan gou */ - { &pinyin_table[731], &pinyin_table[0], &pinyin_table[723], &pinyin_table[359], }, /* zun a => zu na */ - { &pinyin_table[731], &pinyin_table[4], &pinyin_table[723], &pinyin_table[363], }, /* zun an => zu nan */ - { &pinyin_table[731], &pinyin_table[5], &pinyin_table[723], &pinyin_table[364], }, /* zun ang => zu nang */ - { &pinyin_table[731], &pinyin_table[6], &pinyin_table[723], &pinyin_table[365], }, /* zun ao => zu nao */ - { &pinyin_table[731], &pinyin_table[128], &pinyin_table[723], &pinyin_table[366], }, /* zun e => zu ne */ - { &pinyin_table[731], &pinyin_table[129], &pinyin_table[723], &pinyin_table[368], }, /* zun ei => zu nei */ -}; - diff --git a/src/PyZySimpTradConverter.cc b/src/PyZySimpTradConverter.cc deleted file mode 100644 index 153b138..0000000 --- a/src/PyZySimpTradConverter.cc +++ /dev/null @@ -1,179 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * Copyright (c) 2010 BYVoid - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include "PyZySimpTradConverter.h" - -#ifdef HAVE_OPENCC -# include -#else -# include -# include -#endif - -#include "PyZyString.h" - -namespace PyZy { - -#ifdef HAVE_OPENCC - -class opencc { - static const int BUFFER_SIZE = 64; -public: - opencc (void) - { - m_od = opencc_open (OPENCC_DEFAULT_CONFIG_SIMP_TO_TRAD); - g_assert (m_od != NULL); - } - - ~opencc (void) - { - opencc_close(m_od); - } - - void convert (const char *in, String &out) - { - long n_char; - unichar *in_ucs4 = g_utf8_to_ucs4_fast (in, -1, &n_char); - - ucs4_t *pinbuf = (ucs4_t *)in_ucs4; - size_t inbuf_left = n_char; - while (inbuf_left != 0) { - ucs4_t *poutbuf = (ucs4_t *)m_buffer; - size_t outbuf_left = BUFFER_SIZE; - size_t retval = opencc_convert(m_od, &pinbuf, &inbuf_left, &poutbuf, &outbuf_left); - if (retval == (size_t) -1) { - /* append left chars in pinbuf */ - g_warning ("opencc_convert return failed"); - out << (unichar *) pinbuf; - break; - } - *poutbuf = L'\0'; - out << m_buffer; - } - g_free (in_ucs4); - } -private: - opencc_t m_od; - unichar m_buffer[BUFFER_SIZE + 1]; -}; - -void -SimpTradConverter::simpToTrad (const char *in, String &out) -{ - static opencc opencc; - opencc.convert (in, out); -} - -#else - -static int _xcmp (const char *p1, const char *p2, const char *str) -{ - for (;;) { - // both reach end - if (p1 == p2 && *str == '\0') - return 0; - // p1 reaches end - if (p1 == p2) - return -1; - // str reaches end - if (*str == '\0') - return 1; - - if (*p1 < *str) - return -1; - if (*p1 > *str) - return 1; - - p1 ++; str ++; - }; -} - -static int _cmp (const void * p1, const void * p2) -{ - const char **pp = (const char **) p1; - const char **s2 = (const char **) p2; - - return _xcmp (pp[0], pp[1], s2[0]); -} - -#include "PyZySimpTradConverterTable.h" - -void -SimpTradConverter::simpToTrad (const char *in, String &out) -{ - const char *pend; - const char *pp[2]; - size_t len; - size_t begin; - - if (!g_utf8_validate (in, -1 , NULL)) { - g_warning ("\%s\" is not an utf8 string!", in); - g_assert_not_reached (); - } - - begin = 0; - pend = in + std::strlen (in); - len = g_utf8_strlen (in, -1); // length in charactoers - pp[0] = in; - - while (pp[0] != pend) { - size_t slen = std::min (len - begin, static_cast(SIMP_TO_TRAD_MAX_LEN)); // the length of sub string in character - pp[1] = g_utf8_offset_to_pointer (pp[0], slen); // the end of sub string - - for (;;) { - const char **result; - result = (const char **) std::bsearch (pp, simp_to_trad, - G_N_ELEMENTS (simp_to_trad), sizeof (simp_to_trad[0]), - _cmp); - - if (result != NULL) { - // found item in table, - // append the trad to out and adjust pointers - out << result[1]; - pp[0] = pp[1]; - begin += slen; - break; - } - - if (slen == 1) { - // if only one character left, - // append origin character to out and adjust pointers - out.append (pp[0], pp[1] - pp[0]); - pp[0] = pp[1]; - begin += 1; - break; - } - - // if more than on characters left, - // adjust pp[1] to previous character - pp[1] = g_utf8_prev_char (pp[1]); - slen--; - } - } -} -#endif // HAVE_OPENCC - -}; // namespace PyZy diff --git a/src/PyZySimpTradConverter.h b/src/PyZySimpTradConverter.h deleted file mode 100644 index 3c777e3..0000000 --- a/src/PyZySimpTradConverter.h +++ /dev/null @@ -1,36 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_SIMP_TRAD_CONVERTER_H_ -#define __PYZY_SIMP_TRAD_CONVERTER_H_ - -namespace PyZy { - -class String; - -class SimpTradConverter { -public: - static void simpToTrad (const char *in, String &out); -}; - -}; // namespace PyZy - -#endif // __PYZY_SIMP_TRAD_CONVERTER_H_ diff --git a/src/PyZySimpTradConverterTable.h b/src/PyZySimpTradConverterTable.h deleted file mode 100644 index 202c9bd..0000000 --- a/src/PyZySimpTradConverterTable.h +++ /dev/null @@ -1,7427 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -static const char *simp_to_trad[][2] = { - { "〇余", "〇餘" }, - { "〇只", "〇隻" }, - { "一个准", "一個準" }, - { "一争两丑", "一爭兩醜" }, - { "一伙", "一夥" }, - { "一余", "一餘" }, - { "一冲", "一衝" }, - { "一准", "一準" }, - { "一出子", "一齣子" }, - { "一划", "一划" }, - { "一别头", "一彆頭" }, - { "一发千钧", "一髮千鈞" }, - { "一只", "一隻" }, - { "一吊", "一弔" }, - { "一哄而散", "一鬨而散" }, - { "一地里", "一地裡" }, - { "一天钟", "一天鐘" }, - { "一头长发", "一頭長髮" }, - { "一干二净", "一乾二淨" }, - { "一并", "一併" }, - { "一扎", "一紮" }, - { "一树百获", "一樹百穫" }, - { "一物克一物", "一物剋一物" }, - { "一锅面", "一鍋麵" }, - { "七余", "七餘" }, - { "七只", "七隻" }, - { "七情六欲", "七情六慾" }, - { "七扎", "七紮" }, - { "万", "萬" }, - { "万余", "萬餘" }, - { "万俟", "万俟" }, - { "万历", "萬曆" }, - { "万只", "萬隻" }, - { "万年历表", "萬年曆錶" }, - { "万扎", "萬紮" }, - { "万旗", "万旗" }, - { "万签插架", "萬籤插架" }, - { "三余", "三餘" }, - { "三准", "三準" }, - { "三只", "三隻" }, - { "三复", "三複" }, - { "三征七辟", "三徵七辟" }, - { "三扎", "三紮" }, - { "三统历", "三統曆" }, - { "上梁", "上樑" }, - { "上签", "上籤" }, - { "上药", "上藥" }, - { "上课钟", "上課鐘" }, - { "下仑路", "下崙路" }, - { "下梁", "下樑" }, - { "下签", "下籤" }, - { "下药", "下藥" }, - { "下课钟", "下課鐘" }, - { "不丑", "不醜" }, - { "不克制", "不剋制" }, - { "不准", "不準" }, - { "不占", "不佔" }, - { "不吊", "不弔" }, - { "不寒而栗", "不寒而慄" }, - { "不干", "不幹" }, - { "不干不净", "不乾不淨" }, - { "不托", "不託" }, - { "不斗", "不鬥" }, - { "不药而愈", "不藥而癒" }, - { "不谷", "不穀" }, - { "不通吊庆", "不通弔慶" }, - { "不采", "不採" }, - { "不锈钢", "不鏽鋼" }, - { "不食干腊", "不食乾腊" }, - { "与", "與" }, - { "与克制", "與剋制" }, - { "丑丑", "醜醜" }, - { "丑丫头", "醜丫頭" }, - { "丑事", "醜事" }, - { "丑于", "醜於" }, - { "丑人", "醜人" }, - { "丑侪", "醜儕" }, - { "丑八怪", "醜八怪" }, - { "丑剌剌", "醜剌剌" }, - { "丑剧", "醜劇" }, - { "丑化", "醜化" }, - { "丑史", "醜史" }, - { "丑名", "醜名" }, - { "丑咤", "醜吒" }, - { "丑地", "醜地" }, - { "丑声", "醜聲" }, - { "丑头怪脸", "醜頭怪臉" }, - { "丑夷", "醜夷" }, - { "丑女", "醜女" }, - { "丑奴儿", "醜奴兒" }, - { "丑妇", "醜婦" }, - { "丑媳", "醜媳" }, - { "丑小鸭", "醜小鴨" }, - { "丑巴怪", "醜巴怪" }, - { "丑徒", "醜徒" }, - { "丑态", "醜態" }, - { "丑恶", "醜惡" }, - { "丑末", "醜末" }, - { "丑杂", "醜雜" }, - { "丑样", "醜樣" }, - { "丑死", "醜死" }, - { "丑比", "醜比" }, - { "丑毙了", "醜斃了" }, - { "丑沮", "醜沮" }, - { "丑男", "醜男" }, - { "丑类", "醜類" }, - { "丑脸", "醜臉" }, - { "丑虏", "醜虜" }, - { "丑行", "醜行" }, - { "丑言", "醜言" }, - { "丑诋", "醜詆" }, - { "丑话", "醜話" }, - { "丑语", "醜語" }, - { "丑贼生", "醜賊生" }, - { "丑辞", "醜辭" }, - { "丑辱", "醜辱" }, - { "丑逆", "醜逆" }, - { "丑闻", "醜聞" }, - { "丑陋", "醜陋" }, - { "专", "專" }, - { "专注", "專註" }, - { "专辑里", "專輯裡" }, - { "世界杯", "世界盃" }, - { "世界里", "世界裡" }, - { "世纪钟", "世紀鐘" }, - { "业", "業" }, - { "业余", "業餘" }, - { "丛", "叢" }, - { "东", "東" }, - { "东冲西突", "東衝西突" }, - { "东周钟", "東周鐘" }, - { "东岳", "東嶽" }, - { "东游", "東遊" }, - { "丝", "絲" }, - { "丝制", "絲製" }, - { "丝发", "絲髮" }, - { "丝恩发怨", "絲恩髮怨" }, - { "丢", "丟" }, - { "丢丑", "丟醜" }, - { "两", "兩" }, - { "两余", "兩餘" }, - { "两只", "兩隻" }, - { "两天晒网", "兩天晒網" }, - { "两扎", "兩紮" }, - { "两虎共斗", "兩虎共鬥" }, - { "两鼠斗穴", "兩鼠鬥穴" }, - { "严", "嚴" }, - { "严云农", "嚴云農" }, - { "丧", "喪" }, - { "丧钟", "喪鐘" }, - { "个", "個" }, - { "个中原因", "箇中原因" }, - { "个中奥妙", "箇中奧妙" }, - { "个中奥秘", "箇中奧秘" }, - { "个中好手", "箇中好手" }, - { "个中强手", "箇中強手" }, - { "个中消息", "箇中消息" }, - { "个中滋味", "箇中滋味" }, - { "个中玄机", "箇中玄機" }, - { "个中理由", "箇中理由" }, - { "个中讯息", "箇中訊息" }, - { "个中资讯", "箇中資訊" }, - { "个中高手", "箇中高手" }, - { "个旧", "箇舊" }, - { "个里", "個裡" }, - { "个钟", "個鐘" }, - { "个钟表", "個鐘錶" }, - { "中仑", "中崙" }, - { "中型钟", "中型鐘" }, - { "中岳", "中嶽" }, - { "中文里", "中文裡" }, - { "中签", "中籤" }, - { "中药", "中藥" }, - { "丰", "豐" }, - { "丰仪", "丰儀" }, - { "丰儀", "丰儀" }, - { "丰南", "丰南" }, - { "丰台", "丰台" }, - { "丰姿", "丰姿" }, - { "丰容", "丰容" }, - { "丰度", "丰度" }, - { "丰情", "丰情" }, - { "丰标", "丰標" }, - { "丰標不凡", "丰標不凡" }, - { "丰神", "丰神" }, - { "丰茸", "丰茸" }, - { "丰采", "丰采" }, - { "丰韵", "丰韻" }, - { "丰韻", "丰韻" }, - { "临", "臨" }, - { "临潼斗宝", "臨潼鬥寶" }, - { "丸药", "丸藥" }, - { "丹药", "丹藥" }, - { "为", "為" }, - { "为准", "為準" }, - { "为着", "為著" }, - { "主仆", "主僕" }, - { "主干", "主幹" }, - { "主钟曲线", "主鐘曲線" }, - { "丽", "麗" }, - { "举", "舉" }, - { "么么小丑", "么麼小丑" }, - { "义", "義" }, - { "义仆", "義僕" }, - { "义占", "義佔" }, - { "义庄", "義莊" }, - { "之余", "之餘" }, - { "之征", "之徵" }, - { "之托", "之託" }, - { "之钟", "之鐘" }, - { "乌", "烏" }, - { "乌发", "烏髮" }, - { "乌龙面", "烏龍麵" }, - { "乐", "樂" }, - { "乐器钟", "樂器鐘" }, - { "乔", "喬" }, - { "乔岳", "喬嶽" }, - { "九世之仇", "九世之讎" }, - { "九余", "九餘" }, - { "九只", "九隻" }, - { "九扎", "九紮" }, - { "九谷", "九穀" }, - { "也克制", "也剋制" }, - { "习", "習" }, - { "乡", "鄉" }, - { "乡愿", "鄉愿" }, - { "书", "書" }, - { "书签", "書籤" }, - { "买", "買" }, - { "买凶", "買兇" }, - { "乱", "亂" }, - { "乱发", "亂髮" }, - { "乱哄", "亂鬨" }, - { "乾象历", "乾象曆" }, - { "了克制", "了剋制" }, - { "了望", "瞭望" }, - { "了然", "瞭然" }, - { "了若指掌", "瞭若指掌" }, - { "争", "爭" }, - { "争奇斗妍", "爭奇鬥妍" }, - { "争奇斗异", "爭奇鬥異" }, - { "争妍斗奇", "爭妍鬥奇" }, - { "争斗", "爭鬥" }, - { "争红斗紫", "爭紅鬥紫" }, - { "事迹", "事迹" }, - { "二仑", "二崙" }, - { "二余", "二餘" }, - { "二只", "二隻" }, - { "二缶钟惑", "二缶鐘惑" }, - { "于", "於" }, - { "于丑", "於醜" }, - { "于丹", "于丹" }, - { "于于", "于于" }, - { "于云鹤", "于雲鶴" }, - { "于仁泰", "于仁泰" }, - { "于从濂", "于從濂" }, - { "于仲文", "于仲文" }, - { "于会泳", "于會泳" }, - { "于伟国", "于偉國" }, - { "于余曲折", "于餘曲折" }, - { "于佳卉", "于佳卉" }, - { "于偉國", "于偉國" }, - { "于光新", "于光新" }, - { "于光远", "于光遠" }, - { "于光遠", "于光遠" }, - { "于克制", "於剋制" }, - { "于克勒", "于克勒" }, - { "于再清", "于再清" }, - { "于冕", "于冕" }, - { "于军", "于軍" }, - { "于冠华", "于冠華" }, - { "于凌奎", "于凌奎" }, - { "于凌辰", "于凌辰" }, - { "于凤桐", "于鳳桐" }, - { "于凤至", "于鳳至" }, - { "于勒", "于勒" }, - { "于化虎", "于化虎" }, - { "于占元", "于占元" }, - { "于友泽", "于友澤" }, - { "于双戈", "于雙戈" }, - { "于台烟", "于台煙" }, - { "于台煙", "于台煙" }, - { "于右任", "于右任" }, - { "于吉", "于吉" }, - { "于和伟", "于和偉" }, - { "于品海", "于品海" }, - { "于国桢", "于國楨" }, - { "于国治", "于國治" }, - { "于國楨", "于國楨" }, - { "于國治", "于國治" }, - { "于坏", "於坏" }, - { "于坚", "于堅" }, - { "于堅", "于堅" }, - { "于大宝", "于大寶" }, - { "于大寶", "于大寶" }, - { "于天仁", "于天仁" }, - { "于天龙", "于天龍" }, - { "于奇库杜克", "于奇庫杜克" }, - { "于奇庫杜克", "于奇庫杜克" }, - { "于姓", "于姓" }, - { "于娜", "于娜" }, - { "于娟", "于娟" }, - { "于子千", "于子千" }, - { "于孔兼", "于孔兼" }, - { "于学忠", "于學忠" }, - { "于學忠", "于學忠" }, - { "于家堡", "于家堡" }, - { "于寘", "于寘" }, - { "于小伟", "于小偉" }, - { "于小偉", "于小偉" }, - { "于小彤", "于小彤" }, - { "于小惠", "于小惠" }, - { "于少保", "于少保" }, - { "于尔岑", "于爾岑" }, - { "于尔根", "于爾根" }, - { "于尔里克", "于爾里克" }, - { "于山", "于山" }, - { "于帅", "于帥" }, - { "于帥", "于帥" }, - { "于幼军", "于幼軍" }, - { "于幼軍", "于幼軍" }, - { "于广洲", "于廣洲" }, - { "于康震", "于康震" }, - { "于廣洲", "于廣洲" }, - { "于式枚", "于式枚" }, - { "于归", "于歸" }, - { "于征", "於徵" }, - { "于從濂", "于從濂" }, - { "于德海", "于德海" }, - { "于志宁", "于志寧" }, - { "于志寧", "于志寧" }, - { "于忠肃集", "于忠肅集" }, - { "于思", "于思" }, - { "于慎行", "于慎行" }, - { "于慧", "于慧" }, - { "于成龍", "于成龍" }, - { "于成龙", "于成龍" }, - { "于振", "于振" }, - { "于敏", "于敏" }, - { "于斌", "于斌" }, - { "于斯塔德", "于斯塔德" }, - { "于斯达尔", "于斯達爾" }, - { "于斯達爾", "于斯達爾" }, - { "于明涛", "于明濤" }, - { "于明濤", "于明濤" }, - { "于是之", "于是之" }, - { "于晨楠", "于晨楠" }, - { "于晴", "于晴" }, - { "于會泳", "于會泳" }, - { "于来山", "于來山" }, - { "于枫", "于楓" }, - { "于树洁", "于樹潔" }, - { "于根伟", "于根偉" }, - { "于根偉", "于根偉" }, - { "于格", "于格" }, - { "于楓", "于楓" }, - { "于樂", "于樂" }, - { "于樹潔", "于樹潔" }, - { "于欣", "于欣" }, - { "于正升", "于正昇" }, - { "于正昇", "于正昇" }, - { "于正昌", "于正昌" }, - { "于永波", "于永波" }, - { "于汉超", "于漢超" }, - { "于江震", "于江震" }, - { "于波", "于波" }, - { "于泽尔", "于澤爾" }, - { "于洋", "于洋" }, - { "于洪区", "于洪區" }, - { "于洪區", "于洪區" }, - { "于浩威", "于浩威" }, - { "于海", "于海" }, - { "于涛", "于濤" }, - { "于湘兰", "于湘蘭" }, - { "于湘蘭", "于湘蘭" }, - { "于漢超", "于漢超" }, - { "于澄", "于澄" }, - { "于澤爾", "于澤爾" }, - { "于濤", "于濤" }, - { "于熙珍", "于熙珍" }, - { "于爾岑", "于爾岑" }, - { "于爾根", "于爾根" }, - { "于爾里克", "于爾里克" }, - { "于特森", "于特森" }, - { "于玉立", "于玉立" }, - { "于田", "于田" }, - { "于禁", "于禁" }, - { "于秀敏", "于秀敏" }, - { "于立成", "于立成" }, - { "于素秋", "于素秋" }, - { "于美人", "于美人" }, - { "于耘婕", "于耘婕" }, - { "于若木", "于若木" }, - { "于荣光", "于榮光" }, - { "于荫霖", "于蔭霖" }, - { "于蔭霖", "于蔭霖" }, - { "于衡", "于衡" }, - { "于西翰", "于西翰" }, - { "于謙", "于謙" }, - { "于谦", "于謙" }, - { "于谨", "于謹" }, - { "于貝爾", "于貝爾" }, - { "于贈", "于贈" }, - { "于贝尔", "于貝爾" }, - { "于赠", "于贈" }, - { "于越", "于越" }, - { "于軍", "于軍" }, - { "于远伟", "于遠偉" }, - { "于道泉", "于道泉" }, - { "于遠偉", "于遠偉" }, - { "于都县", "于都縣" }, - { "于都縣", "于都縣" }, - { "于里察", "于里察" }, - { "于阗", "于闐" }, - { "于雙戈", "于雙戈" }, - { "于震", "于震" }, - { "于震后", "於震后" }, - { "于靖", "于靖" }, - { "于非闇", "于非闇" }, - { "于韋斯屈萊", "于韋斯屈萊" }, - { "于韦斯屈莱", "于韋斯屈萊" }, - { "于風政", "于風政" }, - { "于风政", "于風政" }, - { "于飛島", "于飛島" }, - { "于飞", "于飛" }, - { "于鬯", "于鬯" }, - { "于魁智", "于魁智" }, - { "于鳳桐", "于鳳桐" }, - { "于鳳至", "于鳳至" }, - { "于默奥", "于默奧" }, - { "于默奧", "于默奧" }, - { "亏", "虧" }, - { "云", "雲" }, - { "云为", "云為" }, - { "云乎", "云乎" }, - { "云云", "云云" }, - { "云何", "云何" }, - { "云南白药", "雲南白藥" }, - { "云尔", "云爾" }, - { "云游", "雲遊" }, - { "云為", "云為" }, - { "云然", "云然" }, - { "云笈七签", "雲笈七籤" }, - { "云须", "雲鬚" }, - { "五余", "五餘" }, - { "五出", "五齣" }, - { "五只", "五隻" }, - { "五岳", "五嶽" }, - { "五扎", "五紮" }, - { "五行生克", "五行生剋" }, - { "五谷", "五穀" }, - { "井干摧败", "井榦摧敗" }, - { "井里", "井裡" }, - { "亚", "亞" }, - { "亚美尼亚历", "亞美尼亞曆" }, - { "交哄", "交鬨" }, - { "交托", "交託" }, - { "交游", "交遊" }, - { "亦云", "亦云" }, - { "亦庄亦谐", "亦莊亦諧" }, - { "产", "產" }, - { "亩", "畝" }, - { "亮丑", "亮醜" }, - { "亮钟", "亮鐘" }, - { "亲", "親" }, - { "亵", "褻" }, - { "人云", "人云" }, - { "人参", "人蔘" }, - { "人欲", "人慾" }, - { "人物志", "人物誌" }, - { "亿", "億" }, - { "亿余", "億餘" }, - { "亿只", "億隻" }, - { "什么", "什麼" }, - { "什锦面", "什錦麵" }, - { "仅", "僅" }, - { "仆人", "僕人" }, - { "仆仆", "僕僕" }, - { "仆从", "僕從" }, - { "仆使", "僕使" }, - { "仆僮", "僕僮" }, - { "仆吏", "僕吏" }, - { "仆固怀恩", "僕固懷恩" }, - { "仆夫", "僕夫" }, - { "仆妇", "僕婦" }, - { "仆姑", "僕姑" }, - { "仆婢", "僕婢" }, - { "仆射", "僕射" }, - { "仆少", "僕少" }, - { "仆役", "僕役" }, - { "仆憎", "僕憎" }, - { "仆欧", "僕歐" }, - { "仆程", "僕程" }, - { "仆虽罢驽", "僕雖罷駑" }, - { "仇仇", "仇讎" }, - { "仇問", "讎問" }, - { "仇夷", "讎夷" }, - { "仇校", "讎校" }, - { "仇正", "讎正" }, - { "仇隙", "讎隙" }, - { "从", "從" }, - { "从里到外", "從裡到外" }, - { "从里向外", "從裡向外" }, - { "仑", "侖" }, - { "仑背", "崙背" }, - { "仓", "倉" }, - { "他克制", "他剋制" }, - { "他钟", "他鐘" }, - { "付托", "付託" }, - { "仙后", "仙后" }, - { "仙药", "仙藥" }, - { "仪", "儀" }, - { "仪范", "儀範" }, - { "仪表", "儀錶" }, - { "们", "們" }, - { "们克制", "們剋制" }, - { "仰药", "仰藥" }, - { "件钟", "件鐘" }, - { "价", "價" }, - { "任何表", "任何錶" }, - { "任何钟", "任何鐘" }, - { "仿佛", "彷彿" }, - { "仿制", "仿製" }, - { "伊东怜", "伊東怜" }, - { "伊于湖底", "伊于湖底" }, - { "伊尔汗历表", "伊爾汗曆表" }, - { "伊府面", "伊府麵" }, - { "伊斯兰历", "伊斯蘭曆" }, - { "伊斯兰教历", "伊斯蘭教曆" }, - { "伊适杰", "伊適杰" }, - { "伊郁", "伊鬱" }, - { "伏几", "伏几" }, - { "休征", "休徵" }, - { "众", "眾" }, - { "优", "優" }, - { "优游", "優遊" }, - { "伙众", "夥眾" }, - { "伙伴", "夥伴" }, - { "伙友", "夥友" }, - { "伙同", "夥同" }, - { "伙计", "夥計" }, - { "会", "會" }, - { "会占", "會佔" }, - { "会吊", "會弔" }, - { "会干", "會幹" }, - { "会里", "會裡" }, - { "伛", "傴" }, - { "伞", "傘" }, - { "伟", "偉" }, - { "传", "傳" }, - { "传位于四太子", "傳位于四太子" }, - { "伤", "傷" }, - { "伤痕累累", "傷痕纍纍" }, - { "伥", "倀" }, - { "伦", "倫" }, - { "伧", "傖" }, - { "伪", "偽" }, - { "伪药", "偽藥" }, - { "伫", "佇" }, - { "伴游", "伴遊" }, - { "但云", "但云" }, - { "位准", "位準" }, - { "低洼", "低洼" }, - { "住扎", "住紮" }, - { "体", "體" }, - { "体范", "體範" }, - { "何杰", "何杰" }, - { "余〇", "餘〇" }, - { "余一", "餘一" }, - { "余七", "餘七" }, - { "余三", "餘三" }, - { "余下", "餘下" }, - { "余业", "餘業" }, - { "余九", "餘九" }, - { "余事", "餘事" }, - { "余二", "餘二" }, - { "余五", "餘五" }, - { "余人", "餘人" }, - { "余众", "餘眾" }, - { "余俗", "餘俗" }, - { "余倍", "餘倍" }, - { "余僇", "餘僇" }, - { "余光", "餘光" }, - { "余党", "餘黨" }, - { "余八", "餘八" }, - { "余六", "餘六" }, - { "余兴", "餘興" }, - { "余刃", "餘刃" }, - { "余切", "餘切" }, - { "余利", "餘利" }, - { "余割", "餘割" }, - { "余力", "餘力" }, - { "余勇", "餘勇" }, - { "余十", "餘十" }, - { "余味", "餘味" }, - { "余响", "餘響" }, - { "余喘", "餘喘" }, - { "余四", "餘四" }, - { "余地", "餘地" }, - { "余墨", "餘墨" }, - { "余声", "餘聲" }, - { "余外", "餘外" }, - { "余妙", "餘妙" }, - { "余姚", "餘姚" }, - { "余威", "餘威" }, - { "余子", "餘子" }, - { "余存", "餘存" }, - { "余孽", "餘孽" }, - { "余庆", "餘慶" }, - { "余弦", "餘弦" }, - { "余思", "餘思" }, - { "余悸", "餘悸" }, - { "余数", "餘數" }, - { "余明", "餘明" }, - { "余映", "餘映" }, - { "余晖", "餘暉" }, - { "余暇", "餘暇" }, - { "余杭", "餘杭" }, - { "余杯", "餘杯" }, - { "余桃", "餘桃" }, - { "余桶", "餘桶" }, - { "余款", "餘款" }, - { "余步", "餘步" }, - { "余殃", "餘殃" }, - { "余毒", "餘毒" }, - { "余气", "餘氣" }, - { "余沥", "餘瀝" }, - { "余波", "餘波" }, - { "余波荡漾", "餘波盪漾" }, - { "余泽", "餘澤" }, - { "余温", "餘溫" }, - { "余烈", "餘烈" }, - { "余烬", "餘燼" }, - { "余热", "餘熱" }, - { "余珍", "餘珍" }, - { "余生", "餘生" }, - { "余窍", "餘竅" }, - { "余粮", "餘糧" }, - { "余绪", "餘緒" }, - { "余缺", "餘缺" }, - { "余罪", "餘罪" }, - { "余羡", "餘羨" }, - { "余膏", "餘膏" }, - { "余荫", "餘蔭" }, - { "余蓄", "餘蓄" }, - { "余裕", "餘裕" }, - { "余角", "餘角" }, - { "余论", "餘論" }, - { "余貾", "餘貾" }, - { "余责", "餘責" }, - { "余辉", "餘輝" }, - { "余辜", "餘辜" }, - { "余酲", "餘酲" }, - { "余量", "餘量" }, - { "余闰", "餘閏" }, - { "余闲", "餘閒" }, - { "余零", "餘零" }, - { "余震", "餘震" }, - { "余霞", "餘霞" }, - { "余音", "餘音" }, - { "余音绕梁", "餘音繞梁" }, - { "余韵", "餘韻" }, - { "余额", "餘額" }, - { "余风", "餘風" }, - { "余食", "餘食" }, - { "佛罗棱萨", "佛羅稜薩" }, - { "佛钟", "佛鐘" }, - { "作准", "作準" }, - { "作品里", "作品裡" }, - { "作奸犯科", "作姦犯科" }, - { "作庄", "作莊" }, - { "你克制", "你剋制" }, - { "你才子发昏", "你纔子發昏" }, - { "佣中佼佼", "傭中佼佼" }, - { "佣书", "傭書" }, - { "佣人", "傭人" }, - { "佣仆", "傭僕" }, - { "佣兵", "傭兵" }, - { "佣工", "傭工" }, - { "佣懒", "傭懶" }, - { "佣金", "傭金" }, - { "佥", "僉" }, - { "佳肴", "佳肴" }, - { "使其斗", "使其鬥" }, - { "侍仆", "侍僕" }, - { "供制", "供製" }, - { "依依不舍", "依依不捨" }, - { "依托", "依託" }, - { "侠", "俠" }, - { "侣", "侶" }, - { "侥", "僥" }, - { "侥幸", "僥倖" }, - { "侦", "偵" }, - { "侧", "側" }, - { "侨", "僑" }, - { "侩", "儈" }, - { "侪", "儕" }, - { "侬", "儂" }, - { "侵占", "侵佔" }, - { "侵并", "侵併" }, - { "便药", "便藥" }, - { "俄占", "俄佔" }, - { "保险柜", "保險柜" }, - { "信托", "信託" }, - { "俣", "俁" }, - { "俦", "儔" }, - { "俨", "儼" }, - { "俩", "倆" }, - { "俪", "儷" }, - { "俭", "儉" }, - { "俭仆", "儉僕" }, - { "俭朴", "儉樸" }, - { "俭确之教", "儉确之教" }, - { "修杰楷", "修杰楷" }, - { "修杰麟", "修杰麟" }, - { "修炼", "修鍊" }, - { "修胡刀", "修鬍刀" }, - { "俯冲", "俯衝" }, - { "倒绷孩儿", "倒繃孩兒" }, - { "倛丑", "倛醜" }, - { "借以", "藉以" }, - { "借助", "藉助" }, - { "借寇兵", "藉寇兵" }, - { "借手", "藉手" }, - { "借机", "藉機" }, - { "借此", "藉此" }, - { "借由", "藉由" }, - { "借着", "藉著" }, - { "借箸代筹", "藉箸代籌" }, - { "借资", "藉資" }, - { "倦游", "倦遊" }, - { "债", "債" }, - { "倾", "傾" }, - { "倾复", "傾複" }, - { "假发", "假髮" }, - { "假托", "假託" }, - { "假药", "假藥" }, - { "偎干", "偎乾" }, - { "做庄", "做莊" }, - { "停制", "停製" }, - { "停征", "停徵" }, - { "偬", "傯" }, - { "偷鸡不着", "偷雞不著" }, - { "偻", "僂" }, - { "偾", "僨" }, - { "偿", "償" }, - { "傥", "儻" }, - { "傧", "儐" }, - { "储", "儲" }, - { "傩", "儺" }, - { "催并", "催併" }, - { "傲游", "傲遊" }, - { "傲霜斗雪", "傲霜鬥雪" }, - { "傳位于四太子", "傳位于四太子" }, - { "傻里傻气", "傻裡傻氣" }, - { "僮仆", "僮僕" }, - { "僵尸", "殭屍" }, - { "儒略历", "儒略曆" }, - { "儒略改革历", "儒略改革曆" }, - { "儿", "兒" }, - { "兀术", "兀朮" }, - { "元凶", "元兇" }, - { "充饥", "充饑" }, - { "兆余", "兆餘" }, - { "先占", "先佔" }, - { "先采", "先採" }, - { "光致致", "光緻緻" }, - { "克制不了", "剋制不了" }, - { "克制不住", "剋制不住" }, - { "克复", "克複" }, - { "克扣", "剋扣" }, - { "克星", "剋星" }, - { "克期", "剋期" }, - { "克死", "剋死" }, - { "克药", "克藥" }, - { "克薄", "剋薄" }, - { "免征", "免徵" }, - { "兑", "兌" }, - { "兖", "兗" }, - { "党", "黨" }, - { "党参", "党參" }, - { "党太尉", "党太尉" }, - { "党怀英", "党懷英" }, - { "党进", "党進" }, - { "党項", "党項" }, - { "党项", "党項" }, - { "全干", "全乾" }, - { "八余", "八餘" }, - { "八只", "八隻" }, - { "八字胡", "八字鬍" }, - { "八扎", "八紮" }, - { "八蜡", "八蜡" }, - { "公仆", "公僕" }, - { "公仔面", "公仔麵" }, - { "公余", "公餘" }, - { "公历", "公曆" }, - { "公厘", "公釐" }, - { "公干", "公幹" }, - { "六余", "六餘" }, - { "六冲", "六衝" }, - { "六出", "六齣" }, - { "六只", "六隻" }, - { "六扎", "六紮" }, - { "六谷", "六穀" }, - { "兰", "蘭" }, - { "共和历", "共和曆" }, - { "关", "關" }, - { "关弓与我确", "關弓與我确" }, - { "关系", "關係" }, - { "关系着", "關係著" }, - { "兴", "興" }, - { "兴致", "興緻" }, - { "其余", "其餘" }, - { "典范", "典範" }, - { "兹", "茲" }, - { "养", "養" }, - { "兼并", "兼并" }, - { "兽", "獸" }, - { "兽欲", "獸慾" }, - { "冁", "囅" }, - { "内", "內" }, - { "内制", "內製" }, - { "内哄", "內鬨" }, - { "内斗", "內鬥" }, - { "冈", "岡" }, - { "册", "冊" }, - { "冗余", "冗餘" }, - { "写", "寫" }, - { "写字台", "寫字檯" }, - { "军", "軍" }, - { "军队克制", "軍隊剋制" }, - { "农", "農" }, - { "农历", "農曆" }, - { "农庄", "農莊" }, - { "农民历", "農民曆" }, - { "农药", "農藥" }, - { "冤仇", "冤讎" }, - { "冥蒙", "冥濛" }, - { "冬冬鼓", "鼕鼕鼓" }, - { "冬天里", "冬天裡" }, - { "冬日里", "冬日裡" }, - { "冬游", "冬遊" }, - { "冯", "馮" }, - { "冲", "沖" }, - { "冲上", "衝上" }, - { "冲下", "衝下" }, - { "冲倒", "衝倒" }, - { "冲克", "衝剋" }, - { "冲冠", "衝冠" }, - { "冲冠发怒", "沖冠髮怒" }, - { "冲决", "衝決" }, - { "冲出", "衝出" }, - { "冲击", "衝擊" }, - { "冲到", "衝到" }, - { "冲刺", "衝刺" }, - { "冲力", "衝力" }, - { "冲动", "衝動" }, - { "冲劲", "衝勁" }, - { "冲压", "衝壓" }, - { "冲去", "衝去" }, - { "冲口", "衝口" }, - { "冲坚陷阵", "衝堅陷陣" }, - { "冲垮", "衝垮" }, - { "冲堂", "衝堂" }, - { "冲天", "衝天" }, - { "冲头阵", "衝頭陣" }, - { "冲州撞府", "衝州撞府" }, - { "冲心", "衝心" }, - { "冲掉", "衝掉" }, - { "冲撞", "衝撞" }, - { "冲散", "衝散" }, - { "冲杀", "衝殺" }, - { "冲来", "衝來" }, - { "冲波", "衝波" }, - { "冲浪", "衝浪" }, - { "冲激", "衝激" }, - { "冲然", "衝然" }, - { "冲盹", "衝盹" }, - { "冲着", "衝著" }, - { "冲破", "衝破" }, - { "冲程", "衝程" }, - { "冲突", "衝突" }, - { "冲线", "衝線" }, - { "冲要", "衝要" }, - { "冲起", "衝起" }, - { "冲车", "衝車" }, - { "冲过", "衝過" }, - { "冲进", "衝進" }, - { "冲量", "衝量" }, - { "冲锋", "衝鋒" }, - { "冲陷", "衝陷" }, - { "冲风", "衝風" }, - { "决", "決" }, - { "决斗", "決鬥" }, - { "况", "況" }, - { "冶游", "冶遊" }, - { "冷面", "冷麵" }, - { "冻", "凍" }, - { "净", "凈" }, - { "净余", "淨餘" }, - { "净发", "淨髮" }, - { "准三后", "准三后" }, - { "准不准", "準不準" }, - { "准会", "準會" }, - { "准例", "準例" }, - { "准保", "準保" }, - { "准儿", "準兒" }, - { "准决赛", "準決賽" }, - { "准分子", "準分子" }, - { "准则", "準則" }, - { "准噶尔", "準噶爾" }, - { "准备", "準備" }, - { "准头", "準頭" }, - { "准定", "準定" }, - { "准平原", "準平原" }, - { "准度", "準度" }, - { "准式", "準式" }, - { "准拟", "準擬" }, - { "准拿督", "準拿督" }, - { "准据", "準據" }, - { "准新娘", "準新娘" }, - { "准新郎", "準新郎" }, - { "准时", "準時" }, - { "准星", "準星" }, - { "准是", "準是" }, - { "准点", "準點" }, - { "准的", "準的" }, - { "准直", "準直" }, - { "准确", "準確" }, - { "准线", "準線" }, - { "准绳", "準繩" }, - { "准话", "準話" }, - { "准谱", "準譜" }, - { "准货币", "準貨幣" }, - { "凉", "涼" }, - { "凉面", "涼麵" }, - { "凌蒙初", "凌濛初" }, - { "减", "減" }, - { "减肥药", "減肥藥" }, - { "凑", "湊" }, - { "凛", "凜" }, - { "凝炼", "凝鍊" }, - { "几", "幾" }, - { "几上", "几上" }, - { "几丝", "几絲" }, - { "几净窗明", "几淨窗明" }, - { "几几", "几几" }, - { "几凳", "几凳" }, - { "几出", "幾齣" }, - { "几只", "幾隻" }, - { "几子", "几子" }, - { "几旁", "几旁" }, - { "几杖", "几杖" }, - { "几案", "几案" }, - { "几椅", "几椅" }, - { "几榻", "几榻" }, - { "几筵", "几筵" }, - { "几面上", "几面上" }, - { "凤", "鳳" }, - { "凫", "鳧" }, - { "凭", "憑" }, - { "凭借", "憑藉" }, - { "凭借着", "憑藉著" }, - { "凭准", "憑準" }, - { "凭几", "憑几" }, - { "凭吊", "憑弔" }, - { "凭折", "憑摺" }, - { "凯", "凱" }, - { "凶刀", "兇刀" }, - { "凶器", "兇器" }, - { "凶嫌", "兇嫌" }, - { "凶巴巴", "兇巴巴" }, - { "凶徒", "兇徒" }, - { "凶恶", "兇惡" }, - { "凶悍", "兇悍" }, - { "凶手", "兇手" }, - { "凶杀", "兇殺" }, - { "凶枪", "兇槍" }, - { "凶案", "兇案" }, - { "凶横", "兇橫" }, - { "凶残", "兇殘" }, - { "凶殘", "兇殘" }, - { "凶殺", "兇殺" }, - { "凶犯", "兇犯" }, - { "凶狠", "兇狠" }, - { "凶猛", "兇猛" }, - { "凶疑", "兇疑" }, - { "凶相", "兇相" }, - { "凶险", "兇險" }, - { "凹洞里", "凹洞裡" }, - { "出丑", "出醜" }, - { "出儿", "齣兒" }, - { "出剧", "齣劇" }, - { "出动画", "齣動畫" }, - { "出卡通", "齣卡通" }, - { "出戏", "齣戲" }, - { "出游", "出遊" }, - { "出电影", "齣電影" }, - { "出电视", "齣電視" }, - { "出节目", "齣節目" }, - { "出锤", "出鎚" }, - { "击", "擊" }, - { "击扑", "擊扑" }, - { "击钟", "擊鐘" }, - { "凿", "鑿" }, - { "分别致", "分别致" }, - { "分半钟", "分半鐘" }, - { "分占", "分佔" }, - { "分多钟", "分多鐘" }, - { "分子钟", "分子鐘" }, - { "分钟", "分鐘" }, - { "刍", "芻" }, - { "刑余", "刑餘" }, - { "划", "劃" }, - { "划一桨", "划一槳" }, - { "划上", "划上" }, - { "划下", "划下" }, - { "划不来", "划不來" }, - { "划了", "划了" }, - { "划具", "划具" }, - { "划出", "划出" }, - { "划到", "划到" }, - { "划动", "划動" }, - { "划去", "划去" }, - { "划子", "划子" }, - { "划得来", "划得來" }, - { "划拳", "划拳" }, - { "划来划去", "划來划去" }, - { "划桨", "划槳" }, - { "划水", "划水" }, - { "划着", "划著" }, - { "划算", "划算" }, - { "划船", "划船" }, - { "划艇", "划艇" }, - { "划行", "划行" }, - { "划走", "划走" }, - { "划起", "划起" }, - { "划过", "划過" }, - { "划进", "划進" }, - { "划龙舟", "划龍舟" }, - { "刘", "劉" }, - { "刘佳怜", "劉佳怜" }, - { "刘克庄", "劉克莊" }, - { "刘芸后", "劉芸后" }, - { "则", "則" }, - { "刚", "剛" }, - { "刚干", "剛乾" }, - { "刚才一载", "剛纔一載" }, - { "刚雇", "剛僱" }, - { "创", "創" }, - { "创制", "創製" }, - { "创获", "創穫" }, - { "删", "刪" }, - { "利欲", "利慾" }, - { "别", "別" }, - { "别口气", "彆口氣" }, - { "别庄", "別莊" }, - { "别强", "彆強" }, - { "别扭", "彆扭" }, - { "别拗", "彆拗" }, - { "别气", "彆氣" }, - { "别着", "別著" }, - { "别致", "別緻" }, - { "别辟", "別闢" }, - { "刭", "剄" }, - { "刮了", "颳了" }, - { "刮倒", "颳倒" }, - { "刮去", "颳去" }, - { "刮得", "颳得" }, - { "刮着", "刮著" }, - { "刮胡", "刮鬍" }, - { "刮走", "颳走" }, - { "刮起", "颳起" }, - { "刮雪", "颳雪" }, - { "刮风", "颳風" }, - { "制为", "製為" }, - { "制件", "製件" }, - { "制作", "製作" }, - { "制做", "製做" }, - { "制冰", "製冰" }, - { "制冷", "製冷" }, - { "制剂", "製劑" }, - { "制取", "製取" }, - { "制品", "製品" }, - { "制图", "製圖" }, - { "制备", "製備" }, - { "制得", "製得" }, - { "制成", "製成" }, - { "制法", "製法" }, - { "制浆", "製漿" }, - { "制片", "製片" }, - { "制版", "製版" }, - { "制盐", "製鹽" }, - { "制程", "製程" }, - { "制签", "制籤" }, - { "制糖", "製糖" }, - { "制纸", "製紙" }, - { "制药", "製藥" }, - { "制表", "製表" }, - { "制造", "製造" }, - { "制钟", "制鐘" }, - { "制革", "製革" }, - { "制鞋", "製鞋" }, - { "刹", "剎" }, - { "刺绣", "刺繡" }, - { "刻半钟", "刻半鐘" }, - { "刻多钟", "刻多鐘" }, - { "刻钟", "刻鐘" }, - { "刽", "劊" }, - { "刿", "劌" }, - { "剀", "剴" }, - { "剂", "劑" }, - { "剃发", "剃髮" }, - { "剃胡", "剃鬍" }, - { "剃须", "剃鬚" }, - { "削发", "削髮" }, - { "削面", "削麵" }, - { "剐", "剮" }, - { "剑", "劍" }, - { "剔庄货", "剔莊貨" }, - { "剥", "剝" }, - { "剥制", "剝製" }, - { "剧", "劇" }, - { "剧药", "劇藥" }, - { "剩余", "剩餘" }, - { "剪其发", "剪其髮" }, - { "剪发", "剪髮" }, - { "剪彩", "剪綵" }, - { "割舍", "割捨" }, - { "劉佳怜", "劉佳怜" }, - { "力争上游", "力爭上遊" }, - { "力克制", "力剋制" }, - { "力拼", "力拚" }, - { "力求克制", "力求剋制" }, - { "劝", "勸" }, - { "办", "辦" }, - { "办公台", "辦公檯" }, - { "功致", "功緻" }, - { "加注", "加註" }, - { "加药", "加藥" }, - { "务", "務" }, - { "劢", "勱" }, - { "动", "動" }, - { "动荡", "動蕩" }, - { "劫余", "劫餘" }, - { "励", "勵" }, - { "劲", "勁" }, - { "劳", "勞" }, - { "劳力士表", "勞力士錶" }, - { "势", "勢" }, - { "勃郁", "勃鬱" }, - { "勋", "勛" }, - { "勋章", "勳章" }, - { "勤仆", "勤僕" }, - { "勤朴", "勤樸" }, - { "勺药", "勺藥" }, - { "勾干", "勾幹" }, - { "勾心斗角", "勾心鬥角" }, - { "勾魂荡魄", "勾魂蕩魄" }, - { "匀", "勻" }, - { "包准", "包準" }, - { "包庄", "包莊" }, - { "包扎", "包紮" }, - { "包谷", "包穀" }, - { "匏系", "匏繫" }, - { "北回线", "北迴線" }, - { "北回铁路", "北迴鐵路" }, - { "北岳", "北嶽" }, - { "匡复", "匡複" }, - { "匦", "匭" }, - { "匪干", "匪幹" }, - { "匮", "匱" }, - { "区", "區" }, - { "医", "醫" }, - { "医药", "醫藥" }, - { "医院里", "醫院裡" }, - { "十余", "十餘" }, - { "十出", "十齣" }, - { "十只", "十隻" }, - { "十扎", "十紮" }, - { "千余", "千餘" }, - { "千只", "千隻" }, - { "千回百折", "千迴百折" }, - { "千回百转", "千迴百轉" }, - { "千扎", "千紮" }, - { "千钧一发", "千鈞一髮" }, - { "升官", "陞官" }, - { "升平", "昇平" }, - { "升阳", "昇陽" }, - { "半只", "半隻" }, - { "华", "華" }, - { "华严钟", "華嚴鐘" }, - { "华发", "華髮" }, - { "协", "協" }, - { "单", "單" }, - { "单于", "單于" }, - { "单干", "單幹" }, - { "单打独斗", "單打獨鬥" }, - { "卖", "賣" }, - { "卖呆", "賣獃" }, - { "南京钟", "南京鐘" }, - { "南回线", "南迴線" }, - { "南回铁路", "南迴鐵路" }, - { "南宫适", "南宮适" }, - { "南岳", "南嶽" }, - { "南游", "南遊" }, - { "南筑", "南筑" }, - { "博汇", "博彙" }, - { "博采", "博採" }, - { "卜云吉", "卜云吉" }, - { "卞庄", "卞莊" }, - { "占〇", "佔〇" }, - { "占一", "佔一" }, - { "占七", "佔七" }, - { "占万", "佔万" }, - { "占三", "佔三" }, - { "占上风", "佔上風" }, - { "占下", "佔下" }, - { "占不占", "佔不佔" }, - { "占不足", "佔不足" }, - { "占世界", "佔世界" }, - { "占东", "佔東" }, - { "占两", "佔兩" }, - { "占个", "佔個" }, - { "占中", "佔中" }, - { "占为", "佔為" }, - { "占主", "佔主" }, - { "占九", "佔九" }, - { "占了", "佔了" }, - { "占二", "佔二" }, - { "占五", "佔五" }, - { "占人便宜", "佔人便宜" }, - { "占亿", "佔億" }, - { "占优", "佔優" }, - { "占位", "佔位" }, - { "占住", "佔住" }, - { "占便宜", "佔便宜" }, - { "占便宜的是呆", "占便宜的是獃" }, - { "占俄", "佔俄" }, - { "占停车", "佔停車" }, - { "占先", "佔先" }, - { "占光", "佔光" }, - { "占全", "佔全" }, - { "占八", "佔八" }, - { "占六", "佔六" }, - { "占分", "佔分" }, - { "占到", "佔到" }, - { "占加", "佔加" }, - { "占劣", "佔劣" }, - { "占北", "佔北" }, - { "占十", "佔十" }, - { "占千", "佔千" }, - { "占半", "佔半" }, - { "占南", "佔南" }, - { "占占", "佔佔" }, - { "占印", "佔印" }, - { "占压", "佔壓" }, - { "占去", "佔去" }, - { "占取", "佔取" }, - { "占台", "佔台" }, - { "占后", "佔後" }, - { "占哺乳", "佔哺乳" }, - { "占嗫", "佔囁" }, - { "占四", "佔四" }, - { "占国内", "佔國內" }, - { "占在", "佔在" }, - { "占地", "佔地" }, - { "占场", "佔場" }, - { "占多", "佔多" }, - { "占大", "佔大" }, - { "占头", "佔頭" }, - { "占好", "佔好" }, - { "占小", "佔小" }, - { "占少", "佔少" }, - { "占尽", "佔盡" }, - { "占局部", "佔局部" }, - { "占屋", "佔屋" }, - { "占山", "佔山" }, - { "占市场", "佔市場" }, - { "占平均", "佔平均" }, - { "占床", "佔床" }, - { "占座", "佔座" }, - { "占得", "佔得" }, - { "占德", "佔德" }, - { "占总", "佔總" }, - { "占据", "佔據" }, - { "占掉", "佔掉" }, - { "占整体", "佔整體" }, - { "占新", "佔新" }, - { "占有", "佔有" }, - { "占有欲", "佔有慾" }, - { "占查", "佔查" }, - { "占次", "佔次" }, - { "占比", "佔比" }, - { "占毕", "佔畢" }, - { "占法", "佔法" }, - { "占满", "佔滿" }, - { "占澳", "佔澳" }, - { "占率", "佔率" }, - { "占用", "佔用" }, - { "占百", "佔百" }, - { "占着", "佔著" }, - { "占稳", "佔穩" }, - { "占线", "佔線" }, - { "占缺", "佔缺" }, - { "占网", "佔網" }, - { "占美", "佔美" }, - { "占耕", "佔耕" }, - { "占至多", "佔至多" }, - { "占至少", "佔至少" }, - { "占苏", "佔蘇" }, - { "占英", "佔英" }, - { "占葡", "佔葡" }, - { "占西", "佔西" }, - { "占资源", "佔資源" }, - { "占起", "佔起" }, - { "占超过", "佔超過" }, - { "占过", "佔過" }, - { "占道", "佔道" }, - { "占零", "佔零" }, - { "占領", "佔領" }, - { "占领", "佔領" }, - { "占饭", "佔飯" }, - { "占香", "佔香" }, - { "占马", "佔馬" }, - { "占高枝儿", "佔高枝兒" }, - { "卢", "盧" }, - { "卢棱伽", "盧稜伽" }, - { "卤", "鹵" }, - { "卤制", "滷製" }, - { "卤味", "滷味" }, - { "卤水", "滷水" }, - { "卤汁", "滷汁" }, - { "卤湖", "滷湖" }, - { "卤肉", "滷肉" }, - { "卤菜", "滷菜" }, - { "卤蛋", "滷蛋" }, - { "卤面", "滷麵" }, - { "卤鸡", "滷雞" }, - { "卧游", "臥遊" }, - { "卫", "衛" }, - { "卫后庄公", "衛後莊公" }, - { "卫星钟", "衛星鐘" }, - { "印制", "印製" }, - { "印累绶若", "印纍綬若" }, - { "却", "卻" }, - { "卵与石斗", "卵與石鬥" }, - { "卷云", "捲雲" }, - { "卷住", "捲住" }, - { "卷儿", "捲兒" }, - { "卷入", "捲入" }, - { "卷动", "捲動" }, - { "卷去", "捲去" }, - { "卷发", "捲髮" }, - { "卷图", "捲圖" }, - { "卷土重来", "捲土重來" }, - { "卷尺", "捲尺" }, - { "卷帘", "捲簾" }, - { "卷心菜", "捲心菜" }, - { "卷成", "捲成" }, - { "卷曲", "捲曲" }, - { "卷来", "捲來" }, - { "卷款", "捲款" }, - { "卷毛", "捲毛" }, - { "卷烟", "捲煙" }, - { "卷筒", "捲筒" }, - { "卷纸", "捲紙" }, - { "卷缩", "捲縮" }, - { "卷舌", "捲舌" }, - { "卷舖盖", "捲舖蓋" }, - { "卷菸", "捲菸" }, - { "卷袖", "捲袖" }, - { "卷走", "捲走" }, - { "卷起", "捲起" }, - { "卷轴", "捲軸" }, - { "卷逃", "捲逃" }, - { "卷铺盖", "捲鋪蓋" }, - { "卷须", "卷鬚" }, - { "卷风", "捲風" }, - { "卺", "巹" }, - { "厂", "廠" }, - { "厂部", "厂部" }, - { "厅", "廳" }, - { "历", "歷" }, - { "历书", "曆書" }, - { "历元", "曆元" }, - { "历史里", "歷史裡" }, - { "历命", "曆命" }, - { "历始", "曆始" }, - { "历室", "曆室" }, - { "历尾", "曆尾" }, - { "历数", "曆數" }, - { "历日", "曆日" }, - { "历本", "曆本" }, - { "历法", "曆法" }, - { "历物之意", "厤物之意" }, - { "历狱", "曆獄" }, - { "历纪", "曆紀" }, - { "历象", "曆象" }, - { "厉", "厲" }, - { "压", "壓" }, - { "厌", "厭" }, - { "厍", "厙" }, - { "厕", "廁" }, - { "厘出", "釐出" }, - { "厘升", "釐升" }, - { "厘定", "釐定" }, - { "厘正", "釐正" }, - { "厘清", "釐清" }, - { "厘订", "釐訂" }, - { "原子钟", "原子鐘" }, - { "原钟", "原鐘" }, - { "厢", "廂" }, - { "厣", "厴" }, - { "厦", "廈" }, - { "厨", "廚" }, - { "厨余", "廚餘" }, - { "厩", "廄" }, - { "厮", "廝" }, - { "厮斗", "廝鬥" }, - { "县", "縣" }, - { "县志", "縣誌" }, - { "县里", "縣裡" }, - { "参", "參" }, - { "参绥", "蔘綏" }, - { "双", "雙" }, - { "双折", "雙摺" }, - { "双胜类", "雙胜類" }, - { "双雕", "雙鵰" }, - { "反冲", "反衝" }, - { "反复", "反覆" }, - { "反复制", "反複製" }, - { "反朴", "反樸" }, - { "发", "發" }, - { "发上冲冠", "髮上沖冠" }, - { "发上指冠", "髮上指冠" }, - { "发丝", "髮絲" }, - { "发为血之本", "髮為血之本" }, - { "发乳", "髮乳" }, - { "发光可鉴", "髮光可鑑" }, - { "发匪", "髮匪" }, - { "发卷", "髮捲" }, - { "发呆", "發獃" }, - { "发型", "髮型" }, - { "发夹", "髮夾" }, - { "发妻", "髮妻" }, - { "发姐", "髮姐" }, - { "发屋", "髮屋" }, - { "发已霜白", "髮已霜白" }, - { "发带", "髮帶" }, - { "发干", "發乾" }, - { "发庄", "發莊" }, - { "发廊", "髮廊" }, - { "发式", "髮式" }, - { "发引千钧", "髮引千鈞" }, - { "发指", "髮指" }, - { "发松", "發鬆" }, - { "发根", "髮根" }, - { "发汗药", "發汗藥" }, - { "发油", "髮油" }, - { "发漂", "髮漂" }, - { "发状", "髮狀" }, - { "发癣", "髮癬" }, - { "发着", "發著" }, - { "发短心长", "髮短心長" }, - { "发禁", "髮禁" }, - { "发笺", "髮箋" }, - { "发签", "發籤" }, - { "发纱", "髮紗" }, - { "发结", "髮結" }, - { "发网", "髮網" }, - { "发肤", "髮膚" }, - { "发胶", "髮膠" }, - { "发脚", "髮腳" }, - { "发菜", "髮菜" }, - { "发蒙", "發矇" }, - { "发蜡", "髮蠟" }, - { "发踊冲冠", "髮踊沖冠" }, - { "发辫", "髮辮" }, - { "发针", "髮針" }, - { "发钗", "髮釵" }, - { "发长", "髮長" }, - { "发际", "髮際" }, - { "发雕", "髮雕" }, - { "发霜", "髮霜" }, - { "发面", "發麵" }, - { "发饰", "髮飾" }, - { "发髻", "髮髻" }, - { "发鬓", "髮鬢" }, - { "取舍", "取捨" }, - { "受托", "受託" }, - { "变", "變" }, - { "变丑", "變醜" }, - { "变征", "變徵" }, - { "变脏", "變髒" }, - { "叙", "敘" }, - { "叠", "疊" }, - { "口干", "口乾" }, - { "口腹之欲", "口腹之慾" }, - { "口里", "口裡" }, - { "口钟", "口鐘" }, - { "古书云", "古書云" }, - { "古書云", "古書云" }, - { "古朴", "古樸" }, - { "古柯咸", "古柯鹹" }, - { "古語云", "古語云" }, - { "古迹", "古迹" }, - { "古钟", "古鐘" }, - { "古钟表", "古鐘錶" }, - { "另辟", "另闢" }, - { "叩钟", "叩鐘" }, - { "只冲", "只衝" }, - { "只占", "只佔" }, - { "只字", "隻字" }, - { "只影", "隻影" }, - { "只手遮天", "隻手遮天" }, - { "只眼", "隻眼" }, - { "只言片语", "隻言片語" }, - { "只身", "隻身" }, - { "只采", "只採" }, - { "叮叮当当", "叮叮噹噹" }, - { "叮当", "叮噹" }, - { "可以克制", "可以剋制" }, - { "可紧可松", "可緊可鬆" }, - { "台子", "檯子" }, - { "台布", "檯布" }, - { "台灯", "檯燈" }, - { "台球", "檯球" }, - { "台钟", "台鐘" }, - { "台面", "檯面" }, - { "台风", "颱風" }, - { "叱咤乐坛", "叱咤樂壇" }, - { "叱咤叱叱咤", "叱咤叱叱咤" }, - { "叱咤咤", "叱咤咤" }, - { "叱咤樂壇", "叱咤樂壇" }, - { "叶", "葉" }, - { "叶不二子", "叶不二子" }, - { "叶叶琴", "葉叶琴" }, - { "叶志穗", "叶志穗" }, - { "叶恭弘", "叶恭弘" }, - { "叶音", "叶音" }, - { "叶韵", "叶韻" }, - { "号", "號" }, - { "号志", "號誌" }, - { "叹", "嘆" }, - { "叽", "嘰" }, - { "吁天", "籲天" }, - { "吁求", "籲求" }, - { "吁请", "籲請" }, - { "吃姜", "吃薑" }, - { "吃板刀面", "吃板刀麵" }, - { "吃着不尽", "吃著不盡" }, - { "吃药", "吃藥" }, - { "吃辣面", "吃辣麵" }, - { "吃里扒外", "吃裡扒外" }, - { "吃里爬外", "吃裡爬外" }, - { "吃错药", "吃錯藥" }, - { "各类钟", "各類鐘" }, - { "各辟", "各闢" }, - { "合伙", "合夥" }, - { "合准", "合準" }, - { "合历", "合曆" }, - { "合并", "合併" }, - { "合府", "閤府" }, - { "合着", "合著" }, - { "合采", "合採" }, - { "吊丧", "弔喪" }, - { "吊书", "弔書" }, - { "吊儿郎当", "弔兒郎當" }, - { "吊卷", "弔卷" }, - { "吊取", "弔取" }, - { "吊古", "弔古" }, - { "吊唁", "弔唁" }, - { "吊喉", "弔喉" }, - { "吊喭", "弔喭" }, - { "吊场", "弔場" }, - { "吊头", "弔頭" }, - { "吊奠", "弔奠" }, - { "吊孝", "弔孝" }, - { "吊客", "弔客" }, - { "吊宴", "弔宴" }, - { "吊带", "弔帶" }, - { "吊影", "弔影" }, - { "吊慰", "弔慰" }, - { "吊扣", "弔扣" }, - { "吊拷", "弔拷" }, - { "吊拷绷扒", "弔拷繃扒" }, - { "吊挂", "弔掛" }, - { "吊挂着", "吊掛著" }, - { "吊撒", "弔撒" }, - { "吊文", "弔文" }, - { "吊旗", "弔旗" }, - { "吊杆", "吊杆" }, - { "吊桥", "弔橋" }, - { "吊死", "弔死" }, - { "吊民", "弔民" }, - { "吊着", "吊著" }, - { "吊祭", "弔祭" }, - { "吊纸", "弔紙" }, - { "吊者大悦", "弔者大悅" }, - { "吊脚儿事", "弔腳兒事" }, - { "吊腰撒跨", "弔腰撒跨" }, - { "吊膀子", "弔膀子" }, - { "吊词", "弔詞" }, - { "吊诡", "弔詭" }, - { "吊谎", "弔謊" }, - { "吊贺迎送", "弔賀迎送" }, - { "吊钟", "吊鐘" }, - { "吊问", "弔問" }, - { "吊颈", "弔頸" }, - { "吊鹤", "弔鶴" }, - { "同伙", "同夥" }, - { "同余", "同餘" }, - { "后", "後" }, - { "后丰", "后豐" }, - { "后冠", "后冠" }, - { "后北街", "后北街" }, - { "后发座", "后髮座" }, - { "后发星系团", "后髮星系團" }, - { "后土", "后土" }, - { "后妃", "后妃" }, - { "后安路", "后安路" }, - { "后平路", "后平路" }, - { "后座", "后座" }, - { "后海湾", "后海灣" }, - { "后海灣", "后海灣" }, - { "后瑞站", "后瑞站" }, - { "后稷", "后稷" }, - { "后羿", "后羿" }, - { "后街", "后街" }, - { "后角", "后角" }, - { "后豐", "后豐" }, - { "后里", "后里" }, - { "后髮座", "后髮座" }, - { "后髮星系團", "后髮星系團" }, - { "向导", "嚮導" }, - { "向应", "嚮應" }, - { "向往", "嚮往" }, - { "向着", "向著" }, - { "向迩", "嚮邇" }, - { "吓", "嚇" }, - { "吕", "呂" }, - { "吕后", "呂后" }, - { "吗", "嗎" }, - { "吞并", "吞併" }, - { "吟游", "吟遊" }, - { "吣", "唚" }, - { "吨", "噸" }, - { "含齿戴发", "含齒戴髮" }, - { "听", "聽" }, - { "启", "啟" }, - { "吴", "吳" }, - { "吹发", "吹髮" }, - { "吹干", "吹乾" }, - { "吹胡", "吹鬍" }, - { "呂后", "呂后" }, - { "呆串了皮", "獃串了皮" }, - { "呆事", "獃事" }, - { "呆人", "獃人" }, - { "呆呆", "獃獃" }, - { "呆头", "獃頭" }, - { "呆子", "獃子" }, - { "呆性", "獃性" }, - { "呆想", "獃想" }, - { "呆憨呆", "獃憨獃" }, - { "呆根", "獃根" }, - { "呆气", "獃氣" }, - { "呆滞", "獃滯" }, - { "呆痴", "獃痴" }, - { "呆着", "獃著" }, - { "呆磕", "獃磕" }, - { "呆等", "獃等" }, - { "呆脑", "獃腦" }, - { "呆致致", "呆緻緻" }, - { "呆话", "獃話" }, - { "呆里呆气", "呆裡呆氣" }, - { "呐", "吶" }, - { "呒", "嘸" }, - { "呓", "囈" }, - { "呕", "嘔" }, - { "呖", "嚦" }, - { "呗", "唄" }, - { "呗赞", "唄讚" }, - { "员", "員" }, - { "呙", "咼" }, - { "呛", "嗆" }, - { "呜", "嗚" }, - { "周历", "周曆" }, - { "周后", "周后" }, - { "周庄王", "周莊王" }, - { "周杰倫", "周杰倫" }, - { "周游", "周遊" }, - { "周游世界", "週遊世界" }, - { "呼吁", "呼籲" }, - { "和克制", "和剋制" }, - { "和奸", "和姦" }, - { "咎征", "咎徵" }, - { "咏", "詠" }, - { "咕咕钟", "咕咕鐘" }, - { "咙", "嚨" }, - { "咛", "嚀" }, - { "咤", "吒" }, - { "咨询", "諮詢" }, - { "咬姜呷醋", "咬薑呷醋" }, - { "咯当", "咯噹" }, - { "咳嗽药", "咳嗽藥" }, - { "咸卤", "鹹鹵" }, - { "咸味", "鹹味" }, - { "咸咸", "鹹鹹" }, - { "咸嘴淡舌", "鹹嘴淡舌" }, - { "咸土", "鹹土" }, - { "咸度", "鹹度" }, - { "咸得", "鹹得" }, - { "咸批", "鹹批" }, - { "咸水", "鹹水" }, - { "咸汤", "鹹湯" }, - { "咸派", "鹹派" }, - { "咸海", "鹹海" }, - { "咸淡", "鹹淡" }, - { "咸湖", "鹹湖" }, - { "咸潟", "鹹潟" }, - { "咸猪肉", "鹹豬肉" }, - { "咸的", "鹹的" }, - { "咸类", "鹹類" }, - { "咸粥", "鹹粥" }, - { "咸肉", "鹹肉" }, - { "咸菜", "鹹菜" }, - { "咸菜干", "鹹菜乾" }, - { "咸蛋", "鹹蛋" }, - { "咸食", "鹹食" }, - { "咸鱼", "鹹魚" }, - { "咸鸭蛋", "鹹鴨蛋" }, - { "哀吊", "哀弔" }, - { "哀挽", "哀輓" }, - { "品汇", "品彙" }, - { "哄动", "鬨動" }, - { "哄堂", "鬨堂" }, - { "哄笑", "鬨笑" }, - { "响", "響" }, - { "响钟", "響鐘" }, - { "哑", "啞" }, - { "哒", "噠" }, - { "哓", "嘵" }, - { "哔", "嗶" }, - { "哕", "噦" }, - { "哗", "嘩" }, - { "哙", "噲" }, - { "哜", "嚌" }, - { "哝", "噥" }, - { "哟", "喲" }, - { "哪里", "哪裡" }, - { "哭脏", "哭髒" }, - { "唁吊", "唁弔" }, - { "唇干", "唇乾" }, - { "唛", "嘜" }, - { "唠", "嘮" }, - { "唢", "嗩" }, - { "唤", "喚" }, - { "唱游", "唱遊" }, - { "唾余", "唾餘" }, - { "唾面自干", "唾面自乾" }, - { "商历", "商曆" }, - { "啧", "嘖" }, - { "啬", "嗇" }, - { "啭", "囀" }, - { "啮", "嚙" }, - { "啷当", "啷噹" }, - { "啸", "嘯" }, - { "喂乳", "餵乳" }, - { "喂了", "餵了" }, - { "喂养", "餵養" }, - { "喂奶", "餵奶" }, - { "喂猪", "餵豬" }, - { "喂给", "餵給" }, - { "喂羊", "餵羊" }, - { "喂过", "餵過" }, - { "喂食", "餵食" }, - { "喂饱", "餵飽" }, - { "喂驴", "餵驢" }, - { "喂鱼", "餵魚" }, - { "喂鸡", "餵雞" }, - { "喂鸭", "餵鴨" }, - { "喂鹅", "餵鵝" }, - { "喜欢表", "喜歡錶" }, - { "喜欢钟", "喜歡鐘" }, - { "喝干", "喝乾" }, - { "喧哄", "喧鬨" }, - { "喷", "噴" }, - { "喷洒", "噴洒" }, - { "喽", "嘍" }, - { "喾", "嚳" }, - { "嗑药", "嗑藥" }, - { "嗫", "囁" }, - { "嗳", "噯" }, - { "嘀嗒的表", "嘀嗒的錶" }, - { "嘉肴", "嘉肴" }, - { "嘉谷", "嘉穀" }, - { "嘘", "噓" }, - { "嘤", "嚶" }, - { "嘱", "囑" }, - { "嘱托", "囑託" }, - { "嘴里", "嘴裡" }, - { "噙齿戴发", "噙齒戴髮" }, - { "噜", "嚕" }, - { "噜苏", "嚕囌" }, - { "嚣", "囂" }, - { "嚼谷", "嚼穀" }, - { "囉囉苏苏", "囉囉囌囌" }, - { "囉苏", "囉囌" }, - { "四余", "四餘" }, - { "四出", "四齣" }, - { "四出征收", "四出徵收" }, - { "四分历", "四分曆" }, - { "四只", "四隻" }, - { "四扎", "四紮" }, - { "四舍五入", "四捨五入" }, - { "四舍六入", "四捨六入" }, - { "四面钟", "四面鐘" }, - { "回光返照", "迴光返照" }, - { "回历", "回曆" }, - { "回向", "迴向" }, - { "回响", "迴響" }, - { "回圈", "迴圈" }, - { "回廊", "迴廊" }, - { "回形夹", "迴形夾" }, - { "回文", "迴文" }, - { "回旋", "迴旋" }, - { "回流", "迴流" }, - { "回游", "回遊" }, - { "回环", "迴環" }, - { "回着", "回著" }, - { "回纹针", "迴紋針" }, - { "回绕", "迴繞" }, - { "回翔", "迴翔" }, - { "回肠", "迴腸" }, - { "回荡", "回蕩" }, - { "回诵", "迴誦" }, - { "回路", "迴路" }, - { "回转", "迴轉" }, - { "回递性", "迴遞性" }, - { "回避", "迴避" }, - { "回采", "回採" }, - { "回銮", "迴鑾" }, - { "回阳荡气", "回陽蕩氣" }, - { "回音", "迴音" }, - { "回风", "迴風" }, - { "团", "團" }, - { "团子", "糰子" }, - { "园", "園" }, - { "园游会", "園遊會" }, - { "园里", "園裡" }, - { "困乏", "睏乏" }, - { "困倦", "睏倦" }, - { "困兽之斗", "困獸之鬥" }, - { "困兽犹斗", "困獸猶鬥" }, - { "困斗", "困鬥" }, - { "困觉", "睏覺" }, - { "囱", "囪" }, - { "围", "圍" }, - { "囵", "圇" }, - { "固征", "固徵" }, - { "国", "國" }, - { "国之桢干", "國之楨榦" }, - { "国仇", "國讎" }, - { "国历", "國曆" }, - { "图", "圖" }, - { "图里", "圖裡" }, - { "图鉴", "圖鑑" }, - { "圆", "圓" }, - { "圈占", "圈佔" }, - { "圈子里", "圈子裡" }, - { "圈梁", "圈樑" }, - { "圈里", "圈裡" }, - { "土制", "土製" }, - { "土里", "土裡" }, - { "圣", "聖" }, - { "圣后", "聖后" }, - { "在克制", "在剋制" }, - { "地丑德齐", "地醜德齊" }, - { "地克制", "地剋制" }, - { "地占", "地佔" }, - { "地心历表", "地心曆表" }, - { "地志", "地誌" }, - { "圹", "壙" }, - { "场", "場" }, - { "坏", "壞" }, - { "坏于", "坏於" }, - { "坐如钟", "坐如鐘" }, - { "坐庄", "坐莊" }, - { "坐钟", "坐鐘" }, - { "坑里", "坑裡" }, - { "块", "塊" }, - { "坚", "堅" }, - { "坚致", "堅緻" }, - { "坛", "壇" }, - { "坛坛罐罐", "罈罈罐罐" }, - { "坛子", "罈子" }, - { "坛騞", "罈騞" }, - { "坜", "壢" }, - { "坝", "壩" }, - { "坞", "塢" }, - { "坟", "墳" }, - { "坠", "墜" }, - { "坤范", "坤範" }, - { "坦荡", "坦蕩" }, - { "坦荡荡", "坦蕩蕩" }, - { "坱郁", "坱鬱" }, - { "垂发", "垂髮" }, - { "垂范", "垂範" }, - { "垄", "壟" }, - { "垆", "壚" }, - { "型范", "型範" }, - { "垒", "壘" }, - { "垦", "墾" }, - { "垦复", "墾複" }, - { "垦辟", "墾闢" }, - { "垩", "堊" }, - { "垫", "墊" }, - { "垭", "埡" }, - { "垲", "塏" }, - { "埃及历", "埃及曆" }, - { "埃及艳后", "埃及豔后" }, - { "埃荣冲", "埃榮衝" }, - { "埋头寻表", "埋頭尋錶" }, - { "埋头寻钟", "埋頭尋鐘" }, - { "城里", "城裡" }, - { "埔裡社撫墾局", "埔裏社撫墾局" }, - { "埔里社抚垦局", "埔裏社撫墾局" }, - { "埘", "塒" }, - { "埙", "塤" }, - { "埚", "堝" }, - { "埯", "垵" }, - { "基准", "基準" }, - { "基干", "基幹" }, - { "堑", "塹" }, - { "堕", "墮" }, - { "堕胎药", "墮胎藥" }, - { "堙淀", "堙澱" }, - { "塞药", "塞藥" }, - { "墓志", "墓誌" }, - { "墙", "牆" }, - { "墙里", "牆裡" }, - { "增辟", "增闢" }, - { "墨沈未干", "墨瀋未乾" }, - { "壮", "壯" }, - { "壮游", "壯遊" }, - { "壮面", "壯麵" }, - { "声", "聲" }, - { "壳", "殼" }, - { "壳里", "殼裡" }, - { "壶", "壺" }, - { "壶里", "壺裡" }, - { "壹郁", "壹鬱" }, - { "处", "處" }, - { "备", "備" }, - { "备注", "備註" }, - { "复", "復" }, - { "复习", "複習" }, - { "复亩珍", "複畝珍" }, - { "复仞年如", "複仞年如" }, - { "复以百万", "複以百萬" }, - { "复位", "複位" }, - { "复信", "複信" }, - { "复元音", "複元音" }, - { "复写", "複寫" }, - { "复决", "複決" }, - { "复函数", "複函數" }, - { "复分数", "複分數" }, - { "复分析", "複分析" }, - { "复分解", "複分解" }, - { "复列", "複列" }, - { "复利", "複利" }, - { "复制", "複製" }, - { "复印", "複印" }, - { "复发", "複發" }, - { "复变函数", "複變函數" }, - { "复句", "複句" }, - { "复叶", "複葉" }, - { "复合", "複合" }, - { "复名", "複名" }, - { "复员", "複員" }, - { "复壁", "複壁" }, - { "复壮", "複壯" }, - { "复复", "複復" }, - { "复姓", "複姓" }, - { "复字键", "複字鍵" }, - { "复审", "複審" }, - { "复对数", "複對數" }, - { "复平面", "複平面" }, - { "复式", "複式" }, - { "复数", "複數" }, - { "复本", "複本" }, - { "复杂", "複雜" }, - { "复查", "複查" }, - { "复核", "複核" }, - { "复检", "複檢" }, - { "复次", "複次" }, - { "复比", "複比" }, - { "复活节历表", "復活節曆表" }, - { "复流", "複流" }, - { "复测", "複測" }, - { "复电", "複電" }, - { "复目", "複目" }, - { "复眼", "複眼" }, - { "复种", "複種" }, - { "复线", "複線" }, - { "复色", "複色" }, - { "复议", "複議" }, - { "复评", "複評" }, - { "复诊", "複診" }, - { "复词", "複詞" }, - { "复试", "複試" }, - { "复课", "複課" }, - { "复赛", "複賽" }, - { "复辅音", "複輔音" }, - { "复述", "複述" }, - { "复选", "複選" }, - { "复钱", "複錢" }, - { "复阅", "複閱" }, - { "复音", "複音" }, - { "复韵", "複韻" }, - { "夏于乔", "夏于喬" }, - { "夏于喬", "夏于喬" }, - { "夏历", "夏曆" }, - { "夏天里", "夏天裡" }, - { "夏日里", "夏日裡" }, - { "夏游", "夏遊" }, - { "外制", "外製" }, - { "外强中干", "外強中乾" }, - { "多丑", "多醜" }, - { "多么", "多麼" }, - { "多余", "多餘" }, - { "多冲", "多衝" }, - { "多占", "多佔" }, - { "多只", "多隻" }, - { "夜光表", "夜光錶" }, - { "夜游", "夜遊" }, - { "夜里", "夜裡" }, - { "够", "夠" }, - { "够克制", "夠剋制" }, - { "大伙", "大夥" }, - { "大历", "大曆" }, - { "大只", "大隻" }, - { "大呆", "大獃" }, - { "大周折", "大週摺" }, - { "大型钟", "大型鐘" }, - { "大干", "大幹" }, - { "大批涌到", "大批湧到" }, - { "大折儿", "大摺兒" }, - { "大明历", "大明曆" }, - { "大曲", "大麴" }, - { "大本钟", "大本鐘" }, - { "大病初愈", "大病初癒" }, - { "大目干连", "大目乾連" }, - { "大笨钟", "大笨鐘" }, - { "大蜡", "大蜡" }, - { "大衍历", "大衍曆" }, - { "大言非夸", "大言非夸" }, - { "大赞", "大讚" }, - { "大钟", "大鐘" }, - { "大锤", "大鎚" }, - { "天克地冲", "天克地衝" }, - { "天历", "天曆" }, - { "天后", "天后" }, - { "天地为范", "天地為範" }, - { "天干物燥", "天乾物燥" }, - { "天文历表", "天文曆表" }, - { "天文学钟", "天文學鐘" }, - { "天文钟", "天文鐘" }, - { "太仆", "太僕" }, - { "太初历", "太初曆" }, - { "太后", "太后" }, - { "夯干", "夯幹" }, - { "头", "頭" }, - { "头发", "頭髮" }, - { "头巾吊在水里", "頭巾弔在水裡" }, - { "头里", "頭裡" }, - { "夸", "誇" }, - { "夸丽", "夸麗" }, - { "夸人", "夸人" }, - { "夸克", "夸克" }, - { "夸多斗靡", "誇多鬥靡" }, - { "夸夸其谈", "夸夸其談" }, - { "夸姣", "夸姣" }, - { "夸容", "夸容" }, - { "夸毗", "夸毗" }, - { "夸父", "夸父" }, - { "夸特", "夸特" }, - { "夸脱", "夸脫" }, - { "夸诞", "夸誕" }, - { "夸赞", "誇讚" }, - { "夹", "夾" }, - { "夺", "奪" }, - { "夺斗", "奪鬥" }, - { "奁", "奩" }, - { "奂", "奐" }, - { "奇丑", "奇醜" }, - { "奇迹", "奇蹟" }, - { "奋", "奮" }, - { "奋斗", "奮鬥" }, - { "奏折", "奏摺" }, - { "奖", "獎" }, - { "奖杯", "獎盃" }, - { "奥", "奧" }, - { "奥占", "奧佔" }, - { "女仆", "女僕" }, - { "女佣", "女傭" }, - { "奴仆", "奴僕" }, - { "奸夫", "姦夫" }, - { "奸妇", "姦婦" }, - { "奸宄", "姦宄" }, - { "奸情", "姦情" }, - { "奸杀", "姦殺" }, - { "奸污", "姦汙" }, - { "奸淫", "姦淫" }, - { "奸猾", "姦猾" }, - { "奸细", "姦細" }, - { "奸邪", "姦邪" }, - { "她克制", "她剋制" }, - { "好丑", "好醜" }, - { "好呆", "好獃" }, - { "好困", "好睏" }, - { "好家伙", "好傢夥" }, - { "好干", "好乾" }, - { "好斗", "好鬥" }, - { "好签", "好籤" }, - { "如果干", "如果幹" }, - { "如饥似渴", "如饑似渴" }, - { "妆", "妝" }, - { "妇", "婦" }, - { "妈", "媽" }, - { "妖后", "妖后" }, - { "妙药", "妙藥" }, - { "妩", "嫵" }, - { "妪", "嫗" }, - { "妫", "媯" }, - { "委托", "委託" }, - { "姗", "姍" }, - { "姜丝", "薑絲" }, - { "姜文杰", "姜文杰" }, - { "姜是老的辣", "薑是老的辣" }, - { "姜末", "薑末" }, - { "姜桂", "薑桂" }, - { "姜母", "薑母" }, - { "姜汁", "薑汁" }, - { "姜汤", "薑湯" }, - { "姜片", "薑片" }, - { "姜糖", "薑糖" }, - { "姜老辣", "薑老辣" }, - { "姜茶", "薑茶" }, - { "姜蓉", "薑蓉" }, - { "姜饼", "薑餅" }, - { "姜黄", "薑黃" }, - { "姹", "奼" }, - { "威棱", "威稜" }, - { "娄", "婁" }, - { "娅", "婭" }, - { "娆", "嬈" }, - { "娇", "嬌" }, - { "娈", "孌" }, - { "娱", "娛" }, - { "娲", "媧" }, - { "娲杆", "媧杆" }, - { "娴", "嫻" }, - { "婢仆", "婢僕" }, - { "婴", "嬰" }, - { "婵", "嬋" }, - { "婶", "嬸" }, - { "媪", "媼" }, - { "嫌凶", "嫌兇" }, - { "嫌好道丑", "嫌好道醜" }, - { "嫒", "嬡" }, - { "嫔", "嬪" }, - { "嫱", "嬙" }, - { "嬉游", "嬉遊" }, - { "嬖幸", "嬖倖" }, - { "嬴余", "嬴餘" }, - { "嬷", "嬤" }, - { "子之丰兮", "子之丰兮" }, - { "子云", "子云" }, - { "字汇", "字彙" }, - { "字里行间", "字裡行間" }, - { "存折", "存摺" }, - { "孙", "孫" }, - { "学", "學" }, - { "学里", "學裡" }, - { "孪", "孿" }, - { "宁", "寧" }, - { "宇宙志", "宇宙誌" }, - { "安沈铁路", "安瀋鐵路" }, - { "安眠药", "安眠藥" }, - { "安胎药", "安胎藥" }, - { "宗周钟", "宗周鐘" }, - { "官历", "官曆" }, - { "官地为采", "官地為寀" }, - { "官庄", "官莊" }, - { "定准", "定準" }, - { "定制", "定製" }, - { "宜云", "宜云" }, - { "宝", "寶" }, - { "宝历", "寶曆" }, - { "宝庄", "寶莊" }, - { "宝里宝气", "寶裡寶氣" }, - { "实", "實" }, - { "实干", "實幹" }, - { "宠", "寵" }, - { "审", "審" }, - { "宣泄", "宣洩" }, - { "宦游", "宦遊" }, - { "宪", "憲" }, - { "宫", "宮" }, - { "宫里", "宮裡" }, - { "宴游", "宴遊" }, - { "家丑", "家醜" }, - { "家仆", "家僕" }, - { "家伙", "傢伙" }, - { "家俱", "傢俱" }, - { "家具", "傢具" }, - { "家庄", "家莊" }, - { "家里", "家裡" }, - { "容范", "容範" }, - { "宽", "寬" }, - { "宽余", "寬餘" }, - { "宽宽松松", "寬寬鬆鬆" }, - { "宽松", "寬鬆" }, - { "宾", "賓" }, - { "寄托", "寄託" }, - { "密致", "密緻" }, - { "寇仇", "寇讎" }, - { "寇准", "寇準" }, - { "富余", "富餘" }, - { "寒假里", "寒假裡" }, - { "寒栗", "寒慄" }, - { "寝", "寢" }, - { "寡占", "寡佔" }, - { "寡欲", "寡慾" }, - { "寮采", "寮寀" }, - { "寸发千金", "寸髮千金" }, - { "对", "對" }, - { "对准", "對準" }, - { "对准表", "對準錶" }, - { "对准钟", "對準鐘" }, - { "对折", "對摺" }, - { "对表", "對錶" }, - { "寺钟", "寺鐘" }, - { "寻", "尋" }, - { "导", "導" }, - { "导游", "導遊" }, - { "寿", "壽" }, - { "寿面", "壽麵" }, - { "封后", "封后" }, - { "封面里", "封面裡" }, - { "射雕", "射鵰" }, - { "将", "將" }, - { "将占", "將佔" }, - { "尊后", "尊后" }, - { "小仆", "小僕" }, - { "小价", "小价" }, - { "小伙子", "小夥子" }, - { "小几", "小几" }, - { "小只", "小隻" }, - { "小型钟", "小型鐘" }, - { "小米面", "小米麵" }, - { "少占", "少佔" }, - { "少采", "少採" }, - { "尔", "爾" }, - { "尔冬升", "爾冬陞" }, - { "尘", "塵" }, - { "尝", "嘗" }, - { "尧", "堯" }, - { "就克制", "就剋制" }, - { "就范", "就範" }, - { "就里", "就裡" }, - { "尴", "尷" }, - { "尸", "屍" }, - { "尸位素餐", "尸位素餐" }, - { "尸利", "尸利" }, - { "尸居余气", "尸居餘氣" }, - { "尸弃佛", "尸棄佛" }, - { "尸祝", "尸祝" }, - { "尸禄", "尸祿" }, - { "尸罗精舍", "尸羅精舍" }, - { "尸羅精舍", "尸羅精舍" }, - { "尸臣", "尸臣" }, - { "尸谏", "尸諫" }, - { "尸魂界", "尸魂界" }, - { "尸鸠", "尸鳩" }, - { "尽", "盡" }, - { "尽先", "儘先" }, - { "尽其所有", "儘其所有" }, - { "尽力", "儘力" }, - { "尽可能", "儘可能" }, - { "尽尽", "儘儘" }, - { "尽快", "儘快" }, - { "尽早", "儘早" }, - { "尽是", "儘是" }, - { "尽管", "儘管" }, - { "尽速", "儘速" }, - { "尽量克制", "盡量剋制" }, - { "局里", "局裡" }, - { "屁股大吊了心", "屁股大弔了心" }, - { "层", "層" }, - { "屉", "屜" }, - { "届", "屆" }, - { "屋子里", "屋子裡" }, - { "屋梁", "屋樑" }, - { "屋里", "屋裡" }, - { "属", "屬" }, - { "属托", "屬託" }, - { "屡", "屢" }, - { "屡顾尔仆", "屢顧爾僕" }, - { "屦", "屨" }, - { "屯扎", "屯紮" }, - { "屯里", "屯裡" }, - { "山岳", "山嶽" }, - { "山崩钟应", "山崩鐘應" }, - { "山庄", "山莊" }, - { "山梁", "山樑" }, - { "山棱", "山稜" }, - { "山洞里", "山洞裡" }, - { "山羊胡", "山羊鬍" }, - { "山药", "山藥" }, - { "山里", "山裡" }, - { "山重水复", "山重水複" }, - { "屿", "嶼" }, - { "岁", "歲" }, - { "岁聿云暮", "歲聿云暮" }, - { "岂", "豈" }, - { "岖", "嶇" }, - { "岗", "崗" }, - { "岘", "峴" }, - { "岙", "嶴" }, - { "岚", "嵐" }, - { "岛", "島" }, - { "岭", "嶺" }, - { "岱岳", "岱嶽" }, - { "岳岳", "嶽嶽" }, - { "岳麓", "嶽麓" }, - { "岿", "巋" }, - { "峄", "嶧" }, - { "峡", "峽" }, - { "峤", "嶠" }, - { "峥", "崢" }, - { "峦", "巒" }, - { "峰回", "峰迴" }, - { "峻岭", "峻岭" }, - { "崂", "嶗" }, - { "崃", "崍" }, - { "崖广", "崖广" }, - { "崭", "嶄" }, - { "嵘", "嶸" }, - { "嵝", "嶁" }, - { "嶒棱", "嶒稜" }, - { "巅", "巔" }, - { "川谷", "川穀" }, - { "巡回", "巡迴" }, - { "巡游", "巡遊" }, - { "工致", "工緻" }, - { "左冲右突", "左衝右突" }, - { "巧历", "巧曆" }, - { "巧干", "巧幹" }, - { "巩", "鞏" }, - { "巯", "巰" }, - { "已占", "已佔" }, - { "巴尔干", "巴爾幹" }, - { "巷里", "巷裡" }, - { "币", "幣" }, - { "市占", "市佔" }, - { "市里", "市裡" }, - { "布于", "佈於" }, - { "布庄", "布莊" }, - { "布谷", "布穀" }, - { "布谷鸟钟", "布穀鳥鐘" }, - { "布道", "佈道" }, - { "布雷封锁", "佈雷封鎖" }, - { "布雷的", "佈雷的" }, - { "布雷舰", "佈雷艦" }, - { "布雷艇", "佈雷艇" }, - { "布雷速度", "佈雷速度" }, - { "帅", "帥" }, - { "师", "師" }, - { "师范", "師範" }, - { "希伯来历", "希伯來曆" }, - { "帏", "幃" }, - { "帐", "帳" }, - { "帘", "簾" }, - { "帘子", "帘子" }, - { "帘布", "帘布" }, - { "帜", "幟" }, - { "帝后台", "帝后臺" }, - { "带", "帶" }, - { "带发修行", "帶髮修行" }, - { "带征", "帶徵" }, - { "帧", "幀" }, - { "席卷", "席捲" }, - { "帮", "幫" }, - { "帮佣", "幫傭" }, - { "帱", "幬" }, - { "帻", "幘" }, - { "帼", "幗" }, - { "幂", "冪" }, - { "幞", "襆" }, - { "干上", "幹上" }, - { "干下去", "幹下去" }, - { "干不了", "幹不了" }, - { "干不成", "幹不成" }, - { "干丝", "乾絲" }, - { "干个", "幹個" }, - { "干个够", "乾個夠" }, - { "干么", "幹麼" }, - { "干乔", "乾喬" }, - { "干了", "幹了" }, - { "干事", "幹事" }, - { "干井", "乾井" }, - { "干些", "幹些" }, - { "干产", "乾產" }, - { "干亲", "乾親" }, - { "干人", "幹人" }, - { "干什么", "幹什麼" }, - { "干儿", "乾兒" }, - { "干冰", "乾冰" }, - { "干冷", "乾冷" }, - { "干净", "乾淨" }, - { "干凉", "乾涼" }, - { "干刍", "乾芻" }, - { "干刻版", "乾刻版" }, - { "干剥剥", "乾剝剝" }, - { "干办", "幹辦" }, - { "干劲", "幹勁" }, - { "干劲冲天", "幹勁沖天" }, - { "干卦", "乾卦" }, - { "干台", "乾颱" }, - { "干号", "乾號" }, - { "干吊着下巴", "乾吊著下巴" }, - { "干吏", "幹吏" }, - { "干吗", "幹嗎" }, - { "干呕", "乾嘔" }, - { "干员", "幹員" }, - { "干和", "乾和" }, - { "干咳", "乾咳" }, - { "干咽", "乾咽" }, - { "干哕", "乾噦" }, - { "干哥", "乾哥" }, - { "干哭", "乾哭" }, - { "干唱", "乾唱" }, - { "干啥", "幹啥" }, - { "干啼", "乾啼" }, - { "干嘛", "幹嘛" }, - { "干嚎", "乾嚎" }, - { "干回付", "乾回付" }, - { "干圆洁净", "乾圓潔淨" }, - { "干地", "乾地" }, - { "干坏事", "幹壞事" }, - { "干坞", "乾塢" }, - { "干坤", "乾坤" }, - { "干头", "幹頭" }, - { "干女", "乾女" }, - { "干奴才", "乾奴才" }, - { "干妈", "乾媽" }, - { "干妹", "乾妹" }, - { "干姊", "乾姊" }, - { "干姜", "乾薑" }, - { "干娘", "乾娘" }, - { "干子", "乾子" }, - { "干季", "乾季" }, - { "干完", "幹完" }, - { "干家", "幹家" }, - { "干将", "幹將" }, - { "干尸", "乾屍" }, - { "干屎橛", "乾屎橛" }, - { "干巴", "乾巴" }, - { "干干", "乾乾" }, - { "干干净净", "乾乾淨淨" }, - { "干式", "乾式" }, - { "干弟", "乾弟" }, - { "干当", "幹當" }, - { "干得", "幹得" }, - { "干急", "乾急" }, - { "干性", "乾性" }, - { "干性油", "幹性油" }, - { "干才", "幹才" }, - { "干打雷", "乾打雷" }, - { "干折", "乾折" }, - { "干掉", "幹掉" }, - { "干探", "幹探" }, - { "干撂台", "乾撂台" }, - { "干撇下", "乾撇下" }, - { "干擦", "乾擦" }, - { "干支剌", "乾支剌" }, - { "干支支", "乾支支" }, - { "干料", "乾料" }, - { "干旱", "乾旱" }, - { "干暖", "乾暖" }, - { "干材", "乾材" }, - { "干村沙", "乾村沙" }, - { "干杯", "乾杯" }, - { "干果", "乾果" }, - { "干枯", "乾枯" }, - { "干柴", "乾柴" }, - { "干校", "幹校" }, - { "干梅", "乾梅" }, - { "干死", "乾死" }, - { "干池", "乾池" }, - { "干沟", "乾溝" }, - { "干没", "乾沒" }, - { "干洗", "乾洗" }, - { "干活", "幹活" }, - { "干流", "幹流" }, - { "干济", "幹濟" }, - { "干涩", "乾澀" }, - { "干涸", "乾涸" }, - { "干渠", "乾渠" }, - { "干渴", "乾渴" }, - { "干湿", "乾濕" }, - { "干漆", "乾漆" }, - { "干灯盏", "乾燈盞" }, - { "干热", "乾熱" }, - { "干熬", "乾熬" }, - { "干熱", "乾熱" }, - { "干燥", "乾燥" }, - { "干父之蛊", "幹父之蠱" }, - { "干爸", "乾爸" }, - { "干爹", "乾爹" }, - { "干爽", "乾爽" }, - { "干片", "乾片" }, - { "干球温度", "幹球溫度" }, - { "干甚么", "幹甚麼" }, - { "干生受", "乾生受" }, - { "干生子", "乾生子" }, - { "干田", "乾田" }, - { "干电", "乾電" }, - { "干略", "幹略" }, - { "干疥", "乾疥" }, - { "干瘦", "乾瘦" }, - { "干瘪", "乾癟" }, - { "干瘾", "乾癮" }, - { "干癣", "乾癬" }, - { "干白儿", "乾白兒" }, - { "干的", "乾的" }, - { "干的停当", "幹的停當" }, - { "干眼", "乾眼" }, - { "干着", "乾著" }, - { "干着急", "干著急" }, - { "干瞪眼", "乾瞪眼" }, - { "干礼", "乾禮" }, - { "干稿", "乾稿" }, - { "干笑", "乾笑" }, - { "干等", "乾等" }, - { "干篾片", "乾篾片" }, - { "干粉", "乾粉" }, - { "干粮", "乾糧" }, - { "干糇", "乾餱" }, - { "干系", "干係" }, - { "干細胞", "幹細胞" }, - { "干纲", "乾綱" }, - { "干线", "幹線" }, - { "干练", "幹練" }, - { "干细胞", "幹細胞" }, - { "干结", "乾結" }, - { "干绷", "乾繃" }, - { "干缺", "幹缺" }, - { "干群关系", "幹群關係" }, - { "干耗", "乾耗" }, - { "干肉片", "乾肉片" }, - { "干股", "乾股" }, - { "干肥", "乾肥" }, - { "干脆", "乾脆" }, - { "干花", "乾花" }, - { "干苔", "乾苔" }, - { "干茨腊", "乾茨臘" }, - { "干茶钱", "乾茶錢" }, - { "干草", "乾草" }, - { "干菜", "乾菜" }, - { "干营生", "幹營生" }, - { "干落", "乾落" }, - { "干薪", "乾薪" }, - { "干虔", "乾虔" }, - { "干蛊", "幹蠱" }, - { "干血浆", "乾血漿" }, - { "干衣", "乾衣" }, - { "干裂", "乾裂" }, - { "干警", "幹警" }, - { "干贝", "乾貝" }, - { "干货", "乾貨" }, - { "干起来", "幹起來" }, - { "干路", "幹路" }, - { "干躁", "乾躁" }, - { "干这一行", "幹這一行" }, - { "干这种事", "幹這種事" }, - { "干逼", "乾逼" }, - { "干道", "幹道" }, - { "干部", "幹部" }, - { "干酪", "乾酪" }, - { "干酵母", "乾酵母" }, - { "干醋", "乾醋" }, - { "干重", "乾重" }, - { "干量", "乾量" }, - { "干阿奶", "乾阿奶" }, - { "干隆", "乾隆" }, - { "干雷", "乾雷" }, - { "干霍乱", "乾霍亂" }, - { "干面", "乾麵" }, - { "干革命", "幹革命" }, - { "干颡", "乾顙" }, - { "干饭", "乾飯" }, - { "干馆", "乾館" }, - { "干馏", "乾餾" }, - { "干鱼", "乾魚" }, - { "干鲜", "乾鮮" }, - { "平准", "平準" }, - { "平泉庄", "平泉莊" }, - { "年代里", "年代裡" }, - { "年历", "年曆" }, - { "年谷", "年穀" }, - { "年里", "年裡" }, - { "并", "並" }, - { "并一不二", "併一不二" }, - { "并为一体", "併為一體" }, - { "并为一家", "併為一家" }, - { "并产", "併產" }, - { "并入", "併入" }, - { "并兼", "併兼" }, - { "并到", "併到" }, - { "并力", "并力" }, - { "并发型模式", "併發型模式" }, - { "并发模式", "併發模式" }, - { "并发症", "併發症" }, - { "并发重症", "併發重症" }, - { "并叠", "併疊" }, - { "并合", "併合" }, - { "并名", "併名" }, - { "并吞", "并吞" }, - { "并吞下", "併吞下" }, - { "并存着", "並存著" }, - { "并州", "并州" }, - { "并当", "併當" }, - { "并拢", "併攏" }, - { "并日而食", "并日而食" }, - { "并曰入淀", "並曰入澱" }, - { "并案", "併案" }, - { "并流", "併流" }, - { "并火", "併火" }, - { "并科", "併科" }, - { "并线", "併線" }, - { "并网", "併網" }, - { "并肩子", "併肩子" }, - { "并购", "併購" }, - { "并迭", "并迭" }, - { "并除", "併除" }, - { "并骨", "併骨" }, - { "幸免", "倖免" }, - { "幸存", "倖存" }, - { "幸幸", "倖幸" }, - { "幸运胡", "幸運鬍" }, - { "广", "廣" }, - { "广征", "廣徵" }, - { "广舍", "廣捨" }, - { "广部", "广部" }, - { "庄上", "莊上" }, - { "庄严", "莊嚴" }, - { "庄主", "莊主" }, - { "庄农", "莊農" }, - { "庄员", "莊員" }, - { "庄周", "莊周" }, - { "庄园", "莊園" }, - { "庄士顿道", "莊士頓道" }, - { "庄子", "莊子" }, - { "庄客", "莊客" }, - { "庄家", "莊家" }, - { "庄户", "莊戶" }, - { "庄房", "莊房" }, - { "庄敬", "莊敬" }, - { "庄田", "莊田" }, - { "庄稼", "莊稼" }, - { "庄舄越吟", "莊舄越吟" }, - { "庄语", "莊語" }, - { "庄里", "莊裡" }, - { "庄重", "莊重" }, - { "庄院", "莊院" }, - { "庄骚", "莊騷" }, - { "庆", "慶" }, - { "庆历", "慶曆" }, - { "庆吊", "慶弔" }, - { "庐", "廬" }, - { "庑", "廡" }, - { "库", "庫" }, - { "应", "應" }, - { "应克制", "應剋制" }, - { "应征", "應徵" }, - { "应钟", "應鐘" }, - { "店里", "店裡" }, - { "庙", "廟" }, - { "庙里", "廟裡" }, - { "府干", "府幹" }, - { "庞", "龐" }, - { "废", "廢" }, - { "废后", "廢后" }, - { "座钟", "座鐘" }, - { "康庄", "康莊" }, - { "廢后", "廢后" }, - { "廪", "廩" }, - { "延历", "延曆" }, - { "开", "開" }, - { "开吊", "開弔" }, - { "开哄", "開鬨" }, - { "开征", "開徵" }, - { "开药", "開藥" }, - { "开辟", "開闢" }, - { "开采", "開採" }, - { "异", "異" }, - { "弃", "棄" }, - { "弃舍", "棄捨" }, - { "弄丑", "弄醜" }, - { "弄干", "弄乾" }, - { "弄松", "弄鬆" }, - { "弄脏", "弄髒" }, - { "弄鬼吊猴", "弄鬼弔猴" }, - { "弑", "弒" }, - { "引斗", "引鬥" }, - { "弘历", "弘曆" }, - { "张", "張" }, - { "张三丰", "張三丰" }, - { "张乐于张徐", "張樂于張徐" }, - { "张勋", "張勳" }, - { "弥", "彌" }, - { "弥山遍野", "瀰山遍野" }, - { "弥弥", "瀰瀰" }, - { "弥漫", "瀰漫" }, - { "弥漫着", "瀰漫著" }, - { "弪", "弳" }, - { "弯", "彎" }, - { "張三丰", "張三丰" }, - { "弹", "彈" }, - { "弹子台", "彈子檯" }, - { "弹珠台", "彈珠檯" }, - { "弹药", "彈藥" }, - { "强", "強" }, - { "强占", "強佔" }, - { "强奸", "強姦" }, - { "强干", "強幹" }, - { "归", "歸" }, - { "归余", "歸餘" }, - { "归并", "歸併" }, - { "当", "當" }, - { "当准", "當準" }, - { "当啷", "噹啷" }, - { "当当", "噹噹" }, - { "当着", "當著" }, - { "录", "錄" }, - { "录制", "錄製" }, - { "录着", "錄著" }, - { "形单影只", "形單影隻" }, - { "形影相吊", "形影相弔" }, - { "彦", "彥" }, - { "彩带", "綵帶" }, - { "彩排", "綵排" }, - { "彩楼", "綵樓" }, - { "彩牌楼", "綵牌樓" }, - { "彩球", "綵球" }, - { "彩线", "綵線" }, - { "彩绸", "綵綢" }, - { "彩船", "綵船" }, - { "彩衣", "綵衣" }, - { "彭于晏", "彭于晏" }, - { "影后", "影后" }, - { "彻", "徹" }, - { "彼此克制", "彼此剋制" }, - { "往复", "往複" }, - { "往日無仇", "往日無讎" }, - { "往里", "往裡" }, - { "征人", "徵人" }, - { "征令", "徵令" }, - { "征信", "徵信" }, - { "征候", "徵候" }, - { "征兆", "徵兆" }, - { "征兵", "徵兵" }, - { "征到", "徵到" }, - { "征募", "徵募" }, - { "征占", "徵佔" }, - { "征友", "徵友" }, - { "征发", "徵發" }, - { "征召", "徵召" }, - { "征名责实", "徵名責實" }, - { "征吏", "徵吏" }, - { "征启", "徵啟" }, - { "征咎", "徵咎" }, - { "征圣", "徵聖" }, - { "征士", "徵士" }, - { "征婚", "徵婚" }, - { "征实", "徵實" }, - { "征庸", "徵庸" }, - { "征引", "徵引" }, - { "征得", "徵得" }, - { "征怪", "徵怪" }, - { "征才", "徵才" }, - { "征招", "徵招" }, - { "征收", "徵收" }, - { "征效", "徵效" }, - { "征文", "徵文" }, - { "征求", "徵求" }, - { "征状", "徵狀" }, - { "征用", "徵用" }, - { "征税", "徵稅" }, - { "征稿", "徵稿" }, - { "征答", "徵答" }, - { "征结", "徵結" }, - { "征聘", "徵聘" }, - { "征训", "徵訓" }, - { "征询", "徵詢" }, - { "征调", "徵調" }, - { "征象", "徵象" }, - { "征购", "徵購" }, - { "征车", "徵車" }, - { "征辟", "徵辟" }, - { "征迹", "徵跡" }, - { "征选", "徵選" }, - { "征逐", "徵逐" }, - { "征集", "徵集" }, - { "征风召雨", "徵風召雨" }, - { "征验", "徵驗" }, - { "径", "徑" }, - { "很丑", "很醜" }, - { "很凶", "很兇" }, - { "很干", "很乾" }, - { "律历志", "律曆志" }, - { "徐干", "徐幹" }, - { "徒托空言", "徒託空言" }, - { "徕", "徠" }, - { "得克制", "得剋制" }, - { "御侮", "禦侮" }, - { "御寇", "禦寇" }, - { "御寒", "禦寒" }, - { "御敌", "禦敵" }, - { "德占", "德佔" }, - { "心余", "心餘" }, - { "心愿", "心愿" }, - { "心系一", "心繫一" }, - { "心系万", "心繫萬" }, - { "心系东", "心繫東" }, - { "心系两", "心繫兩" }, - { "心系中", "心繫中" }, - { "心系乔", "心繫乔" }, - { "心系五", "心繫五" }, - { "心系京", "心繫京" }, - { "心系人", "心繫人" }, - { "心系他", "心繫他" }, - { "心系伊", "心繫伊" }, - { "心系众", "心繫眾" }, - { "心系传", "心繫傳" }, - { "心系何", "心繫何" }, - { "心系你", "心繫你" }, - { "心系健", "心繫健" }, - { "心系全", "心繫全" }, - { "心系兰", "心繫蘭" }, - { "心系农", "心繫农" }, - { "心系功", "心繫功" }, - { "心系动", "心繫動" }, - { "心系募", "心繫募" }, - { "心系北", "心繫北" }, - { "心系十", "心繫十" }, - { "心系千", "心繫千" }, - { "心系南", "心繫南" }, - { "心系台", "心繫台" }, - { "心系和", "心繫和" }, - { "心系哪", "心繫哪" }, - { "心系唐", "心繫唐" }, - { "心系嘱", "心繫囑" }, - { "心系四", "心繫四" }, - { "心系困", "心繫困" }, - { "心系国", "心繫國" }, - { "心系在", "心繫在" }, - { "心系地", "心繫地" }, - { "心系大", "心繫大" }, - { "心系天", "心繫天" }, - { "心系夫", "心繫夫" }, - { "心系奥", "心繫奧" }, - { "心系女", "心繫女" }, - { "心系她", "心繫她" }, - { "心系妇", "心繫婦" }, - { "心系妻", "心繫妻" }, - { "心系子", "心繫子" }, - { "心系它", "心繫它" }, - { "心系宣", "心繫宣" }, - { "心系家", "心繫家" }, - { "心系富", "心繫富" }, - { "心系小", "心繫小" }, - { "心系山", "心繫山" }, - { "心系川", "心繫川" }, - { "心系幼", "心繫幼" }, - { "心系广", "心繫廣" }, - { "心系彼", "心繫彼" }, - { "心系德", "心繫德" }, - { "心系您", "心繫您" }, - { "心系慈", "心繫慈" }, - { "心系我", "心繫我" }, - { "心系摩", "心繫摩" }, - { "心系故", "心繫故" }, - { "心系新", "心繫新" }, - { "心系日", "心繫日" }, - { "心系昌", "心繫昌" }, - { "心系晓", "心繫曉" }, - { "心系曼", "心繫曼" }, - { "心系林", "心繫林" }, - { "心系母", "心繫母" }, - { "心系民", "心繫民" }, - { "心系江", "心繫江" }, - { "心系汶", "心繫汶" }, - { "心系沈", "心繫沈" }, - { "心系沙", "心繫沙" }, - { "心系泰", "心繫泰" }, - { "心系浙", "心繫浙" }, - { "心系港", "心繫港" }, - { "心系湖", "心繫湖" }, - { "心系澳", "心繫澳" }, - { "心系灾", "心繫災" }, - { "心系父", "心繫父" }, - { "心系生", "心繫生" }, - { "心系病", "心繫病" }, - { "心系百", "心繫百" }, - { "心系的", "心繫的" }, - { "心系着", "心繫著" }, - { "心系社", "心繫社" }, - { "心系祖", "心繫祖" }, - { "心系神", "心繫神" }, - { "心系红", "心繫紅" }, - { "心系美", "心繫美" }, - { "心系群", "心繫群" }, - { "心系老", "心繫老" }, - { "心系舞", "心繫舞" }, - { "心系英", "心繫英" }, - { "心系茶", "心繫茶" }, - { "心系西", "心繫西" }, - { "心系贫", "心繫貧" }, - { "心系输", "心繫輸" }, - { "心系近", "心繫近" }, - { "心系远", "心繫遠" }, - { "心系选", "心繫選" }, - { "心系重", "心繫重" }, - { "心系长", "心繫長" }, - { "心系阮", "心繫阮" }, - { "心系震", "心繫震" }, - { "心系非", "心繫非" }, - { "心系风", "心繫風" }, - { "心系香", "心繫香" }, - { "心系高", "心繫高" }, - { "心系麦", "心繫麥" }, - { "心系黄", "心繫黃" }, - { "心荡", "心蕩" }, - { "心药", "心藥" }, - { "心里", "心裡" }, - { "心里面", "心裏面" }, - { "心长发短", "心長髮短" }, - { "忆", "憶" }, - { "忏", "懺" }, - { "志哀", "誌哀" }, - { "志喜", "誌喜" }, - { "志庆", "誌慶" }, - { "志异", "誌異" }, - { "忙并", "忙併" }, - { "忙里", "忙裡" }, - { "忙里偷闲", "忙裡偷閒" }, - { "忠仆", "忠僕" }, - { "忧", "憂" }, - { "忧郁", "憂鬱" }, - { "快克制", "快剋制" }, - { "快冲", "快衝" }, - { "快干", "快乾" }, - { "忾", "愾" }, - { "怀", "懷" }, - { "怀表", "懷錶" }, - { "怀里", "懷裡" }, - { "怀钟", "懷鐘" }, - { "态", "態" }, - { "怂", "慫" }, - { "怃", "憮" }, - { "怄", "慪" }, - { "怅", "悵" }, - { "怆", "愴" }, - { "怎么", "怎麼" }, - { "怎么着", "怎麼著" }, - { "怒发冲冠", "怒髮衝冠" }, - { "怜", "憐" }, - { "思如泉涌", "思如泉湧" }, - { "急冲而下", "急衝而下" }, - { "性征", "性徵" }, - { "性欲", "性慾" }, - { "怪里怪气", "怪裡怪氣" }, - { "怫郁", "怫鬱" }, - { "总", "總" }, - { "怼", "懟" }, - { "怿", "懌" }, - { "恂栗", "恂慄" }, - { "恋", "戀" }, - { "恋恋不舍", "戀戀不捨" }, - { "恒", "恆" }, - { "恒生", "恒生" }, - { "恕乏价催", "恕乏价催" }, - { "息交绝游", "息交絕遊" }, - { "息谷", "息穀" }, - { "恰才", "恰纔" }, - { "恳", "懇" }, - { "恳托", "懇託" }, - { "恶", "惡" }, - { "恶心", "噁心" }, - { "恶斗", "惡鬥" }, - { "恶直丑正", "惡直醜正" }, - { "恸", "慟" }, - { "恹", "懨" }, - { "恺", "愷" }, - { "恻", "惻" }, - { "恼", "惱" }, - { "恽", "惲" }, - { "悍药", "悍藥" }, - { "悒郁", "悒鬱" }, - { "悠悠荡荡", "悠悠蕩蕩" }, - { "悠游", "悠遊" }, - { "悠荡", "悠蕩" }, - { "悦", "悅" }, - { "您克制", "您剋制" }, - { "悫", "愨" }, - { "悬", "懸" }, - { "悬梁", "懸樑" }, - { "悬臂梁", "懸臂樑" }, - { "悬钟", "懸鐘" }, - { "悭", "慳" }, - { "悯", "憫" }, - { "悲筑", "悲筑" }, - { "悲郁", "悲鬱" }, - { "悸栗", "悸慄" }, - { "情欲", "情慾" }, - { "惇朴", "惇樸" }, - { "惊", "驚" }, - { "惊赞", "驚讚" }, - { "惊钟", "驚鐘" }, - { "惧", "懼" }, - { "惨", "慘" }, - { "惩", "懲" }, - { "惫", "憊" }, - { "惬", "愜" }, - { "惭", "慚" }, - { "惮", "憚" }, - { "惯", "慣" }, - { "想克制", "想剋制" }, - { "惴栗", "惴慄" }, - { "愈合", "癒合" }, - { "意克制", "意剋制" }, - { "意占", "意佔" }, - { "意大利面", "意大利麵" }, - { "意面", "意麵" }, - { "感冒药", "感冒藥" }, - { "愠", "慍" }, - { "愤", "憤" }, - { "愦", "憒" }, - { "愿", "願" }, - { "愿朴", "愿樸" }, - { "愿而恭", "愿而恭" }, - { "慌里慌张", "慌裡慌張" }, - { "慑", "懾" }, - { "懈松", "懈鬆" }, - { "懑", "懣" }, - { "懒", "懶" }, - { "懔", "懍" }, - { "懔栗", "懍慄" }, - { "懿范", "懿範" }, - { "戆", "戇" }, - { "戋", "戔" }, - { "戏", "戲" }, - { "戏彩娱亲", "戲綵娛親" }, - { "戏里", "戲裡" }, - { "成药", "成藥" }, - { "我克制", "我剋制" }, - { "戗", "戧" }, - { "战", "戰" }, - { "战天斗地", "戰天鬥地" }, - { "战斗", "戰鬥" }, - { "战栗", "戰慄" }, - { "截发", "截髮" }, - { "戬", "戩" }, - { "戬谷", "戩穀" }, - { "戯", "戱" }, - { "戴发含齿", "戴髮含齒" }, - { "戴表", "戴錶" }, - { "户", "戶" }, - { "房里", "房裡" }, - { "所云", "所云" }, - { "所云云", "所云云" }, - { "所占", "所佔" }, - { "所托", "所託" }, - { "扁拟谷盗虫", "扁擬穀盜蟲" }, - { "手冢治虫", "手塚治虫" }, - { "手塚治虫", "手塚治虫" }, - { "手折", "手摺" }, - { "手松", "手鬆" }, - { "手表", "手錶" }, - { "手里", "手裡" }, - { "手里剑", "手裏劍" }, - { "才克制", "才剋制" }, - { "才则", "纔則" }, - { "才干", "才幹" }, - { "才得两年", "纔得兩年" }, - { "才此", "纔此" }, - { "扎上", "紮上" }, - { "扎下", "紮下" }, - { "扎囮", "紮囮" }, - { "扎好", "紮好" }, - { "扎实", "紮實" }, - { "扎寨", "紮寨" }, - { "扎带子", "紮帶子" }, - { "扎成", "紮成" }, - { "扎根", "紮根" }, - { "扎紧", "紮緊" }, - { "扎脚", "紮腳" }, - { "扎营", "紮營" }, - { "扎裹", "紮裹" }, - { "扎诈", "紮詐" }, - { "扎起", "紮起" }, - { "扎铁", "紮鐵" }, - { "扑", "撲" }, - { "扑作教刑", "扑作教刑" }, - { "扑冬", "撲鼕" }, - { "扑冬冬", "撲鼕鼕" }, - { "扑打", "扑打" }, - { "扑挞", "扑撻" }, - { "打出吊入", "打出弔入" }, - { "打卡钟", "打卡鐘" }, - { "打吨", "打吨" }, - { "打干", "打幹" }, - { "打干哕", "打乾噦" }, - { "打并", "打併" }, - { "打拼", "打拚" }, - { "打斗", "打鬥" }, - { "打着钟", "打著鐘" }, - { "打谷", "打穀" }, - { "打路庄板", "打路莊板" }, - { "打钟", "打鐘" }, - { "托买", "託買" }, - { "托了", "託了" }, - { "托事", "託事" }, - { "托交", "託交" }, - { "托人", "託人" }, - { "托付", "託付" }, - { "托儿所", "託兒所" }, - { "托卖", "託賣" }, - { "托古讽今", "託古諷今" }, - { "托名", "託名" }, - { "托命", "託命" }, - { "托咎", "託咎" }, - { "托大", "託大" }, - { "托孤", "託孤" }, - { "托庇", "託庇" }, - { "托故", "託故" }, - { "托梦", "託夢" }, - { "托疾", "託疾" }, - { "托病", "託病" }, - { "托管", "託管" }, - { "托言", "託言" }, - { "托词", "託詞" }, - { "托身", "託身" }, - { "托辞", "託辭" }, - { "托过", "託過" }, - { "托运", "託運" }, - { "托附", "託附" }, - { "扛大梁", "扛大樑" }, - { "扞御", "扞禦" }, - { "执", "執" }, - { "扩", "擴" }, - { "扪", "捫" }, - { "扫", "掃" }, - { "扫荡", "掃蕩" }, - { "扬", "揚" }, - { "扯面", "扯麵" }, - { "扰", "擾" }, - { "扶余国", "扶餘國" }, - { "批复", "批複" }, - { "批斗", "批鬥" }, - { "批注", "批註" }, - { "承制", "承製" }, - { "抑郁", "抑鬱" }, - { "抓奸", "抓姦" }, - { "抓斗", "抓鬥" }, - { "抓药", "抓藥" }, - { "投药", "投藥" }, - { "抗御", "抗禦" }, - { "抗癌药", "抗癌藥" }, - { "抗药", "抗藥" }, - { "折冲", "折衝" }, - { "折叠", "摺疊" }, - { "折合", "摺合" }, - { "折奏", "摺奏" }, - { "折子", "摺子" }, - { "折尺", "摺尺" }, - { "折扇", "摺扇" }, - { "折梯", "摺梯" }, - { "折椅", "摺椅" }, - { "折痕", "摺痕" }, - { "折篷", "摺篷" }, - { "折纸", "摺紙" }, - { "折裙", "摺裙" }, - { "抚", "撫" }, - { "抛", "拋" }, - { "抟", "摶" }, - { "抠", "摳" }, - { "抡", "掄" }, - { "抢", "搶" }, - { "抢占", "搶佔" }, - { "护", "護" }, - { "护发", "護髮" }, - { "报", "報" }, - { "披发", "披髮" }, - { "披头散发", "披頭散髮" }, - { "披榛采兰", "披榛採蘭" }, - { "抱素怀朴", "抱素懷樸" }, - { "抵御", "抵禦" }, - { "抹干", "抹乾" }, - { "抽公签", "抽公籤" }, - { "抽签", "抽籤" }, - { "抿发", "抿髮" }, - { "拂钟无声", "拂鐘無聲" }, - { "担", "擔" }, - { "担仔面", "擔仔麵" }, - { "担担面", "擔擔麵" }, - { "担着", "擔著" }, - { "担负着", "擔負著" }, - { "拆伙", "拆夥" }, - { "拈须", "拈鬚" }, - { "拉克施尔德钟", "拉克施爾德鐘" }, - { "拉杆", "拉杆" }, - { "拉纤", "拉縴" }, - { "拉面", "拉麵" }, - { "拓朴", "拓樸" }, - { "拔发", "拔髮" }, - { "拔须", "拔鬚" }, - { "拗别", "拗彆" }, - { "拙朴", "拙樸" }, - { "拜托", "拜託" }, - { "拟", "擬" }, - { "拢", "攏" }, - { "拣", "揀" }, - { "拥", "擁" }, - { "拦", "攔" }, - { "拧", "擰" }, - { "拧干", "擰乾" }, - { "拨", "撥" }, - { "拨谷", "撥穀" }, - { "择", "擇" }, - { "括发", "括髮" }, - { "拭干", "拭乾" }, - { "拮据", "拮据" }, - { "拼却", "拚卻" }, - { "拼命", "拚命" }, - { "拼斗", "拚鬥" }, - { "拼死", "拚死" }, - { "拼生尽死", "拚生盡死" }, - { "拼绝", "拚絕" }, - { "拼老命", "拚老命" }, - { "拼舍", "拚捨" }, - { "拾沈", "拾瀋" }, - { "拿下表", "拿下錶" }, - { "拿下钟", "拿下鐘" }, - { "拿准", "拿準" }, - { "拿破仑", "拿破崙" }, - { "挂", "掛" }, - { "挂历", "掛曆" }, - { "挂号", "挂號" }, - { "挂图", "挂圖" }, - { "挂帅", "挂帥" }, - { "挂帘", "掛帘" }, - { "挂彩", "挂彩" }, - { "挂念", "挂念" }, - { "挂车", "挂車" }, - { "挂钟", "掛鐘" }, - { "挂钩", "掛鈎" }, - { "挂面", "挂面" }, - { "挌斗", "挌鬥" }, - { "挑大梁", "挑大樑" }, - { "挑斗", "挑鬥" }, - { "挚", "摯" }, - { "挛", "攣" }, - { "挝", "撾" }, - { "挞", "撻" }, - { "挟", "挾" }, - { "挠", "撓" }, - { "挡", "擋" }, - { "挢", "撟" }, - { "挣", "掙" }, - { "挤", "擠" }, - { "挥", "揮" }, - { "挥杆", "揮杆" }, - { "振荡", "振蕩" }, - { "挽曲", "輓曲" }, - { "挽歌", "輓歌" }, - { "挽联", "輓聯" }, - { "挽聯", "輓聯" }, - { "挽詞", "輓詞" }, - { "挽詩", "輓詩" }, - { "挽词", "輓詞" }, - { "挽诗", "輓詩" }, - { "捆扎", "捆紮" }, - { "捉发", "捉髮" }, - { "捉奸", "捉姦" }, - { "捍御", "捍禦" }, - { "捏面人", "捏麵人" }, - { "捞", "撈" }, - { "捞干", "撈乾" }, - { "捞面", "撈麵" }, - { "损", "損" }, - { "捡", "撿" }, - { "换", "換" }, - { "换发", "換髮" }, - { "换只", "換隻" }, - { "换签", "換籤" }, - { "换药", "換藥" }, - { "捣", "搗" }, - { "捣鬼吊白", "搗鬼弔白" }, - { "据", "據" }, - { "据云", "據云" }, - { "据干而窥井底", "據榦而窺井底" }, - { "捵面", "捵麵" }, - { "捶炼", "捶鍊" }, - { "掌柜", "掌柜" }, - { "排骨面", "排骨麵" }, - { "掣签", "掣籤" }, - { "接着说", "接著說" }, - { "推情准理", "推情準理" }, - { "推托", "推託" }, - { "掳", "擄" }, - { "掴", "摑" }, - { "掷", "擲" }, - { "掸", "撣" }, - { "掺", "摻" }, - { "掼", "摜" }, - { "提子干", "提子乾" }, - { "提心吊胆", "提心弔膽" }, - { "握发", "握髮" }, - { "揩干", "揩乾" }, - { "揪发", "揪髮" }, - { "揪采", "揪採" }, - { "揪须", "揪鬚" }, - { "揭丑", "揭醜" }, - { "揽", "攬" }, - { "揿", "撳" }, - { "搀", "攙" }, - { "搁", "擱" }, - { "搂", "摟" }, - { "搅", "攪" }, - { "搋面", "搋麵" }, - { "搏斗", "搏鬥" }, - { "搤肮拊背", "搤肮拊背" }, - { "搬斗", "搬鬥" }, - { "搭伙", "搭夥" }, - { "搭干铺", "搭乾鋪" }, - { "携", "攜" }, - { "搽药", "搽藥" }, - { "摄", "攝" }, - { "摄制", "攝製" }, - { "摅", "攄" }, - { "摆", "擺" }, - { "摆钟", "擺鐘" }, - { "摇", "搖" }, - { "摇摇荡荡", "搖搖蕩蕩" }, - { "摇荡", "搖蕩" }, - { "摈", "擯" }, - { "摊", "攤" }, - { "摧坚获丑", "摧堅獲醜" }, - { "摭采", "摭採" }, - { "摸棱", "摸稜" }, - { "摸钟", "摸鐘" }, - { "撄", "攖" }, - { "撇吊", "撇弔" }, - { "撑", "撐" }, - { "撚须", "撚鬚" }, - { "撞球台", "撞球檯" }, - { "撞钟", "撞鐘" }, - { "撞阵冲军", "撞陣衝軍" }, - { "撤并", "撤併" }, - { "撩斗", "撩鬥" }, - { "撵", "攆" }, - { "撷", "擷" }, - { "撸", "擼" }, - { "撺", "攛" }, - { "擀面", "擀麵" }, - { "操作钟", "操作鐘" }, - { "擞", "擻" }, - { "擢发", "擢髮" }, - { "擦干", "擦乾" }, - { "擦干净", "擦乾淨" }, - { "擦药", "擦藥" }, - { "攒", "攢" }, - { "支干", "支幹" }, - { "支杆", "支杆" }, - { "收获", "收穫" }, - { "改征", "改徵" }, - { "攻占", "攻佔" }, - { "放松", "放鬆" }, - { "放荡", "放蕩" }, - { "放蒙挣", "放懞掙" }, - { "故事里", "故事裡" }, - { "故云", "故云" }, - { "敌", "敵" }, - { "敌忾同仇", "敵愾同讎" }, - { "救药", "救藥" }, - { "教学钟", "教學鐘" }, - { "教范", "教範" }, - { "敛", "斂" }, - { "敢干", "敢幹" }, - { "散伙", "散夥" }, - { "散荡", "散蕩" }, - { "敦朴", "敦樸" }, - { "敬挽", "敬輓" }, - { "数", "數" }, - { "数与虏确", "數與虜确" }, - { "数字钟", "數字鐘" }, - { "数罪并罚", "數罪併罰" }, - { "敲扑", "敲扑" }, - { "敲钟", "敲鐘" }, - { "整发用品", "整髮用品" }, - { "整只", "整隻" }, - { "整庄", "整莊" }, - { "敷药", "敷藥" }, - { "文征明", "文徵明" }, - { "文思泉涌", "文思泉湧" }, - { "斋", "齋" }, - { "斓", "斕" }, - { "斗上", "鬥上" }, - { "斗不过", "鬥不過" }, - { "斗丽", "鬥麗" }, - { "斗了", "鬥了" }, - { "斗争", "鬥爭" }, - { "斗倒", "鬥倒" }, - { "斗分子", "鬥分子" }, - { "斗别气", "鬥彆氣" }, - { "斗力", "鬥力" }, - { "斗劲", "鬥勁" }, - { "斗叠", "鬥疊" }, - { "斗口", "鬥口" }, - { "斗叶儿", "鬥葉兒" }, - { "斗叶子", "鬥葉子" }, - { "斗合", "鬥合" }, - { "斗哄", "鬥鬨" }, - { "斗嘴", "鬥嘴" }, - { "斗地主", "鬥地主" }, - { "斗士", "鬥士" }, - { "斗头", "鬥頭" }, - { "斗富", "鬥富" }, - { "斗巧", "鬥巧" }, - { "斗幌子", "鬥幌子" }, - { "斗弄", "鬥弄" }, - { "斗引", "鬥引" }, - { "斗彩", "鬥彩" }, - { "斗心眼", "鬥心眼" }, - { "斗志", "鬥志" }, - { "斗成", "鬥成" }, - { "斗打", "鬥打" }, - { "斗批改", "鬥批改" }, - { "斗技", "鬥技" }, - { "斗文", "鬥文" }, - { "斗斗", "鬥鬥" }, - { "斗智", "鬥智" }, - { "斗暴", "鬥暴" }, - { "斗来斗去", "鬥來鬥去" }, - { "斗武", "鬥武" }, - { "斗殴", "鬥毆" }, - { "斗气", "鬥氣" }, - { "斗法", "鬥法" }, - { "斗牌", "鬥牌" }, - { "斗牙拌齿", "鬥牙拌齒" }, - { "斗牙斗齿", "鬥牙鬥齒" }, - { "斗牛", "鬥牛" }, - { "斗犀台", "鬥犀臺" }, - { "斗犬", "鬥犬" }, - { "斗狠", "鬥狠" }, - { "斗百草", "鬥百草" }, - { "斗眼", "鬥眼" }, - { "斗着", "鬥著" }, - { "斗私批修", "鬥私批修" }, - { "斗而铸兵", "鬥而鑄兵" }, - { "斗而铸锥", "鬥而鑄錐" }, - { "斗胜", "鬥勝" }, - { "斗脚", "鬥腳" }, - { "斗舰", "鬥艦" }, - { "斗艳", "鬥豔" }, - { "斗茶", "鬥茶" }, - { "斗草", "鬥草" }, - { "斗蟋蟀", "鬥蟋蟀" }, - { "斗话", "鬥話" }, - { "斗起", "鬥起" }, - { "斗趣", "鬥趣" }, - { "斗闲气", "鬥閑氣" }, - { "斗闷", "鬥悶" }, - { "斗雪红", "鬥雪紅" }, - { "斗风", "鬥風" }, - { "斗鱼", "鬥魚" }, - { "斗鸡", "鬥雞" }, - { "斗鸭", "鬥鴨" }, - { "斗鹌鹑", "鬥鵪鶉" }, - { "斩", "斬" }, - { "斫雕为朴", "斫雕為樸" }, - { "断", "斷" }, - { "断发", "斷髮" }, - { "新历", "新曆" }, - { "新庄", "新莊" }, - { "新扎", "新紮" }, - { "斲雕为朴", "斲雕為樸" }, - { "方便面", "方便麵" }, - { "方几", "方几" }, - { "方志", "方誌" }, - { "施舍", "施捨" }, - { "施药", "施藥" }, - { "旁征博引", "旁徵博引" }, - { "旁注", "旁註" }, - { "旅游", "旅遊" }, - { "旋回", "旋迴" }, - { "旋干转坤", "旋乾轉坤" }, - { "旋绕着", "旋繞著" }, - { "族里", "族裡" }, - { "旗杆", "旗杆" }, - { "无", "無" }, - { "无余", "無餘" }, - { "无征不信", "無徵不信" }, - { "无梁楼盖", "無樑樓蓋" }, - { "无法克制", "無法剋制" }, - { "无药可救", "無藥可救" }, - { "日占", "日佔" }, - { "日历", "日曆" }, - { "日子里", "日子裡" }, - { "日心历表", "日心曆表" }, - { "日志", "日誌" }, - { "日晒", "日晒" }, - { "旧", "舊" }, - { "旧历", "舊曆" }, - { "旧游", "舊遊" }, - { "旧药", "舊藥" }, - { "旧表", "舊錶" }, - { "旧钟", "舊鐘" }, - { "旧钟表", "舊鐘錶" }, - { "旱干", "旱乾" }, - { "时", "時" }, - { "时钟", "時鐘" }, - { "时间里", "時間裡" }, - { "旷", "曠" }, - { "昆仑", "崑崙" }, - { "昆仑山", "昆崙山" }, - { "昆剧", "崑劇" }, - { "昆山", "崑山" }, - { "昆曲", "崑曲" }, - { "昆腔", "崑腔" }, - { "昆苏", "崑蘇" }, - { "昆调", "崑調" }, - { "明征", "明徵" }, - { "明目张胆", "明目張胆" }, - { "明窗净几", "明窗淨几" }, - { "明范", "明範" }, - { "明里", "明裡" }, - { "易克制", "易剋制" }, - { "昙", "曇" }, - { "星历", "星曆" }, - { "星辰表", "星辰錶" }, - { "春假里", "春假裡" }, - { "春天里", "春天裡" }, - { "春日里", "春日裡" }, - { "春游", "春遊" }, - { "春药", "春藥" }, - { "春香斗学", "春香鬥學" }, - { "昼", "晝" }, - { "显", "顯" }, - { "显示表", "顯示錶" }, - { "显示钟", "顯示鐘" }, - { "晃荡", "晃蕩" }, - { "晋", "晉" }, - { "晋升", "晉陞" }, - { "晒", "曬" }, - { "晒伤", "晒傷" }, - { "晒图", "晒圖" }, - { "晒干", "晒乾" }, - { "晒成", "晒成" }, - { "晒晒", "晒晒" }, - { "晒烟", "晒煙" }, - { "晒种", "晒種" }, - { "晒衣", "晒衣" }, - { "晒谷", "曬穀" }, - { "晒黑", "晒黑" }, - { "晓", "曉" }, - { "晔", "曄" }, - { "晕", "暈" }, - { "晕船药", "暈船藥" }, - { "晕车药", "暈車藥" }, - { "晖", "暉" }, - { "晚钟", "晚鐘" }, - { "晞发", "晞髮" }, - { "晨钟", "晨鐘" }, - { "普冬冬", "普鼕鼕" }, - { "景致", "景緻" }, - { "晾干", "晾乾" }, - { "暂", "暫" }, - { "暑假里", "暑假裡" }, - { "暗地里", "暗地裡" }, - { "暗斗", "暗鬥" }, - { "暗沟里", "暗溝裡" }, - { "暗里", "暗裡" }, - { "暧", "曖" }, - { "暴敛横征", "暴斂橫徵" }, - { "暴晒", "暴晒" }, - { "曝晒", "曝晒" }, - { "曰云", "曰云" }, - { "曲尘", "麴塵" }, - { "曲生", "麴生" }, - { "曲秀才", "麴秀才" }, - { "曲菌", "麴菌" }, - { "曲蘖", "麴櫱" }, - { "曲车", "麴車" }, - { "曲道士", "麴道士" }, - { "曲钱", "麴錢" }, - { "曲院", "麴院" }, - { "曲霉", "麴黴" }, - { "更仆难数", "更僕難數" }, - { "更签", "更籤" }, - { "更钟", "更鐘" }, - { "曾朴", "曾樸" }, - { "月历", "月曆" }, - { "月球历表", "月球曆表" }, - { "有事之无范", "有事之無範" }, - { "有仆", "有僕" }, - { "有余", "有餘" }, - { "有准", "有準" }, - { "有发头陀寺", "有髮頭陀寺" }, - { "有只", "有隻" }, - { "有只采", "有只採" }, - { "有够赞", "有夠讚" }, - { "有征", "有徵" }, - { "有恒街", "有恒街" }, - { "有栖川", "有栖川" }, - { "有棱有角", "有稜有角" }, - { "服药", "服藥" }, - { "望后石", "望后石" }, - { "望着表", "望著錶" }, - { "望着钟", "望著鐘" }, - { "望着钟表", "望著鐘錶" }, - { "朝钟", "朝鐘" }, - { "木偶戏扎", "木偶戲紮" }, - { "木制", "木製" }, - { "木杆", "木杆" }, - { "木材干馏", "木材乾餾" }, - { "木梁", "木樑" }, - { "木钟", "木鐘" }, - { "未干", "未乾" }, - { "末药", "末藥" }, - { "本征", "本徵" }, - { "术", "術" }, - { "术赤", "朮赤" }, - { "朱仑街", "朱崙街" }, - { "朱唇皓齿", "硃唇皓齒" }, - { "朱庆余", "朱慶餘" }, - { "朱批", "硃批" }, - { "朱理安历", "朱理安曆" }, - { "朱砂", "硃砂" }, - { "朱笔", "硃筆" }, - { "朱红色", "硃紅色" }, - { "朱色", "硃色" }, - { "朱谕", "硃諭" }, - { "朴修斯", "樸修斯" }, - { "朴厚", "樸厚" }, - { "朴学", "樸學" }, - { "朴实", "樸實" }, - { "朴念仁", "樸念仁" }, - { "朴拙", "樸拙" }, - { "朴樕", "樸樕" }, - { "朴父", "樸父" }, - { "朴直", "樸直" }, - { "朴素", "樸素" }, - { "朴讷", "樸訥" }, - { "朴质", "樸質" }, - { "朴鄙", "樸鄙" }, - { "朴重", "樸重" }, - { "朴野", "樸野" }, - { "朴钝", "樸鈍" }, - { "朴陋", "樸陋" }, - { "朴马", "樸馬" }, - { "朴鲁", "樸魯" }, - { "机", "機" }, - { "机械表", "機械錶" }, - { "机械钟", "機械鐘" }, - { "机绣", "機繡" }, - { "杀", "殺" }, - { "杀虫药", "殺蟲藥" }, - { "杂", "雜" }, - { "杂合面儿", "雜合麵兒" }, - { "杂志", "雜誌" }, - { "杂面", "雜麵" }, - { "权", "權" }, - { "杆", "桿" }, - { "杆子", "杆子" }, - { "李连杰", "李連杰" }, - { "李連杰", "李連杰" }, - { "材干", "材幹" }, - { "村子里", "村子裡" }, - { "村庄", "村莊" }, - { "村里", "村裡" }, - { "杜老志道", "杜老誌道" }, - { "杞宋无征", "杞宋無徵" }, - { "束发", "束髮" }, - { "杠杆", "槓桿" }, - { "条", "條" }, - { "条干", "條幹" }, - { "来", "來" }, - { "来复", "來複" }, - { "杨", "楊" }, - { "杨雅筑", "楊雅筑" }, - { "杩", "榪" }, - { "杯干", "杯乾" }, - { "杯面", "杯麵" }, - { "杰", "傑" }, - { "杰伦", "杰倫" }, - { "杰威尔音乐", "杰威爾音樂" }, - { "杰威爾音樂", "杰威爾音樂" }, - { "杰特", "杰特" }, - { "松一口气", "鬆一口氣" }, - { "松了", "鬆了" }, - { "松些", "鬆些" }, - { "松元音", "鬆元音" }, - { "松动", "鬆動" }, - { "松劲", "鬆勁" }, - { "松口", "鬆口" }, - { "松喉", "鬆喉" }, - { "松土", "鬆土" }, - { "松宽", "鬆寬" }, - { "松开", "鬆開" }, - { "松弛", "鬆弛" }, - { "松快", "鬆快" }, - { "松懈", "鬆懈" }, - { "松手", "鬆手" }, - { "松掉", "鬆掉" }, - { "松散", "鬆散" }, - { "松松", "鬆鬆" }, - { "松柔", "鬆柔" }, - { "松气", "鬆氣" }, - { "松浮", "鬆浮" }, - { "松紧", "鬆緊" }, - { "松绑", "鬆綁" }, - { "松缓", "鬆緩" }, - { "松脆", "鬆脆" }, - { "松脱", "鬆脫" }, - { "松蛋", "鬆蛋" }, - { "松起", "鬆起" }, - { "松软", "鬆軟" }, - { "松通", "鬆通" }, - { "松饼", "鬆餅" }, - { "板着脸", "板著臉" }, - { "板荡", "板蕩" }, - { "极", "極" }, - { "构", "構" }, - { "林宏岳", "林宏嶽" }, - { "林钟", "林鐘" }, - { "果子干", "果子乾" }, - { "果干", "果乾" }, - { "枝不得大于干", "枝不得大於榦" }, - { "枝干", "枝幹" }, - { "枞", "樅" }, - { "枢", "樞" }, - { "枣", "棗" }, - { "枣庄", "棗莊" }, - { "枥", "櫪" }, - { "枨", "棖" }, - { "枪", "槍" }, - { "枫", "楓" }, - { "枭", "梟" }, - { "枯干", "枯乾" }, - { "架钟", "架鐘" }, - { "某只", "某隻" }, - { "染发", "染髮" }, - { "染殿后", "染殿后" }, - { "柜", "櫃" }, - { "柜上", "柜上" }, - { "柜台", "櫃檯" }, - { "柜子", "柜子" }, - { "柜柳", "柜柳" }, - { "柠", "檸" }, - { "柱梁", "柱樑" }, - { "柳诒征", "柳詒徵" }, - { "柽", "檉" }, - { "栀", "梔" }, - { "栅", "柵" }, - { "标", "標" }, - { "标准", "標準" }, - { "标志", "標誌" }, - { "标杆", "標杆" }, - { "标注", "標註" }, - { "标签", "標籤" }, - { "标致", "標緻" }, - { "栈", "棧" }, - { "栉", "櫛" }, - { "栉发工", "櫛髮工" }, - { "栊", "櫳" }, - { "栋", "棟" }, - { "栋梁", "棟樑" }, - { "栌", "櫨" }, - { "栎", "櫟" }, - { "栏", "欄" }, - { "栏杆", "欄杆" }, - { "树", "樹" }, - { "树干", "樹榦" }, - { "树梁", "樹樑" }, - { "栖", "棲" }, - { "栖栖皇皇", "栖栖皇皇" }, - { "栗冽", "慄冽" }, - { "栗栗", "慄慄" }, - { "校仇", "校讎" }, - { "校准", "校準" }, - { "样", "樣" }, - { "样范", "樣範" }, - { "格斗", "格鬥" }, - { "格范", "格範" }, - { "格里历", "格里曆" }, - { "格里高利历", "格里高利曆" }, - { "栾", "欒" }, - { "桂圆干", "桂圓乾" }, - { "桅杆", "桅杆" }, - { "桌几", "桌几" }, - { "桌历", "桌曆" }, - { "桑干", "桑乾" }, - { "桠", "椏" }, - { "桡", "橈" }, - { "桢", "楨" }, - { "桢干", "楨幹" }, - { "档", "檔" }, - { "桤", "榿" }, - { "桥", "橋" }, - { "桥梁", "橋樑" }, - { "桦", "樺" }, - { "桧", "檜" }, - { "桨", "槳" }, - { "桩", "樁" }, - { "梁上", "樑上" }, - { "梁柱", "樑柱" }, - { "梦", "夢" }, - { "梦游", "夢遊" }, - { "梦里", "夢裡" }, - { "梨干", "梨乾" }, - { "梯冲", "梯衝" }, - { "械斗", "械鬥" }, - { "械系", "械繫" }, - { "梼", "檮" }, - { "检", "檢" }, - { "棂", "欞" }, - { "棉制", "棉製" }, - { "棒子面", "棒子麵" }, - { "棫朴", "棫樸" }, - { "森林里", "森林裡" }, - { "棱体", "稜體" }, - { "棱台", "稜台" }, - { "棱子", "稜子" }, - { "棱层", "稜層" }, - { "棱柱", "稜柱" }, - { "棱棱", "稜稜" }, - { "棱登", "稜登" }, - { "棱等登", "稜等登" }, - { "棱线", "稜線" }, - { "棱缝", "稜縫" }, - { "棱角", "稜角" }, - { "棱锥", "稜錐" }, - { "棱镜", "稜鏡" }, - { "棺材里", "棺材裡" }, - { "椁", "槨" }, - { "植发", "植髮" }, - { "椟", "櫝" }, - { "椠", "槧" }, - { "椤", "欏" }, - { "椭", "橢" }, - { "椰枣干", "椰棗乾" }, - { "楊雅筑", "楊雅筑" }, - { "楚庄王", "楚莊王" }, - { "楚庄绝缨", "楚莊絕纓" }, - { "楚庄问鼎", "楚莊問鼎" }, - { "楼", "樓" }, - { "榄", "欖" }, - { "榇", "櫬" }, - { "榈", "櫚" }, - { "榉", "櫸" }, - { "榨干", "榨乾" }, - { "槛", "檻" }, - { "槟", "檳" }, - { "槠", "櫧" }, - { "模制", "模製" }, - { "模棱", "模稜" }, - { "模范", "模範" }, - { "横", "橫" }, - { "横冲", "橫衝" }, - { "横征暴敛", "橫徵暴斂" }, - { "横杆", "橫杆" }, - { "横梁", "橫樑" }, - { "樯", "檣" }, - { "樱", "櫻" }, - { "樵采", "樵採" }, - { "橥", "櫫" }, - { "橱", "櫥" }, - { "橹", "櫓" }, - { "橼", "櫞" }, - { "檩", "檁" }, - { "欢", "歡" }, - { "欤", "歟" }, - { "欧", "歐" }, - { "欧游", "歐遊" }, - { "欲令智昏", "慾令智昏" }, - { "欲壑难填", "慾壑難填" }, - { "欲念", "慾念" }, - { "欲望", "慾望" }, - { "欲海", "慾海" }, - { "欲火", "慾火" }, - { "欲障", "慾障" }, - { "欺蒙", "欺矇" }, - { "歌后", "歌后" }, - { "歌钟", "歌鐘" }, - { "止咳药", "止咳藥" }, - { "止痛药", "止痛藥" }, - { "止血药", "止血藥" }, - { "正在叱咤", "正在叱咤" }, - { "武后", "武后" }, - { "武斗", "武鬥" }, - { "歹斗", "歹鬥" }, - { "死里求生", "死裡求生" }, - { "死里逃生", "死裡逃生" }, - { "歼", "殲" }, - { "殁", "歿" }, - { "殇", "殤" }, - { "残", "殘" }, - { "残余", "殘餘" }, - { "残肴", "殘肴" }, - { "殒", "殞" }, - { "殓", "殮" }, - { "殖谷", "殖穀" }, - { "殚", "殫" }, - { "殡", "殯" }, - { "殴", "毆" }, - { "殴斗", "毆鬥" }, - { "殷师牛斗", "殷師牛鬥" }, - { "殿钟自鸣", "殿鐘自鳴" }, - { "毁", "毀" }, - { "毁钟为铎", "毀鐘為鐸" }, - { "毂", "轂" }, - { "母丑", "母醜" }, - { "母后", "母后" }, - { "母范", "母範" }, - { "每只", "每隻" }, - { "毒药", "毒藥" }, - { "毕", "畢" }, - { "毗婆尸佛", "毗婆尸佛" }, - { "毙", "斃" }, - { "毛发", "毛髮" }, - { "毛坏", "毛坏" }, - { "毛姜", "毛薑" }, - { "毡", "氈" }, - { "毫厘", "毫釐" }, - { "毫发", "毫髮" }, - { "毵", "毿" }, - { "氇", "氌" }, - { "气", "氣" }, - { "气郁", "氣鬱" }, - { "氢", "氫" }, - { "氤郁", "氤鬱" }, - { "氩", "氬" }, - { "氲", "氳" }, - { "水准", "水準" }, - { "水无怜奈", "水無怜奈" }, - { "水来汤里去", "水來湯裡去" }, - { "水里", "水裡" }, - { "永历", "永曆" }, - { "永志不忘", "永誌不忘" }, - { "求知欲", "求知慾" }, - { "求签", "求籤" }, - { "汇", "匯" }, - { "汇刊", "彙刊" }, - { "汇报", "彙報" }, - { "汇整", "彙整" }, - { "汇算", "彙算" }, - { "汇纂", "彙纂" }, - { "汇编", "彙編" }, - { "汇辑", "彙輯" }, - { "汇集", "彙集" }, - { "汉", "漢" }, - { "汉弥登钟", "漢彌登鐘" }, - { "池里", "池裡" }, - { "污蔑", "污衊" }, - { "汤", "湯" }, - { "汤下面", "湯下麵" }, - { "汤团", "湯糰" }, - { "汤药", "湯藥" }, - { "汤面", "湯麵" }, - { "汹", "洶" }, - { "汹涌", "洶湧" }, - { "沈吉线", "瀋吉線" }, - { "沈山线", "瀋山線" }, - { "沈州", "瀋州" }, - { "沈水", "瀋水" }, - { "沈河", "瀋河" }, - { "沈海", "瀋海" }, - { "沈淀", "沈澱" }, - { "沈着", "沈著" }, - { "沈郁", "沈鬱" }, - { "沈阳", "瀋陽" }, - { "沉淀", "沉澱" }, - { "沉郁", "沉鬱" }, - { "沙里淘金", "沙裡淘金" }, - { "沟", "溝" }, - { "没", "沒" }, - { "没事干", "沒事幹" }, - { "没准", "沒準" }, - { "没干", "沒幹" }, - { "没干没净", "沒乾沒淨" }, - { "没折至", "沒摺至" }, - { "没梢干", "沒梢幹" }, - { "没药", "沒藥" }, - { "沣", "灃" }, - { "沤", "漚" }, - { "沤郁", "漚鬱" }, - { "沥", "瀝" }, - { "沦", "淪" }, - { "沧", "滄" }, - { "沩", "溈" }, - { "沪", "滬" }, - { "河岳", "河嶽" }, - { "河里", "河裡" }, - { "油斗", "油鬥" }, - { "油面", "油麵" }, - { "治愈", "治癒" }, - { "沿溯", "沿泝" }, - { "泄欲", "洩慾" }, - { "法占", "法佔" }, - { "泛游", "泛遊" }, - { "泞", "濘" }, - { "泡制", "泡製" }, - { "泡面", "泡麵" }, - { "波发藻", "波髮藻" }, - { "波棱菜", "波稜菜" }, - { "注上", "註上" }, - { "注云", "注云" }, - { "注册", "註冊" }, - { "注失", "註失" }, - { "注定", "註定" }, - { "注明", "註明" }, - { "注标", "註標" }, - { "注生娘娘", "註生娘娘" }, - { "注疏", "註疏" }, - { "注脚", "註腳" }, - { "注解", "註解" }, - { "注记", "註記" }, - { "注译", "註譯" }, - { "注销", "註銷" }, - { "泪", "淚" }, - { "泪如泉涌", "淚如泉湧" }, - { "泪干", "淚乾" }, - { "泱郁", "泱鬱" }, - { "泳气钟", "泳氣鐘" }, - { "泶", "澩" }, - { "泷", "瀧" }, - { "泸", "瀘" }, - { "泺", "濼" }, - { "泻", "瀉" }, - { "泻药", "瀉藥" }, - { "泼", "潑" }, - { "泽", "澤" }, - { "泽渗漓而下降", "澤滲灕而下降" }, - { "泾", "涇" }, - { "洁", "潔" }, - { "洄游", "洄遊" }, - { "洒", "灑" }, - { "洒家", "洒家" }, - { "洒扫", "洒掃" }, - { "洒水", "洒水" }, - { "洒洒", "洒洒" }, - { "洒涤", "洒滌" }, - { "洒淅", "洒淅" }, - { "洒濯", "洒濯" }, - { "洒然", "洒然" }, - { "洒脱", "洒脫" }, - { "洗发", "洗髮" }, - { "洗炼", "洗鍊" }, - { "洗练", "洗鍊" }, - { "洛钟东应", "洛鐘東應" }, - { "洪范", "洪範" }, - { "洪适", "洪适" }, - { "洪钟", "洪鐘" }, - { "洼", "窪" }, - { "流征", "流徵" }, - { "流荡", "流蕩" }, - { "浃", "浹" }, - { "浅", "淺" }, - { "浅淀", "淺澱" }, - { "浆", "漿" }, - { "浇", "澆" }, - { "浈", "湞" }, - { "浊", "濁" }, - { "测", "測" }, - { "浍", "澮" }, - { "济", "濟" }, - { "浏", "瀏" }, - { "浑", "渾" }, - { "浑个", "渾箇" }, - { "浑朴", "渾樸" }, - { "浒", "滸" }, - { "浓", "濃" }, - { "浓发", "濃髮" }, - { "浔", "潯" }, - { "浩浩荡荡", "浩浩蕩蕩" }, - { "浩荡", "浩蕩" }, - { "浪游", "浪遊" }, - { "浪琴表", "浪琴錶" }, - { "浪荡", "浪蕩" }, - { "浮松", "浮鬆" }, - { "浮荡", "浮蕩" }, - { "海上布雷", "海上佈雷" }, - { "海干", "海乾" }, - { "海湾布雷", "海灣佈雷" }, - { "涂", "塗" }, - { "涂善妮", "涂善妮" }, - { "涂坤", "涂坤" }, - { "涂壮勋", "涂壯勳" }, - { "涂壯勳", "涂壯勳" }, - { "涂天相", "涂天相" }, - { "涂姓", "涂姓" }, - { "涂序瑄", "涂序瑄" }, - { "涂敏恆", "涂敏恆" }, - { "涂敏恒", "涂敏恆" }, - { "涂泽民", "涂澤民" }, - { "涂澤民", "涂澤民" }, - { "涂着", "塗著" }, - { "涂绍煃", "涂紹煃" }, - { "涂羽卿", "涂羽卿" }, - { "涂药", "塗藥" }, - { "涂謹申", "涂謹申" }, - { "涂谨申", "涂謹申" }, - { "涂逢年", "涂逢年" }, - { "涂醒哲", "涂醒哲" }, - { "涂長望", "涂長望" }, - { "涂长望", "涂長望" }, - { "涂鴻欽", "涂鴻欽" }, - { "涂鸿钦", "涂鴻欽" }, - { "消炎药", "消炎藥" }, - { "消肿药", "消腫藥" }, - { "涌上", "湧上" }, - { "涌入", "湧入" }, - { "涌出", "湧出" }, - { "涌向", "湧向" }, - { "涌来", "湧來" }, - { "涌泉", "湧泉" }, - { "涌现", "湧現" }, - { "涌起", "湧起" }, - { "涌进", "湧進" }, - { "涛", "濤" }, - { "涝", "澇" }, - { "涞", "淶" }, - { "涟", "漣" }, - { "涠", "潿" }, - { "涡", "渦" }, - { "涣", "渙" }, - { "涤", "滌" }, - { "润", "潤" }, - { "涧", "澗" }, - { "涨", "漲" }, - { "涩", "澀" }, - { "液晶表", "液晶錶" }, - { "涳蒙", "涳濛" }, - { "涸干", "涸乾" }, - { "淀乃不耕之地", "澱乃不耕之地" }, - { "淀北片", "澱北片" }, - { "淀山", "澱山" }, - { "淀淀", "澱澱" }, - { "淀积", "澱積" }, - { "淀粉", "澱粉" }, - { "淀解物", "澱解物" }, - { "淀谓之滓", "澱謂之滓" }, - { "淋余土", "淋餘土" }, - { "淑范", "淑範" }, - { "淡朱", "淡硃" }, - { "淡蒙蒙", "淡濛濛" }, - { "淫欲", "淫慾" }, - { "淫荡", "淫蕩" }, - { "淬炼", "淬鍊" }, - { "深山何处钟", "深山何處鐘" }, - { "深渊里", "深淵裡" }, - { "淳于", "淳于" }, - { "淳朴", "淳樸" }, - { "清汤挂面", "清湯掛麵" }, - { "渊", "淵" }, - { "渊淳岳峙", "淵淳嶽峙" }, - { "渌", "淥" }, - { "渍", "漬" }, - { "渎", "瀆" }, - { "渐", "漸" }, - { "渑", "澠" }, - { "渔", "漁" }, - { "渖", "瀋" }, - { "渗", "滲" }, - { "渠冲", "渠衝" }, - { "温", "溫" }, - { "港制", "港製" }, - { "游丝", "遊絲" }, - { "游乐", "遊樂" }, - { "游了", "遊了" }, - { "游人", "遊人" }, - { "游仙", "遊仙" }, - { "游伴", "遊伴" }, - { "游侠", "遊俠" }, - { "游兴", "遊興" }, - { "游冶", "遊冶" }, - { "游刃有余", "遊刃有餘" }, - { "游动", "遊動" }, - { "游历", "遊歷" }, - { "游园", "遊園" }, - { "游子", "遊子" }, - { "游学", "遊學" }, - { "游客", "遊客" }, - { "游宦", "遊宦" }, - { "游山玩水", "遊山玩水" }, - { "游必有方", "遊必有方" }, - { "游憩", "遊憩" }, - { "游戏", "遊戲" }, - { "游手好闲", "遊手好閒" }, - { "游方", "遊方" }, - { "游星", "遊星" }, - { "游标卡尺", "遊標卡尺" }, - { "游民", "遊民" }, - { "游河", "遊河" }, - { "游猎", "遊獵" }, - { "游玩", "遊玩" }, - { "游目骋怀", "遊目騁懷" }, - { "游离", "遊離" }, - { "游程", "遊程" }, - { "游船", "遊船" }, - { "游艇", "遊艇" }, - { "游艺", "遊藝" }, - { "游荡", "遊盪" }, - { "游荡不归", "遊蕩不歸" }, - { "游行", "遊行" }, - { "游街", "遊街" }, - { "游览", "遊覽" }, - { "游记", "遊記" }, - { "游说", "遊說" }, - { "游资", "遊資" }, - { "游走", "遊走" }, - { "游踪", "遊蹤" }, - { "游逛", "遊逛" }, - { "游错", "遊錯" }, - { "游骑兵", "遊騎兵" }, - { "游魂", "遊魂" }, - { "湖里", "湖裡" }, - { "湘累", "湘纍" }, - { "湘绣", "湘繡" }, - { "湟潦生苹", "湟潦生苹" }, - { "湮郁", "湮鬱" }, - { "湾", "灣" }, - { "湿", "濕" }, - { "溃", "潰" }, - { "溅", "濺" }, - { "溆", "漵" }, - { "溟蒙", "溟濛" }, - { "溲面", "溲麵" }, - { "滃郁", "滃鬱" }, - { "滑借", "滑藉" }, - { "滗", "潷" }, - { "滚", "滾" }, - { "滞", "滯" }, - { "滠", "灄" }, - { "满", "滿" }, - { "满头洋发", "滿頭洋髮" }, - { "满拼自尽", "滿拚自盡" }, - { "滢", "瀅" }, - { "滤", "濾" }, - { "滥", "濫" }, - { "滦", "灤" }, - { "滨", "濱" }, - { "滩", "灘" }, - { "滩涂", "灘涂" }, - { "漂荡", "漂蕩" }, - { "漓水", "灕水" }, - { "漓江", "灕江" }, - { "漓湘", "灕湘" }, - { "漓然", "灕然" }, - { "漕挽", "漕輓" }, - { "漤", "灠" }, - { "漫游", "漫遊" }, - { "潆", "瀠" }, - { "潇", "瀟" }, - { "潇洒", "瀟洒" }, - { "潋", "瀲" }, - { "潍", "濰" }, - { "潜", "潛" }, - { "潜意识里", "潛意識裡" }, - { "潜水表", "潛水錶" }, - { "潜水钟", "潛水鐘" }, - { "潭里", "潭裡" }, - { "潮涌", "潮湧" }, - { "潴", "瀦" }, - { "澒蒙", "澒濛" }, - { "澜", "瀾" }, - { "澹台", "澹臺" }, - { "澹荡", "澹蕩" }, - { "激荡", "激蕩" }, - { "濑", "瀨" }, - { "濒", "瀕" }, - { "灌药", "灌藥" }, - { "灏", "灝" }, - { "火并", "火併" }, - { "火拼", "火拚" }, - { "火签", "火籤" }, - { "火箭布雷", "火箭佈雷" }, - { "火药", "火藥" }, - { "灭", "滅" }, - { "灯", "燈" }, - { "灰蒙", "灰濛" }, - { "灰蒙蒙", "灰濛濛" }, - { "灵", "靈" }, - { "灵药", "靈藥" }, - { "灾", "災" }, - { "灿", "燦" }, - { "炀", "煬" }, - { "炆面", "炆麵" }, - { "炉", "爐" }, - { "炒面", "炒麵" }, - { "炖", "燉" }, - { "炖药", "燉藥" }, - { "炜", "煒" }, - { "炝", "熗" }, - { "炮制", "炮製" }, - { "炸药", "炸藥" }, - { "炸酱面", "炸醬麵" }, - { "点", "點" }, - { "点半钟", "點半鐘" }, - { "点多钟", "點多鐘" }, - { "点里", "點裡" }, - { "点钟", "點鐘" }, - { "炼", "煉" }, - { "炼冶", "鍊冶" }, - { "炼制", "煉製" }, - { "炼句", "鍊句" }, - { "炼字", "鍊字" }, - { "炼师", "鍊師" }, - { "炼度", "鍊度" }, - { "炼形", "鍊形" }, - { "炼气", "鍊氣" }, - { "炼汞", "鍊汞" }, - { "炼石", "鍊石" }, - { "炼药", "煉藥" }, - { "炼贫", "鍊貧" }, - { "炼金术", "鍊金術" }, - { "炼钢", "鍊鋼" }, - { "炽", "熾" }, - { "烁", "爍" }, - { "烂", "爛" }, - { "烃", "烴" }, - { "烘制", "烘製" }, - { "烘干", "烘乾" }, - { "烛", "燭" }, - { "烟", "煙" }, - { "烟卷", "煙捲" }, - { "烤干", "烤乾" }, - { "烤晒", "烤晒" }, - { "烦", "煩" }, - { "烧", "燒" }, - { "烧干", "燒乾" }, - { "烨", "燁" }, - { "烩", "燴" }, - { "烫", "燙" }, - { "烫一个发", "燙一個髮" }, - { "烫一次发", "燙一次髮" }, - { "烫个发", "燙個髮" }, - { "烫发", "燙髮" }, - { "烫完发", "燙完髮" }, - { "烫次发", "燙次髮" }, - { "烫面", "燙麵" }, - { "烬", "燼" }, - { "烬余", "燼餘" }, - { "热", "熱" }, - { "焕", "煥" }, - { "焖", "燜" }, - { "焘", "燾" }, - { "焙干", "焙乾" }, - { "無言不仇", "無言不讎" }, - { "煎药", "煎藥" }, - { "煎面", "煎麵" }, - { "照入签", "照入籤" }, - { "照准", "照準" }, - { "照占", "照佔" }, - { "煨干", "煨乾" }, - { "煮面", "煮麵" }, - { "熊杰", "熊杰" }, - { "熬药", "熬藥" }, - { "燎发", "燎髮" }, - { "燕几", "燕几" }, - { "燕游", "燕遊" }, - { "爰定祥历", "爰定祥厤" }, - { "爱", "愛" }, - { "爱困", "愛睏" }, - { "爷", "爺" }, - { "爽荡", "爽蕩" }, - { "片言只语", "片言隻語" }, - { "牍", "牘" }, - { "牙签", "牙籤" }, - { "牛只", "牛隻" }, - { "牛肉面", "牛肉麵" }, - { "牦", "氂" }, - { "物欲", "物慾" }, - { "牵", "牽" }, - { "牵一发", "牽一髮" }, - { "牵系", "牽繫" }, - { "特别致", "特别致" }, - { "特制", "特製" }, - { "特征", "特徵" }, - { "特效药", "特效藥" }, - { "牺", "犧" }, - { "犊", "犢" }, - { "状", "狀" }, - { "犷", "獷" }, - { "犹", "猶" }, - { "犹如表", "猶如錶" }, - { "犹如钟", "猶如鐘" }, - { "狂占", "狂佔" }, - { "狂并潮", "狂併潮" }, - { "狄志杰", "狄志杰" }, - { "狈", "狽" }, - { "狐借虎威", "狐藉虎威" }, - { "狞", "獰" }, - { "独", "獨" }, - { "独占", "獨佔" }, - { "独辟蹊径", "獨闢蹊徑" }, - { "狭", "狹" }, - { "狮", "獅" }, - { "狯", "獪" }, - { "狰", "猙" }, - { "狱", "獄" }, - { "狱里", "獄裡" }, - { "狲", "猻" }, - { "猃", "獫" }, - { "猎", "獵" }, - { "猕", "獼" }, - { "猛冲", "猛衝" }, - { "猜三划五", "猜三划五" }, - { "猡", "玀" }, - { "猪", "豬" }, - { "猫", "貓" }, - { "猬", "蝟" }, - { "献", "獻" }, - { "献丑", "獻醜" }, - { "獭", "獺" }, - { "玉历", "玉曆" }, - { "王余鱼", "王餘魚" }, - { "王侯后", "王侯后" }, - { "王后", "王后" }, - { "王庄", "王莊" }, - { "玑", "璣" }, - { "玛", "瑪" }, - { "玮", "瑋" }, - { "环", "環" }, - { "环游", "環遊" }, - { "现", "現" }, - { "玺", "璽" }, - { "珍肴异馔", "珍肴異饌" }, - { "珐", "琺" }, - { "珑", "瓏" }, - { "班里", "班裡" }, - { "珲", "琿" }, - { "球杆", "球杆" }, - { "理一个发", "理一個髮" }, - { "理一次发", "理一次髮" }, - { "理个发", "理個髮" }, - { "理发", "理髮" }, - { "理完发", "理完髮" }, - { "理次发", "理次髮" }, - { "琏", "璉" }, - { "琐", "瑣" }, - { "琴钟", "琴鐘" }, - { "琼", "瓊" }, - { "瑞征", "瑞徵" }, - { "瑶", "瑤" }, - { "瑶签", "瑤籤" }, - { "瑷", "璦" }, - { "璎", "瓔" }, - { "瓒", "瓚" }, - { "瓮安", "甕安" }, - { "瓯", "甌" }, - { "瓷制", "瓷製" }, - { "甄后", "甄后" }, - { "甚么", "甚麼" }, - { "甜水面", "甜水麵" }, - { "甜面酱", "甜麵醬" }, - { "生力面", "生力麵" }, - { "生发", "生髮" }, - { "生姜", "生薑" }, - { "生物钟", "生物鐘" }, - { "生锈", "生鏽" }, - { "用药", "用藥" }, - { "甩发", "甩髮" }, - { "田庄", "田莊" }, - { "田谷", "田穀" }, - { "田里", "田裡" }, - { "由表及里", "由表及裡" }, - { "甲后路", "甲后路" }, - { "电", "電" }, - { "电冲", "電衝" }, - { "电子表", "電子錶" }, - { "电子钟", "電子鐘" }, - { "电杆", "電杆" }, - { "电波钟", "電波鐘" }, - { "电线杆", "電線杆" }, - { "电表", "電錶" }, - { "电钟", "電鐘" }, - { "男仆", "男僕" }, - { "男用表", "男用錶" }, - { "画", "畫" }, - { "画着", "畫著" }, - { "畅", "暢" }, - { "畅游", "暢遊" }, - { "留发", "留髮" }, - { "畴", "疇" }, - { "疏松", "疏鬆" }, - { "疑凶", "疑兇" }, - { "疑系", "疑係" }, - { "疖", "癤" }, - { "疗", "療" }, - { "疟", "瘧" }, - { "疠", "癘" }, - { "疡", "瘍" }, - { "疬", "癧" }, - { "疮", "瘡" }, - { "疯", "瘋" }, - { "疱", "皰" }, - { "疲困", "疲睏" }, - { "疴", "痾" }, - { "病余", "病餘" }, - { "病征", "病徵" }, - { "病愈", "病癒" }, - { "症候", "癥候" }, - { "症状", "癥狀" }, - { "症结", "癥結" }, - { "痈", "癰" }, - { "痉", "痙" }, - { "痊愈", "痊癒" }, - { "痒", "癢" }, - { "痒疹", "痒疹" }, - { "痒痒", "痒痒" }, - { "痕迹", "痕迹" }, - { "痨", "癆" }, - { "痪", "瘓" }, - { "痫", "癇" }, - { "瘅", "癉" }, - { "瘗", "瘞" }, - { "瘘", "瘺" }, - { "瘪", "癟" }, - { "瘫", "癱" }, - { "瘾", "癮" }, - { "瘿", "癭" }, - { "癞", "癩" }, - { "癣", "癬" }, - { "癫", "癲" }, - { "白兔擣药", "白兔擣藥" }, - { "白净面皮", "白淨面皮" }, - { "白发", "白髮" }, - { "白干", "白乾" }, - { "白术", "白朮" }, - { "白朴", "白樸" }, - { "白粉面", "白粉麵" }, - { "白胡", "白鬍" }, - { "白里透红", "白裡透紅" }, - { "白霉", "白黴" }, - { "百余", "百餘" }, - { "百只", "百隻" }, - { "百扎", "百紮" }, - { "百拙千丑", "百拙千醜" }, - { "百炼", "百鍊" }, - { "百科里", "百科裡" }, - { "百花历", "百花曆" }, - { "百药之长", "百藥之長" }, - { "百谷", "百穀" }, - { "的克制", "的剋制" }, - { "的钟", "的鐘" }, - { "的钟表", "的鐘錶" }, - { "的长发", "的長髮" }, - { "皆准", "皆準" }, - { "皆可作淀", "皆可作澱" }, - { "皇历", "皇曆" }, - { "皇后", "皇后" }, - { "皇庄", "皇莊" }, - { "皇极历", "皇極曆" }, - { "皑", "皚" }, - { "皓发", "皓髮" }, - { "皮制", "皮製" }, - { "皮松", "皮鬆" }, - { "皮里春秋", "皮裡春秋" }, - { "皮里阳秋", "皮裡陽秋" }, - { "皱", "皺" }, - { "皱别", "皺彆" }, - { "皱折", "皺摺" }, - { "皲", "皸" }, - { "盆吊", "盆弔" }, - { "盈余", "盈餘" }, - { "盏", "盞" }, - { "盐", "鹽" }, - { "盐余", "鹽餘" }, - { "盐卤", "鹽滷" }, - { "盐打怎么咸", "鹽打怎麼鹹" }, - { "监", "監" }, - { "监制", "監製" }, - { "盒里", "盒裡" }, - { "盖", "蓋" }, - { "盗", "盜" }, - { "盗采", "盜採" }, - { "盗钟", "盜鐘" }, - { "盘", "盤" }, - { "盘回", "盤迴" }, - { "盘里", "盤裡" }, - { "盛赞", "盛讚" }, - { "盲干", "盲幹" }, - { "直冲", "直衝" }, - { "直接参与", "直接參与" }, - { "相克", "相剋" }, - { "相冲", "相衝" }, - { "相并", "相併" }, - { "相斗", "相鬥" }, - { "看下表", "看下錶" }, - { "看下钟", "看下鐘" }, - { "看准", "看準" }, - { "看着表", "看著錶" }, - { "看着钟", "看著鐘" }, - { "看着钟表", "看著鐘錶" }, - { "看表", "看錶" }, - { "看钟", "看鐘" }, - { "真个", "真箇" }, - { "真凶", "真兇" }, - { "眦", "眥" }, - { "眼帘", "眼帘" }, - { "眼干", "眼乾" }, - { "眼眶里", "眼眶裡" }, - { "眼睛里", "眼睛裡" }, - { "眼药", "眼藥" }, - { "眼里", "眼裡" }, - { "着书立说", "著書立說" }, - { "着儿", "著兒" }, - { "着克制", "著剋制" }, - { "着录", "著錄" }, - { "着色软体", "著色軟體" }, - { "着重指出", "著重指出" }, - { "睁", "睜" }, - { "睐", "睞" }, - { "睑", "瞼" }, - { "睡游病", "睡遊病" }, - { "睡着了", "睡著了" }, - { "瞄准", "瞄準" }, - { "瞅下表", "瞅下錶" }, - { "瞅下钟", "瞅下鐘" }, - { "瞒", "瞞" }, - { "瞧着表", "瞧著錶" }, - { "瞧着钟", "瞧著鐘" }, - { "瞧着钟表", "瞧著鐘錶" }, - { "瞩", "矚" }, - { "瞩托", "矚託" }, - { "瞳蒙", "瞳矇" }, - { "矜庄", "矜莊" }, - { "矫", "矯" }, - { "短几", "短几" }, - { "短发", "短髮" }, - { "矮几", "矮几" }, - { "石几", "石几" }, - { "石梁", "石樑" }, - { "石英表", "石英錶" }, - { "石英钟", "石英鐘" }, - { "石莼", "石蓴" }, - { "石钟乳", "石鐘乳" }, - { "矶", "磯" }, - { "矾", "礬" }, - { "矿", "礦" }, - { "砀", "碭" }, - { "码", "碼" }, - { "码表", "碼錶" }, - { "研制", "研製" }, - { "砖", "磚" }, - { "砗", "硨" }, - { "砚", "硯" }, - { "砰当", "砰噹" }, - { "砺", "礪" }, - { "砻", "礱" }, - { "砻谷机", "礱穀機" }, - { "砾", "礫" }, - { "础", "礎" }, - { "硕", "碩" }, - { "硖", "硤" }, - { "硗", "磽" }, - { "硗确", "磽确" }, - { "硬干", "硬幹" }, - { "确", "確" }, - { "确瘠", "确瘠" }, - { "碍", "礙" }, - { "碑志", "碑誌" }, - { "碛", "磧" }, - { "碜", "磣" }, - { "碰钟", "碰鐘" }, - { "碱", "鹼" }, - { "磁制", "磁製" }, - { "磨制", "磨製" }, - { "磨炼", "磨鍊" }, - { "磬钟", "磬鐘" }, - { "示范", "示範" }, - { "礼", "禮" }, - { "礼赞", "禮讚" }, - { "社里", "社裡" }, - { "祝发", "祝髮" }, - { "祝赞", "祝讚" }, - { "神游", "神遊" }, - { "神雕", "神鵰" }, - { "祢", "禰" }, - { "票庄", "票莊" }, - { "祭吊", "祭弔" }, - { "祯", "禎" }, - { "祷", "禱" }, - { "祸", "禍" }, - { "禀", "稟" }, - { "禁欲", "禁慾" }, - { "禁药", "禁藥" }, - { "禄", "祿" }, - { "禅", "禪" }, - { "离", "離" }, - { "禾谷", "禾穀" }, - { "秀发", "秀髮" }, - { "私下里", "私下裡" }, - { "私斗", "私鬥" }, - { "私欲", "私慾" }, - { "秃", "禿" }, - { "秃发", "禿髮" }, - { "秃妃之发", "禿妃之髮" }, - { "秆", "稈" }, - { "秋假里", "秋假裡" }, - { "秋千", "鞦韆" }, - { "秋发", "秋髮" }, - { "秋天里", "秋天裡" }, - { "秋日里", "秋日裡" }, - { "秋游", "秋遊" }, - { "秋阴入井干", "秋陰入井幹" }, - { "种", "種" }, - { "种师中", "种師中" }, - { "种师道", "种師道" }, - { "种放", "种放" }, - { "种谷", "種穀" }, - { "科范", "科範" }, - { "秒表", "秒錶" }, - { "秒钟", "秒鐘" }, - { "秦庄襄王", "秦莊襄王" }, - { "积", "積" }, - { "积极参与", "積极參与" }, - { "积极参加", "積极參加" }, - { "积淀", "積澱" }, - { "积谷", "積穀" }, - { "积谷防饥", "積穀防饑" }, - { "积郁", "積鬱" }, - { "称", "稱" }, - { "称赞", "稱讚" }, - { "秽", "穢" }, - { "稀松", "稀鬆" }, - { "稆", "穭" }, - { "税", "稅" }, - { "稣", "穌" }, - { "稳", "穩" }, - { "稳占", "穩佔" }, - { "稳扎", "穩紮" }, - { "稻谷", "稻穀" }, - { "稽征", "稽徵" }, - { "穆罕默德历", "穆罕默德曆" }, - { "穑", "穡" }, - { "穗帏飘井干", "繐幃飄井幹" }, - { "穷", "窮" }, - { "穷发", "窮髮" }, - { "穷追不舍", "窮追不捨" }, - { "空中布雷", "空中佈雷" }, - { "空余", "空餘" }, - { "空投布雷", "空投佈雷" }, - { "空荡", "空蕩" }, - { "空荡荡", "空蕩蕩" }, - { "空蒙", "空濛" }, - { "空钟", "空鐘" }, - { "窃", "竊" }, - { "窃钟掩耳", "竊鐘掩耳" }, - { "窍", "竅" }, - { "窑", "窯" }, - { "窒欲", "窒慾" }, - { "窗台", "窗檯" }, - { "窗帘", "窗帘" }, - { "窗明几亮", "窗明几亮" }, - { "窗明几净", "窗明几淨" }, - { "窜", "竄" }, - { "窝", "窩" }, - { "窝里", "窩裡" }, - { "窥", "窺" }, - { "窦", "竇" }, - { "窭", "窶" }, - { "立后综", "立后綜" }, - { "立范", "立範" }, - { "竖", "豎" }, - { "竖着", "豎著" }, - { "站干岸儿", "站乾岸兒" }, - { "竞", "競" }, - { "竞斗", "競鬥" }, - { "童仆", "童僕" }, - { "端庄", "端莊" }, - { "竹几", "竹几" }, - { "竹制", "竹製" }, - { "竹林之游", "竹林之遊" }, - { "竹签", "竹籤" }, - { "笃", "篤" }, - { "笋", "筍" }, - { "笋干", "筍乾" }, - { "笑里藏刀", "笑裡藏刀" }, - { "笔", "筆" }, - { "笔秃墨干", "筆禿墨乾" }, - { "笕", "筧" }, - { "笺", "箋" }, - { "笼", "籠" }, - { "笾", "籩" }, - { "筑", "築" }, - { "筑前", "筑前" }, - { "筑北", "筑北" }, - { "筑后", "筑後" }, - { "筑州", "筑州" }, - { "筑後", "筑後" }, - { "筑波", "筑波" }, - { "筑紫", "筑紫" }, - { "筑肥", "筑肥" }, - { "筑西", "筑西" }, - { "筑邦", "筑邦" }, - { "筑阳", "筑陽" }, - { "筑陽", "筑陽" }, - { "答复", "答覆" }, - { "筚", "篳" }, - { "筛", "篩" }, - { "筝", "箏" }, - { "筵几", "筵几" }, - { "筹", "籌" }, - { "签", "簽" }, - { "签押", "籤押" }, - { "签条", "籤條" }, - { "签着", "簽著" }, - { "签诗", "籤詩" }, - { "简", "簡" }, - { "简并", "簡併" }, - { "简朴", "簡樸" }, - { "简筑翎", "簡筑翎" }, - { "算准", "算準" }, - { "算历", "算曆" }, - { "算发", "算髮" }, - { "管干", "管幹" }, - { "箦", "簀" }, - { "箧", "篋" }, - { "箨", "籜" }, - { "箩", "籮" }, - { "箪", "簞" }, - { "箫", "簫" }, - { "篑", "簣" }, - { "篓", "簍" }, - { "篮", "籃" }, - { "篱", "籬" }, - { "簖", "籪" }, - { "簡筑翎", "簡筑翎" }, - { "簸荡", "簸蕩" }, - { "籁", "籟" }, - { "米谷", "米穀" }, - { "籴", "糴" }, - { "类", "類" }, - { "籼", "秈" }, - { "粉拳绣腿", "粉拳繡腿" }, - { "粉签子", "粉籤子" }, - { "粗制", "粗製" }, - { "粜", "糶" }, - { "粝", "糲" }, - { "粤", "粵" }, - { "粪", "糞" }, - { "粪秽蔑面", "糞穢衊面" }, - { "粮", "糧" }, - { "精准", "精準" }, - { "精制", "精製" }, - { "精干", "精幹" }, - { "精松", "精鬆" }, - { "精炼", "精鍊" }, - { "精致", "精緻" }, - { "精辟", "精闢" }, - { "糁", "糝" }, - { "糇", "餱" }, - { "糊里糊涂", "糊裡糊塗" }, - { "糕干", "糕乾" }, - { "系上", "繫上" }, - { "系世", "繫世" }, - { "系为", "係為" }, - { "系于", "繫於" }, - { "系于一发", "繫於一髮" }, - { "系列里", "系列裡" }, - { "系到", "繫到" }, - { "系囚", "繫囚" }, - { "系心", "繫心" }, - { "系念", "繫念" }, - { "系怀", "繫懷" }, - { "系恋", "繫戀" }, - { "系数", "係數" }, - { "系着", "系著" }, - { "系紧", "繫緊" }, - { "系累", "繫纍" }, - { "系结", "繫結" }, - { "系绳", "繫繩" }, - { "系辞", "繫辭" }, - { "系里", "系裡" }, - { "系风捕影", "繫風捕影" }, - { "素发", "素髮" }, - { "素朴", "素樸" }, - { "素面", "素麵" }, - { "索面", "索麵" }, - { "紧", "緊" }, - { "紧绷", "緊繃" }, - { "紧绷着", "緊繃著" }, - { "紧绷绷", "緊繃繃" }, - { "紧致", "緊緻" }, - { "紧追不舍", "緊追不捨" }, - { "紫姜", "紫薑" }, - { "累囚", "纍囚" }, - { "累堆", "纍堆" }, - { "累瓦结绳", "纍瓦結繩" }, - { "累绁", "纍紲" }, - { "累臣", "纍臣" }, - { "絷", "縶" }, - { "綑扎", "綑紮" }, - { "經有云", "經有云" }, - { "緝凶", "緝兇" }, - { "繁复", "繁複" }, - { "繁钟", "繁鐘" }, - { "纠", "糾" }, - { "纡", "紆" }, - { "纡余", "紆餘" }, - { "纡回", "紆迴" }, - { "纡郁", "紆鬱" }, - { "红", "紅" }, - { "红发", "紅髮" }, - { "红绳系足", "紅繩繫足" }, - { "红色长发", "紅色長髮" }, - { "红钟", "紅鐘" }, - { "纣", "紂" }, - { "纤", "纖" }, - { "纤夫", "縴夫" }, - { "纤手", "縴手" }, - { "纥", "紇" }, - { "约", "約" }, - { "约占", "約佔" }, - { "级", "級" }, - { "纨", "紈" }, - { "纩", "纊" }, - { "纪", "紀" }, - { "纪历", "紀曆" }, - { "纫", "紉" }, - { "纬", "緯" }, - { "纭", "紜" }, - { "纯", "純" }, - { "纯朴", "純樸" }, - { "纰", "紕" }, - { "纱", "紗" }, - { "纲", "綱" }, - { "纳", "納" }, - { "纳征", "納徵" }, - { "纵", "縱" }, - { "纵欲", "縱慾" }, - { "纶", "綸" }, - { "纷", "紛" }, - { "纸", "紙" }, - { "纸扎", "紙紮" }, - { "纹", "紋" }, - { "纺", "紡" }, - { "纽", "紐" }, - { "纾", "紓" }, - { "线", "線" }, - { "绀", "紺" }, - { "绁", "紲" }, - { "绂", "紱" }, - { "练", "練" }, - { "组", "組" }, - { "组里", "組裡" }, - { "绅", "紳" }, - { "细", "細" }, - { "细不容发", "細不容髮" }, - { "细如发", "細如髮" }, - { "细炼", "細鍊" }, - { "细致", "細緻" }, - { "织", "織" }, - { "终", "終" }, - { "绉", "縐" }, - { "绊", "絆" }, - { "绋", "紼" }, - { "绌", "絀" }, - { "绍", "紹" }, - { "绎", "繹" }, - { "经", "經" }, - { "经有云", "經有云" }, - { "绐", "紿" }, - { "绑", "綁" }, - { "绑扎", "綁紮" }, - { "绒", "絨" }, - { "结", "結" }, - { "结伙", "結夥" }, - { "结伴同游", "結伴同遊" }, - { "结余", "結餘" }, - { "结发", "結髮" }, - { "结彩", "結綵" }, - { "结扎", "結紮" }, - { "绕", "繞" }, - { "绕梁", "繞樑" }, - { "绗", "絎" }, - { "绘", "繪" }, - { "绘制", "繪製" }, - { "给", "給" }, - { "绚", "絢" }, - { "绛", "絳" }, - { "络", "絡" }, - { "络腮胡", "絡腮鬍" }, - { "绝", "絕" }, - { "绞", "絞" }, - { "绞干", "絞乾" }, - { "统", "統" }, - { "绠", "綆" }, - { "绡", "綃" }, - { "绢", "絹" }, - { "绣", "綉" }, - { "绣像", "繡像" }, - { "绣口", "繡口" }, - { "绣得", "繡得" }, - { "绣户", "繡戶" }, - { "绣房", "繡房" }, - { "绣毯", "繡毯" }, - { "绣球", "繡球" }, - { "绣的", "繡的" }, - { "绣花", "繡花" }, - { "绣衣", "繡衣" }, - { "绣起", "繡起" }, - { "绣阁", "繡閣" }, - { "绣鞋", "繡鞋" }, - { "绥", "綏" }, - { "绦", "絛" }, - { "继", "繼" }, - { "绨", "綈" }, - { "绩", "績" }, - { "绪", "緒" }, - { "绪余", "緒餘" }, - { "绫", "綾" }, - { "续", "續" }, - { "绮", "綺" }, - { "绯", "緋" }, - { "绰", "綽" }, - { "绲", "緄" }, - { "绳", "繩" }, - { "维", "維" }, - { "维系", "維繫" }, - { "绵", "綿" }, - { "绶", "綬" }, - { "绷住", "繃住" }, - { "绷子", "繃子" }, - { "绷带", "繃帶" }, - { "绷开", "繃開" }, - { "绷扒吊拷", "繃扒弔拷" }, - { "绷着", "繃著" }, - { "绷紧", "繃緊" }, - { "绷脸", "繃臉" }, - { "绸", "綢" }, - { "绸缎庄", "綢緞莊" }, - { "绺", "綹" }, - { "绻", "綣" }, - { "综", "綜" }, - { "绽", "綻" }, - { "绾", "綰" }, - { "绾发", "綰髮" }, - { "绿", "綠" }, - { "绿发", "綠髮" }, - { "缀", "綴" }, - { "缁", "緇" }, - { "缂", "緙" }, - { "缃", "緗" }, - { "缄", "緘" }, - { "缅", "緬" }, - { "缆", "纜" }, - { "缇", "緹" }, - { "缈", "緲" }, - { "缉", "緝" }, - { "缉凶", "緝兇" }, - { "缋", "繢" }, - { "缌", "緦" }, - { "缍", "綞" }, - { "缎", "緞" }, - { "缏", "緶" }, - { "缑", "緱" }, - { "缒", "縋" }, - { "缓", "緩" }, - { "缓冲", "緩衝" }, - { "缓征", "緩徵" }, - { "缔", "締" }, - { "缕", "縷" }, - { "编", "編" }, - { "编制", "編製" }, - { "编发", "編髮" }, - { "编采", "編採" }, - { "编钟", "編鐘" }, - { "缗", "緡" }, - { "缘", "緣" }, - { "缙", "縉" }, - { "缚", "縛" }, - { "缛", "縟" }, - { "缜", "縝" }, - { "缜致", "縝緻" }, - { "缝", "縫" }, - { "缝制", "縫製" }, - { "缝里", "縫裡" }, - { "缟", "縞" }, - { "缠", "纏" }, - { "缠斗", "纏鬥" }, - { "缡", "縭" }, - { "缢", "縊" }, - { "缣", "縑" }, - { "缤", "繽" }, - { "缥", "縹" }, - { "缦", "縵" }, - { "缧", "縲" }, - { "缨", "纓" }, - { "缩", "縮" }, - { "缩栗", "縮慄" }, - { "缪", "繆" }, - { "缫", "繅" }, - { "缬", "纈" }, - { "缭", "繚" }, - { "缮", "繕" }, - { "缯", "繒" }, - { "缰", "韁" }, - { "缱", "繾" }, - { "缲", "繰" }, - { "缳", "繯" }, - { "缴", "繳" }, - { "缵", "纘" }, - { "罂", "罌" }, - { "网", "網" }, - { "网志", "網誌" }, - { "网游", "網遊" }, - { "网里", "網裡" }, - { "罗", "羅" }, - { "罚", "罰" }, - { "罢", "罷" }, - { "置言成范", "置言成範" }, - { "罴", "羆" }, - { "羁", "羈" }, - { "羁系", "羈繫" }, - { "美丑", "美醜" }, - { "美仑", "美崙" }, - { "美制", "美製" }, - { "美占", "美佔" }, - { "美发", "美髮" }, - { "羟", "羥" }, - { "羡", "羨" }, - { "羡余", "羨餘" }, - { "群丑", "群醜" }, - { "翕辟", "翕闢" }, - { "翘", "翹" }, - { "翱游", "翱遊" }, - { "翻松", "翻鬆" }, - { "翻涌", "翻湧" }, - { "老仆", "老僕" }, - { "老姜", "老薑" }, - { "老干", "老乾" }, - { "老干部", "老幹部" }, - { "老庄", "老莊" }, - { "老板", "老闆" }, - { "老爷钟", "老爺鐘" }, - { "老蒙", "老懞" }, - { "考征", "考徵" }, - { "而克制", "而剋制" }, - { "耍斗", "耍鬥" }, - { "耕佣", "耕傭" }, - { "耕获", "耕穫" }, - { "耧", "耬" }, - { "耳余", "耳餘" }, - { "耸", "聳" }, - { "耻", "恥" }, - { "聂", "聶" }, - { "聋", "聾" }, - { "职", "職" }, - { "聍", "聹" }, - { "联", "聯" }, - { "联系", "聯繫" }, - { "聘雇", "聘僱" }, - { "聩", "聵" }, - { "聪", "聰" }, - { "肃", "肅" }, - { "肉丝面", "肉絲麵" }, - { "肉干", "肉乾" }, - { "肉松", "肉鬆" }, - { "肉欲", "肉慾" }, - { "肉羹面", "肉羹麵" }, - { "肚里", "肚裡" }, - { "肝郁", "肝鬱" }, - { "肠", "腸" }, - { "股栗", "股慄" }, - { "肤", "膚" }, - { "肤发", "膚髮" }, - { "肥筑方言", "肥筑方言" }, - { "肮", "骯" }, - { "肮肮脏脏", "骯骯髒髒" }, - { "肮脏", "骯髒" }, - { "肴", "餚" }, - { "肴馔", "肴饌" }, - { "肾", "腎" }, - { "肿", "腫" }, - { "胀", "脹" }, - { "胁", "脅" }, - { "胃药", "胃藥" }, - { "胃里", "胃裡" }, - { "胆", "膽" }, - { "背地里", "背地裡" }, - { "胎发", "胎髮" }, - { "胜", "勝" }, - { "胜肽", "胜肽" }, - { "胜键", "胜鍵" }, - { "胡云", "胡云" }, - { "胡同", "衚衕" }, - { "胡子", "鬍子" }, - { "胡朴安", "胡樸安" }, - { "胡梢", "鬍梢" }, - { "胡渣", "鬍渣" }, - { "胡里胡涂", "胡裡胡塗" }, - { "胡须", "鬍鬚" }, - { "胡髭", "鬍髭" }, - { "胡髯", "鬍髯" }, - { "胧", "朧" }, - { "胪", "臚" }, - { "胫", "脛" }, - { "胶", "膠" }, - { "胶卷", "膠捲" }, - { "能克制", "能剋制" }, - { "能干", "能幹" }, - { "脉", "脈" }, - { "脉冲", "脈衝" }, - { "脊梁", "脊樑" }, - { "脍", "膾" }, - { "脏", "臟" }, - { "脏东西", "髒東西" }, - { "脏乱", "髒亂" }, - { "脏了", "髒了" }, - { "脏兮兮", "髒兮兮" }, - { "脏发", "髒髮" }, - { "脏字", "髒字" }, - { "脏得", "髒得" }, - { "脏心", "髒心" }, - { "脏水", "髒水" }, - { "脏的", "髒的" }, - { "脏词", "髒詞" }, - { "脏话", "髒話" }, - { "脏钱", "髒錢" }, - { "脐", "臍" }, - { "脑", "腦" }, - { "脑子里", "腦子裡" }, - { "脑干", "腦幹" }, - { "脓", "膿" }, - { "脔", "臠" }, - { "脚", "腳" }, - { "脚注", "腳註" }, - { "脚炼", "腳鍊" }, - { "脱", "脫" }, - { "脱发", "脫髮" }, - { "脱谷机", "脫穀機" }, - { "脶", "腡" }, - { "脸", "臉" }, - { "腊", "臘" }, - { "腊之以为饵", "腊之以為餌" }, - { "腊味", "腊味" }, - { "腊毒", "腊毒" }, - { "腊笔", "腊筆" }, - { "腐余", "腐餘" }, - { "腐干", "腐乾" }, - { "腕表", "腕錶" }, - { "腭", "齶" }, - { "腰里", "腰裡" }, - { "腻", "膩" }, - { "腼", "靦" }, - { "腽", "膃" }, - { "腾", "騰" }, - { "腾冲", "騰衝" }, - { "膏药", "膏藥" }, - { "膑", "臏" }, - { "膨松", "膨鬆" }, - { "臣仆", "臣僕" }, - { "臧谷亡羊", "臧穀亡羊" }, - { "自制", "自製" }, - { "自觉自愿", "自覺自愿" }, - { "致密", "緻密" }, - { "舂谷", "舂穀" }, - { "舆", "輿" }, - { "舌干唇焦", "舌乾唇焦" }, - { "舍不得", "捨不得" }, - { "舍出", "捨出" }, - { "舍去", "捨去" }, - { "舍命", "捨命" }, - { "舍堕", "捨墮" }, - { "舍安就危", "捨安就危" }, - { "舍实", "捨實" }, - { "舍己为人", "捨己為人" }, - { "舍己为公", "捨己為公" }, - { "舍己为国", "捨己為國" }, - { "舍己从人", "捨己從人" }, - { "舍己救人", "捨己救人" }, - { "舍弃", "捨棄" }, - { "舍得", "捨得" }, - { "舍我其谁", "捨我其誰" }, - { "舍本逐末", "捨本逐末" }, - { "舍死忘生", "捨死忘生" }, - { "舍生", "捨生" }, - { "舍短取长", "捨短取長" }, - { "舍身", "捨身" }, - { "舍车保帅", "捨車保帥" }, - { "舍近求远", "捨近求遠" }, - { "舒卷", "舒捲" }, - { "舞后", "舞后" }, - { "舣", "艤" }, - { "航海历", "航海曆" }, - { "舰", "艦" }, - { "舰只", "艦隻" }, - { "舱", "艙" }, - { "船只", "船隻" }, - { "船钟", "船鐘" }, - { "舻", "艫" }, - { "良药", "良藥" }, - { "艰", "艱" }, - { "色欲", "色慾" }, - { "艳", "艷" }, - { "艳后", "艷后" }, - { "艷后", "艷后" }, - { "艸木丰丰", "艸木丰丰" }, - { "艺", "藝" }, - { "节", "節" }, - { "节余", "節餘" }, - { "节欲", "節慾" }, - { "芈", "羋" }, - { "芍药", "芍藥" }, - { "芗", "薌" }, - { "芜", "蕪" }, - { "芦", "蘆" }, - { "花卷", "花捲" }, - { "花哄", "花鬨" }, - { "花庵词选", "花菴詞選" }, - { "花拳绣腿", "花拳繡腿" }, - { "花盆里", "花盆裡" }, - { "花药", "花藥" }, - { "花钟", "花鐘" }, - { "花马吊嘴", "花馬弔嘴" }, - { "苁", "蓯" }, - { "苇", "葦" }, - { "苈", "藶" }, - { "苋", "莧" }, - { "苌", "萇" }, - { "苍", "蒼" }, - { "苍发", "蒼髮" }, - { "苍术", "蒼朮" }, - { "苍郁", "蒼鬱" }, - { "苎", "苧" }, - { "苏", "蘇" }, - { "苏昆", "蘇崑" }, - { "苑里", "苑裡" }, - { "苦干", "苦幹" }, - { "苦斗", "苦鬥" }, - { "苦药", "苦藥" }, - { "苦里", "苦裡" }, - { "苧", "薴" }, - { "英占", "英佔" }, - { "苹", "蘋" }, - { "苹萦", "苹縈" }, - { "茂都淀", "茂都澱" }, - { "范例", "範例" }, - { "范围", "範圍" }, - { "范字", "範字" }, - { "范式", "範式" }, - { "范性形变", "範性形變" }, - { "范数", "範數" }, - { "范文", "範文" }, - { "范本", "範本" }, - { "范畴", "範疇" }, - { "范金", "範金" }, - { "茎", "莖" }, - { "茎干", "莖幹" }, - { "茏", "蘢" }, - { "茑", "蔦" }, - { "茔", "塋" }, - { "茕", "煢" }, - { "茧", "繭" }, - { "茶余", "茶餘" }, - { "茶几", "茶几" }, - { "茶庄", "茶莊" }, - { "茶面", "茶麵" }, - { "荆", "荊" }, - { "草丛里", "草叢裡" }, - { "草广", "草广" }, - { "草荐", "草荐" }, - { "草药", "草藥" }, - { "荐", "薦" }, - { "荐居", "荐居" }, - { "荐臻", "荐臻" }, - { "荐饥", "荐饑" }, - { "荚", "莢" }, - { "荛", "蕘" }, - { "荜", "蓽" }, - { "荞", "蕎" }, - { "荞麦面", "蕎麥麵" }, - { "荟", "薈" }, - { "荠", "薺" }, - { "荡", "盪" }, - { "荡产", "蕩產" }, - { "荡女", "蕩女" }, - { "荡妇", "蕩婦" }, - { "荡寇", "蕩寇" }, - { "荡平", "蕩平" }, - { "荡来荡去", "蕩來蕩去" }, - { "荡气回肠", "蕩氣迴腸" }, - { "荡涤", "蕩滌" }, - { "荡漾", "蕩漾" }, - { "荡然", "蕩然" }, - { "荡舟", "蕩舟" }, - { "荡船", "蕩船" }, - { "荡荡", "蕩蕩" }, - { "荣", "榮" }, - { "荤", "葷" }, - { "荥", "滎" }, - { "荦", "犖" }, - { "荦确", "犖确" }, - { "荧", "熒" }, - { "荧郁", "熒鬱" }, - { "荨", "蕁" }, - { "荩", "藎" }, - { "荪", "蓀" }, - { "荫", "蔭" }, - { "荭", "葒" }, - { "药", "葯" }, - { "药专", "藥專" }, - { "药丸", "藥丸" }, - { "药典", "藥典" }, - { "药到命除", "藥到命除" }, - { "药到病除", "藥到病除" }, - { "药剂", "藥劑" }, - { "药力", "藥力" }, - { "药包", "藥包" }, - { "药医学系", "藥醫學系" }, - { "药单", "藥單" }, - { "药厂", "藥廠" }, - { "药名", "藥名" }, - { "药味", "藥味" }, - { "药品", "藥品" }, - { "药商", "藥商" }, - { "药头", "藥頭" }, - { "药婆", "藥婆" }, - { "药学", "藥學" }, - { "药害", "藥害" }, - { "药局", "藥局" }, - { "药师", "藥師" }, - { "药店", "藥店" }, - { "药引", "藥引" }, - { "药性", "藥性" }, - { "药房", "藥房" }, - { "药效", "藥效" }, - { "药方", "藥方" }, - { "药材", "藥材" }, - { "药检局", "藥檢局" }, - { "药棉", "藥棉" }, - { "药水", "藥水" }, - { "药油", "藥油" }, - { "药液", "藥液" }, - { "药渣", "藥渣" }, - { "药片", "藥片" }, - { "药物", "藥物" }, - { "药王", "藥王" }, - { "药理", "藥理" }, - { "药瓶", "藥瓶" }, - { "药用", "藥用" }, - { "药皂", "藥皂" }, - { "药盒", "藥盒" }, - { "药石", "藥石" }, - { "药科", "藥科" }, - { "药签", "藥籤" }, - { "药箱", "藥箱" }, - { "药粉", "藥粉" }, - { "药糖", "藥糖" }, - { "药线", "藥線" }, - { "药罐", "藥罐" }, - { "药膏", "藥膏" }, - { "药舖", "藥舖" }, - { "药茶", "藥茶" }, - { "药草", "藥草" }, - { "药行", "藥行" }, - { "药贩", "藥販" }, - { "药费", "藥費" }, - { "药酒", "藥酒" }, - { "药量", "藥量" }, - { "药针", "藥針" }, - { "药铺", "藥鋪" }, - { "药面儿", "藥麵兒" }, - { "药饵", "藥餌" }, - { "荷花淀", "荷花澱" }, - { "莅", "蒞" }, - { "莜面", "莜麵" }, - { "莱", "萊" }, - { "莲", "蓮" }, - { "莳", "蒔" }, - { "莴", "萵" }, - { "莶", "薟" }, - { "获", "獲" }, - { "获匪其丑", "獲匪其醜" }, - { "莸", "蕕" }, - { "莹", "瑩" }, - { "莺", "鶯" }, - { "莽荡", "莽蕩" }, - { "菜干", "菜乾" }, - { "菜肴", "菜肴" }, - { "菠棱菜", "菠稜菜" }, - { "菠萝干", "菠蘿乾" }, - { "萝", "蘿" }, - { "萝卜", "蘿蔔" }, - { "萝卜干", "蘿蔔乾" }, - { "萤", "螢" }, - { "营", "營" }, - { "营干", "營幹" }, - { "萦", "縈" }, - { "萦回", "縈迴" }, - { "萧", "蕭" }, - { "萧参", "蕭蔘" }, - { "萨", "薩" }, - { "落发", "落髮" }, - { "落腮胡", "落腮鬍" }, - { "葡占", "葡佔" }, - { "葡萄干", "葡萄乾" }, - { "董氏封发", "董氏封髮" }, - { "葱", "蔥" }, - { "葱郁", "蔥鬱" }, - { "蒇", "蕆" }, - { "蒉", "蕢" }, - { "蒋", "蔣" }, - { "蒌", "蔞" }, - { "蒙事", "矇事" }, - { "蒙头转", "矇頭轉" }, - { "蒙庄", "蒙莊" }, - { "蒙懂", "懞懂" }, - { "蒙昧无知", "矇昧無知" }, - { "蒙松雨", "濛鬆雨" }, - { "蒙汗药", "蒙汗藥" }, - { "蒙汜", "濛汜" }, - { "蒙混", "矇混" }, - { "蒙直", "懞直" }, - { "蒙着", "矇著" }, - { "蒙瞍", "矇瞍" }, - { "蒙聩", "矇聵" }, - { "蒙胧", "朦朧" }, - { "蒙蒙懂懂", "懞懞懂懂" }, - { "蒙蒙细雨", "濛濛細雨" }, - { "蒙雾", "濛霧" }, - { "蒙骗", "矇騙" }, - { "蒙鸿", "濛鴻" }, - { "蒜发", "蒜髮" }, - { "蓄发", "蓄髮" }, - { "蓄胡", "蓄鬍" }, - { "蓄须", "蓄鬚" }, - { "蓊郁", "蓊鬱" }, - { "蓝", "藍" }, - { "蓝淀", "藍澱" }, - { "蓟", "薊" }, - { "蓠", "蘺" }, - { "蓣", "蕷" }, - { "蓥", "鎣" }, - { "蓦", "驀" }, - { "蓬发", "蓬髮" }, - { "蓬松", "蓬鬆" }, - { "蓬蓬松松", "蓬蓬鬆鬆" }, - { "蔂", "虆" }, - { "蔷", "薔" }, - { "蔹", "蘞" }, - { "蔺", "藺" }, - { "蔼", "藹" }, - { "蕲", "蘄" }, - { "蕴", "蘊" }, - { "蕴含着", "蘊含著" }, - { "蕴涵着", "蘊涵著" }, - { "薄干", "薄幹" }, - { "薄幸", "薄倖" }, - { "薙发", "薙髮" }, - { "薝卜", "薝蔔" }, - { "薮", "藪" }, - { "藏历", "藏曆" }, - { "藏蒙歌儿", "藏矇歌兒" }, - { "藓", "蘚" }, - { "藤制", "藤製" }, - { "蘖", "櫱" }, - { "虎斗", "虎鬥" }, - { "虎须", "虎鬚" }, - { "虏", "虜" }, - { "虑", "慮" }, - { "虚", "虛" }, - { "虫", "蟲" }, - { "虫部", "虫部" }, - { "虬", "虯" }, - { "虮", "蟣" }, - { "虮蝨相吊", "蟣蝨相弔" }, - { "虽", "雖" }, - { "虾", "蝦" }, - { "虿", "蠆" }, - { "蚀", "蝕" }, - { "蚁", "蟻" }, - { "蚁后", "蟻后" }, - { "蚂", "螞" }, - { "蚊动牛斗", "蚊動牛鬥" }, - { "蚕", "蠶" }, - { "蚬", "蜆" }, - { "蛇发女妖", "蛇髮女妖" }, - { "蛊", "蠱" }, - { "蛎", "蠣" }, - { "蛏", "蟶" }, - { "蛏干", "蟶乾" }, - { "蛔虫药", "蛔蟲藥" }, - { "蛮", "蠻" }, - { "蛮干", "蠻幹" }, - { "蛰", "蟄" }, - { "蛱", "蛺" }, - { "蛲", "蟯" }, - { "蛳", "螄" }, - { "蛴", "蠐" }, - { "蜂准", "蜂準" }, - { "蜂后", "蜂后" }, - { "蜂涌", "蜂湧" }, - { "蜕", "蛻" }, - { "蜗", "蝸" }, - { "蜜里调油", "蜜裡調油" }, - { "蜡", "蠟" }, - { "蜡月", "蜡月" }, - { "蜡祭", "蜡祭" }, - { "蝇", "蠅" }, - { "蝈", "蟈" }, - { "蝉", "蟬" }, - { "蝎", "蠍" }, - { "蝎蝎螫螫", "蝎蝎螫螫" }, - { "蝎谮", "蝎譖" }, - { "蝼", "螻" }, - { "蝾", "蠑" }, - { "蟻后", "蟻后" }, - { "蠁干", "蠁幹" }, - { "血余", "血餘" }, - { "血拼", "血拚" }, - { "衅", "釁" }, - { "衅钟", "釁鐘" }, - { "行事历", "行事曆" }, - { "行凶", "行兇" }, - { "衔", "銜" }, - { "衣绣昼行", "衣繡晝行" }, - { "补", "補" }, - { "补注", "補註" }, - { "补药", "補藥" }, - { "补血药", "補血藥" }, - { "表停", "錶停" }, - { "表冠", "錶冠" }, - { "表厂", "錶廠" }, - { "表壳", "錶殼" }, - { "表带", "錶帶" }, - { "表店", "錶店" }, - { "表征", "表徵" }, - { "表快", "錶快" }, - { "表慢", "錶慢" }, - { "表板", "錶板" }, - { "表王", "錶王" }, - { "表的历史", "錶的歷史" }, - { "表的嘀嗒", "錶的嘀嗒" }, - { "表盘", "錶盤" }, - { "表蒙子", "錶蒙子" }, - { "表行", "錶行" }, - { "表转", "錶轉" }, - { "表速", "錶速" }, - { "表里", "表裡" }, - { "表针", "錶針" }, - { "表链", "錶鏈" }, - { "衬", "襯" }, - { "衬里", "襯裡" }, - { "衮", "袞" }, - { "袄", "襖" }, - { "袅", "裊" }, - { "袋表", "袋錶" }, - { "袋里", "袋裡" }, - { "袖里", "袖裡" }, - { "袜", "襪" }, - { "被发佯狂", "被髮佯狂" }, - { "被发入山", "被髮入山" }, - { "被发左衽", "被髮左衽" }, - { "被发缨冠", "被髮纓冠" }, - { "被发阳狂", "被髮陽狂" }, - { "被复", "被複" }, - { "被里", "被裡" }, - { "袭", "襲" }, - { "裁制", "裁製" }, - { "裁并", "裁併" }, - { "装", "裝" }, - { "装折", "裝摺" }, - { "裆", "襠" }, - { "裢", "褳" }, - { "裣", "襝" }, - { "裤", "褲" }, - { "褒赞", "褒讚" }, - { "褛", "褸" }, - { "褴", "襤" }, - { "西占", "西佔" }, - { "西历", "西曆" }, - { "西周钟", "西周鐘" }, - { "西岳", "西嶽" }, - { "西晒", "西晒" }, - { "西游", "西遊" }, - { "西药", "西藥" }, - { "要么", "要麼" }, - { "要克制", "要剋制" }, - { "要冲", "要衝" }, - { "要占", "要佔" }, - { "覆盖着", "覆蓋著" }, - { "覆着", "覆著" }, - { "见", "見" }, - { "见棱见角", "見稜見角" }, - { "见素抱朴", "見素抱樸" }, - { "观", "觀" }, - { "观采", "觀採" }, - { "规", "規" }, - { "规范", "規範" }, - { "觅", "覓" }, - { "视", "視" }, - { "觇", "覘" }, - { "览", "覽" }, - { "觉", "覺" }, - { "觊", "覬" }, - { "觋", "覡" }, - { "觌", "覿" }, - { "觎", "覦" }, - { "觏", "覯" }, - { "觐", "覲" }, - { "觑", "覷" }, - { "角落里", "角落裡" }, - { "觚棱", "觚稜" }, - { "觞", "觴" }, - { "解发佯狂", "解髮佯狂" }, - { "解痛药", "解痛藥" }, - { "解药", "解藥" }, - { "解雇", "解僱" }, - { "触", "觸" }, - { "触须", "觸鬚" }, - { "觯", "觶" }, - { "言云", "言云" }, - { "言大而夸", "言大而夸" }, - { "言辩而确", "言辯而确" }, - { "詩云", "詩云" }, - { "誉", "譽" }, - { "誊", "謄" }, - { "語有云", "語有云" }, - { "謷丑", "謷醜" }, - { "警世钟", "警世鐘" }, - { "警报钟", "警報鐘" }, - { "警示钟", "警示鐘" }, - { "警钟", "警鐘" }, - { "计", "計" }, - { "计时表", "計時錶" }, - { "订", "訂" }, - { "订制", "訂製" }, - { "讣", "訃" }, - { "认", "認" }, - { "认准", "認準" }, - { "讥", "譏" }, - { "讦", "訐" }, - { "讧", "訌" }, - { "讨", "討" }, - { "让", "讓" }, - { "讪", "訕" }, - { "讫", "訖" }, - { "训", "訓" }, - { "议", "議" }, - { "讯", "訊" }, - { "记", "記" }, - { "讲", "講" }, - { "讳", "諱" }, - { "讴", "謳" }, - { "讵", "詎" }, - { "讶", "訝" }, - { "讷", "訥" }, - { "许", "許" }, - { "许愿起经", "許愿起經" }, - { "许虬", "許虬" }, - { "讹", "訛" }, - { "论", "論" }, - { "讼", "訟" }, - { "讽", "諷" }, - { "设", "設" }, - { "访", "訪" }, - { "诀", "訣" }, - { "证", "證" }, - { "诂", "詁" }, - { "诃", "訶" }, - { "评", "評" }, - { "评注", "評註" }, - { "诅", "詛" }, - { "识", "識" }, - { "诈", "詐" }, - { "诉", "訴" }, - { "诊", "診" }, - { "诋", "詆" }, - { "诌", "謅" }, - { "词", "詞" }, - { "词余", "詞餘" }, - { "词干", "詞幹" }, - { "词汇", "詞彙" }, - { "诎", "詘" }, - { "诏", "詔" }, - { "译", "譯" }, - { "译注", "譯註" }, - { "诒", "詒" }, - { "诓", "誆" }, - { "诔", "誄" }, - { "诔赞", "誄讚" }, - { "试", "試" }, - { "试制", "試製" }, - { "试药", "試藥" }, - { "诖", "詿" }, - { "诗", "詩" }, - { "诗云", "詩云" }, - { "诗余", "詩餘" }, - { "诗赞", "詩讚" }, - { "诗钟", "詩鐘" }, - { "诘", "詰" }, - { "诙", "詼" }, - { "诚", "誠" }, - { "诚征", "誠徵" }, - { "诚朴", "誠樸" }, - { "诛", "誅" }, - { "诜", "詵" }, - { "话", "話" }, - { "话里有话", "話裡有話" }, - { "诞", "誕" }, - { "诟", "詬" }, - { "诠", "詮" }, - { "诡", "詭" }, - { "询", "詢" }, - { "诣", "詣" }, - { "诤", "諍" }, - { "该", "該" }, - { "该钟", "該鐘" }, - { "详", "詳" }, - { "详征博引", "詳徵博引" }, - { "详注", "詳註" }, - { "诧", "詫" }, - { "诨", "諢" }, - { "诩", "詡" }, - { "诫", "誡" }, - { "诬", "誣" }, - { "诬蔑", "誣衊" }, - { "语", "語" }, - { "语云", "語云" }, - { "语有云", "語有云" }, - { "语汇", "語彙" }, - { "诮", "誚" }, - { "误", "誤" }, - { "诰", "誥" }, - { "诱", "誘" }, - { "诱奸", "誘姦" }, - { "诲", "誨" }, - { "诳", "誑" }, - { "说", "說" }, - { "说着", "說著" }, - { "诵", "誦" }, - { "诶", "誒" }, - { "请", "請" }, - { "请君入瓮", "請君入甕" }, - { "请托", "請託" }, - { "诸", "諸" }, - { "诸余", "諸餘" }, - { "诹", "諏" }, - { "诺", "諾" }, - { "读", "讀" }, - { "诼", "諑" }, - { "诽", "誹" }, - { "课", "課" }, - { "课余", "課餘" }, - { "课征", "課徵" }, - { "诿", "諉" }, - { "谀", "諛" }, - { "谁", "誰" }, - { "谁干的", "誰幹的" }, - { "谂", "諗" }, - { "调", "調" }, - { "调准", "調準" }, - { "调制", "調製" }, - { "调表", "調錶" }, - { "谄", "諂" }, - { "谅", "諒" }, - { "谆", "諄" }, - { "谇", "誶" }, - { "谈", "談" }, - { "谈征", "談徵" }, - { "谊", "誼" }, - { "谋", "謀" }, - { "谋干", "謀幹" }, - { "谌", "諶" }, - { "谍", "諜" }, - { "谎", "謊" }, - { "谏", "諫" }, - { "谐", "諧" }, - { "谑", "謔" }, - { "谒", "謁" }, - { "谓", "謂" }, - { "谔", "諤" }, - { "谕", "諭" }, - { "谖", "諼" }, - { "谗", "讒" }, - { "谘", "諮" }, - { "谙", "諳" }, - { "谚", "諺" }, - { "谛", "諦" }, - { "谜", "謎" }, - { "谝", "諞" }, - { "谟", "謨" }, - { "谠", "讜" }, - { "谡", "謖" }, - { "谢", "謝" }, - { "谢华后", "謝華后" }, - { "谣", "謠" }, - { "谤", "謗" }, - { "谥", "謚" }, - { "谦", "謙" }, - { "谧", "謐" }, - { "谨", "謹" }, - { "谩", "謾" }, - { "谪", "謫" }, - { "谫", "譾" }, - { "谬", "謬" }, - { "谬赞", "謬讚" }, - { "谬采虚声", "謬採虛聲" }, - { "谭", "譚" }, - { "谮", "譖" }, - { "谯", "譙" }, - { "谰", "讕" }, - { "谱", "譜" }, - { "谲", "譎" }, - { "谳", "讞" }, - { "谴", "譴" }, - { "谵", "譫" }, - { "谶", "讖" }, - { "谷人", "穀人" }, - { "谷仓", "穀倉" }, - { "谷保家商", "穀保家商" }, - { "谷圭", "穀圭" }, - { "谷场", "穀場" }, - { "谷壳", "穀殼" }, - { "谷子", "穀子" }, - { "谷日", "穀日" }, - { "谷旦", "穀旦" }, - { "谷梁", "穀梁" }, - { "谷物", "穀物" }, - { "谷皮", "穀皮" }, - { "谷神", "穀神" }, - { "谷米", "穀米" }, - { "谷类", "穀類" }, - { "谷粒", "穀粒" }, - { "谷舱", "穀艙" }, - { "谷苗", "穀苗" }, - { "谷草", "穀草" }, - { "谷谷", "穀穀" }, - { "谷贱伤农", "穀賤傷農" }, - { "谷贵饿农", "穀貴餓農" }, - { "谷道", "穀道" }, - { "谷雨", "穀雨" }, - { "谷食", "穀食" }, - { "豆干", "豆乾" }, - { "象征", "象徵" }, - { "象征着", "象徵著" }, - { "買凶", "買兇" }, - { "賈后", "賈后" }, - { "賢后", "賢后" }, - { "賸余", "賸餘" }, - { "贝", "貝" }, - { "贞", "貞" }, - { "负", "負" }, - { "负债累累", "負債纍纍" }, - { "贡", "貢" }, - { "财", "財" }, - { "责", "責" }, - { "贤", "賢" }, - { "贤后", "賢后" }, - { "败", "敗" }, - { "账", "賬" }, - { "货", "貨" }, - { "质", "質" }, - { "质朴", "質樸" }, - { "贩", "販" }, - { "贪", "貪" }, - { "贪欲", "貪慾" }, - { "贫", "貧" }, - { "贬", "貶" }, - { "购", "購" }, - { "购买欲", "購買慾" }, - { "购并", "購併" }, - { "贮", "貯" }, - { "贯", "貫" }, - { "贰", "貳" }, - { "贱", "賤" }, - { "贲", "賁" }, - { "贳", "貰" }, - { "贴", "貼" }, - { "贵", "貴" }, - { "贵价", "貴价" }, - { "贵干", "貴幹" }, - { "贵征", "貴徵" }, - { "贶", "貺" }, - { "贷", "貸" }, - { "贸", "貿" }, - { "费", "費" }, - { "费占", "費佔" }, - { "贺", "賀" }, - { "贻", "貽" }, - { "贻范", "貽範" }, - { "贼", "賊" }, - { "贽", "贄" }, - { "贾", "賈" }, - { "贾后", "賈后" }, - { "贿", "賄" }, - { "赀", "貲" }, - { "赁", "賃" }, - { "赂", "賂" }, - { "赃", "贓" }, - { "资", "資" }, - { "赅", "賅" }, - { "赆", "贐" }, - { "赇", "賕" }, - { "赈", "賑" }, - { "赈饥", "賑饑" }, - { "赉", "賚" }, - { "赊", "賒" }, - { "赋", "賦" }, - { "赌", "賭" }, - { "赌台", "賭檯" }, - { "赌后", "賭后" }, - { "赌斗", "賭鬥" }, - { "赍", "齎" }, - { "赎", "贖" }, - { "赏", "賞" }, - { "赏赞", "賞讚" }, - { "赐", "賜" }, - { "赓", "賡" }, - { "赔", "賠" }, - { "赕", "賧" }, - { "赖", "賴" }, - { "赘", "贅" }, - { "赙", "賻" }, - { "赚", "賺" }, - { "赛", "賽" }, - { "赜", "賾" }, - { "赝", "贗" }, - { "赞", "贊" }, - { "赞不绝口", "讚不絕口" }, - { "赞乐", "讚樂" }, - { "赞佩", "讚佩" }, - { "赞叹", "讚歎" }, - { "赞叹不已", "讚嘆不已" }, - { "赞呗", "讚唄" }, - { "赞扬", "讚揚" }, - { "赞歌", "讚歌" }, - { "赞美", "讚美" }, - { "赞羡", "讚羨" }, - { "赞誉", "讚譽" }, - { "赞许", "讚許" }, - { "赞词", "讚詞" }, - { "赞赏", "讚賞" }, - { "赞辞", "讚辭" }, - { "赞颂", "讚頌" }, - { "赠", "贈" }, - { "赡", "贍" }, - { "赢", "贏" }, - { "赢余", "贏餘" }, - { "赣", "贛" }, - { "赤术", "赤朮" }, - { "赤绳系足", "赤繩繫足" }, - { "赵", "趙" }, - { "赵威后", "趙威后" }, - { "赵庄", "趙莊" }, - { "赵惠后", "趙惠后" }, - { "赵治勋", "趙治勳" }, - { "赶", "趕" }, - { "赶制", "趕製" }, - { "赶面棍", "趕麵棍" }, - { "起哄", "起鬨" }, - { "起复", "起複" }, - { "超级杯", "超級盃" }, - { "趋", "趨" }, - { "趱", "趲" }, - { "趱干", "趲幹" }, - { "趸", "躉" }, - { "跃", "躍" }, - { "跄", "蹌" }, - { "跌扑", "跌扑" }, - { "跌荡", "跌蕩" }, - { "跞", "躒" }, - { "路签", "路籤" }, - { "跳梁小丑", "跳樑小丑" }, - { "跳荡", "跳蕩" }, - { "跳表", "跳錶" }, - { "践", "踐" }, - { "跷", "蹺" }, - { "跸", "蹕" }, - { "跹", "躚" }, - { "跻", "躋" }, - { "踊", "踴" }, - { "踌", "躊" }, - { "踪", "蹤" }, - { "踬", "躓" }, - { "踯", "躑" }, - { "蹑", "躡" }, - { "蹒", "蹣" }, - { "蹰", "躕" }, - { "蹿", "躥" }, - { "躁郁", "躁鬱" }, - { "躏", "躪" }, - { "躜", "躦" }, - { "躯", "軀" }, - { "躯干", "軀幹" }, - { "车", "車" }, - { "车库里", "車庫裡" }, - { "车站里", "車站裡" }, - { "车里", "車裡" }, - { "轧", "軋" }, - { "轨", "軌" }, - { "轨范", "軌範" }, - { "轩", "軒" }, - { "轩辟", "軒闢" }, - { "轫", "軔" }, - { "转", "轉" }, - { "转台", "轉檯" }, - { "转托", "轉託" }, - { "转斗千里", "轉鬥千里" }, - { "轭", "軛" }, - { "轮", "輪" }, - { "轮回", "輪迴" }, - { "轮奸", "輪姦" }, - { "软", "軟" }, - { "轰", "轟" }, - { "轲", "軻" }, - { "轳", "轤" }, - { "轴", "軸" }, - { "轵", "軹" }, - { "轶", "軼" }, - { "轸", "軫" }, - { "轹", "轢" }, - { "轺", "軺" }, - { "轻", "輕" }, - { "轻松", "輕鬆" }, - { "轻轻松松", "輕輕鬆鬆" }, - { "轼", "軾" }, - { "载", "載" }, - { "轾", "輊" }, - { "轿", "轎" }, - { "辁", "輇" }, - { "辂", "輅" }, - { "较", "較" }, - { "辄", "輒" }, - { "辅", "輔" }, - { "辆", "輛" }, - { "辇", "輦" }, - { "辈", "輩" }, - { "辉", "輝" }, - { "辊", "輥" }, - { "辋", "輞" }, - { "辍", "輟" }, - { "辎", "輜" }, - { "辏", "輳" }, - { "辐", "輻" }, - { "辑", "輯" }, - { "输", "輸" }, - { "辔", "轡" }, - { "辕", "轅" }, - { "辖", "轄" }, - { "辗", "輾" }, - { "辘", "轆" }, - { "辙", "轍" }, - { "辚", "轔" }, - { "辞", "辭" }, - { "辞汇", "辭彙" }, - { "辟为", "闢為" }, - { "辟佛", "闢佛" }, - { "辟作", "闢作" }, - { "辟划", "闢劃" }, - { "辟土", "闢土" }, - { "辟地", "闢地" }, - { "辟室", "闢室" }, - { "辟建", "闢建" }, - { "辟田", "闢田" }, - { "辟筑", "闢築" }, - { "辟谣", "闢謠" }, - { "辟谷", "辟穀" }, - { "辟辟", "闢辟" }, - { "辟邪以律", "闢邪以律" }, - { "辩", "辯" }, - { "辩斗", "辯鬥" }, - { "辫", "辮" }, - { "辫发", "辮髮" }, - { "边", "邊" }, - { "辽", "遼" }, - { "辽沈", "遼瀋" }, - { "达", "達" }, - { "迁", "遷" }, - { "迂回", "迂迴" }, - { "过", "過" }, - { "过杆", "過杆" }, - { "过水面", "過水麵" }, - { "迈", "邁" }, - { "运", "運" }, - { "近日無仇", "近日無讎" }, - { "近日里", "近日裡" }, - { "返朴", "返樸" }, - { "还", "還" }, - { "还冲", "還衝" }, - { "还占", "還佔" }, - { "还采", "還採" }, - { "这", "這" }, - { "这么", "這麼" }, - { "这么着", "這麼著" }, - { "这伙人", "這夥人" }, - { "这只", "這隻" }, - { "这只采", "這只採" }, - { "这里", "這裡" }, - { "这钟", "這鐘" }, - { "进", "進" }, - { "进占", "進佔" }, - { "远", "遠" }, - { "远县才至", "遠縣纔至" }, - { "远游", "遠遊" }, - { "违", "違" }, - { "连", "連" }, - { "连三并四", "連三併四" }, - { "连占", "連佔" }, - { "连庄", "連莊" }, - { "连系", "連繫" }, - { "连采", "連採" }, - { "迟", "遲" }, - { "迥然回异", "迥然迴異" }, - { "迩", "邇" }, - { "迳", "逕" }, - { "迷幻药", "迷幻藥" }, - { "迷药", "迷藥" }, - { "迷蒙", "迷濛" }, - { "迷魂药", "迷魂藥" }, - { "迹", "跡" }, - { "追凶", "追兇" }, - { "退伙", "退夥" }, - { "退烧药", "退燒藥" }, - { "适", "適" }, - { "逆钟", "逆鐘" }, - { "选", "選" }, - { "逊", "遜" }, - { "逋发", "逋髮" }, - { "逍遥游", "逍遙遊" }, - { "透辟", "透闢" }, - { "递", "遞" }, - { "递回", "遞迴" }, - { "通历", "通曆" }, - { "通奸", "通姦" }, - { "通庄", "通莊" }, - { "通心面", "通心麵" }, - { "逞凶斗狠", "逞兇鬥狠" }, - { "逞凶鬥狠", "逞兇鬥狠" }, - { "造钟", "造鐘" }, - { "造钟表", "造鐘錶" }, - { "逦", "邐" }, - { "逻", "邏" }, - { "逼并", "逼併" }, - { "道范", "道範" }, - { "遗", "遺" }, - { "遗传钟", "遺傳鐘" }, - { "遗范", "遺範" }, - { "遗迹", "遺迹" }, - { "遥", "遙" }, - { "遨游", "遨遊" }, - { "遮丑", "遮醜" }, - { "避孕药", "避孕藥" }, - { "邀天之幸", "邀天之倖" }, - { "邋里邋遢", "邋裡邋遢" }, - { "邓", "鄧" }, - { "邝", "鄺" }, - { "那么", "那麼" }, - { "那么着", "那麼著" }, - { "那卷", "那捲" }, - { "那只", "那隻" }, - { "那里", "那裡" }, - { "邬", "鄔" }, - { "邮", "郵" }, - { "邱于庭", "邱于庭" }, - { "邹", "鄒" }, - { "邺", "鄴" }, - { "邻", "鄰" }, - { "郁伊", "鬱伊" }, - { "郁勃", "鬱勃" }, - { "郁卒", "鬱卒" }, - { "郁南", "鬱南" }, - { "郁垒", "鬱壘" }, - { "郁堙不偶", "鬱堙不偶" }, - { "郁塞", "鬱塞" }, - { "郁律", "鬱律" }, - { "郁悒", "鬱悒" }, - { "郁愤", "鬱憤" }, - { "郁抑", "鬱抑" }, - { "郁挹", "鬱挹" }, - { "郁朴", "郁樸" }, - { "郁林", "鬱林" }, - { "郁气", "鬱氣" }, - { "郁江", "鬱江" }, - { "郁沉沉", "鬱沉沉" }, - { "郁泱", "鬱泱" }, - { "郁火", "鬱火" }, - { "郁热", "鬱熱" }, - { "郁燠", "鬱燠" }, - { "郁症", "鬱症" }, - { "郁积", "鬱積" }, - { "郁纡", "鬱紆" }, - { "郁结", "鬱結" }, - { "郁蒸", "鬱蒸" }, - { "郁蓊", "鬱蓊" }, - { "郁血", "鬱血" }, - { "郁邑", "鬱邑" }, - { "郁郁", "鬱郁" }, - { "郁郁不乐", "鬱鬱不樂" }, - { "郁郁不平", "鬱鬱不平" }, - { "郁郁寡欢", "鬱鬱寡歡" }, - { "郁郁而终", "鬱鬱而終" }, - { "郁郁葱葱", "鬱鬱蔥蔥" }, - { "郁金", "鬱金" }, - { "郁闭", "鬱閉" }, - { "郁闷", "鬱悶" }, - { "郁陶", "鬱陶" }, - { "郁黑", "鬱黑" }, - { "郊游", "郊遊" }, - { "郏", "郟" }, - { "郐", "鄶" }, - { "郑", "鄭" }, - { "郑凯云", "鄭凱云" }, - { "郑庄公", "鄭莊公" }, - { "郓", "鄆" }, - { "郘钟", "郘鐘" }, - { "郦", "酈" }, - { "郧", "鄖" }, - { "郭后", "郭后" }, - { "郸", "鄲" }, - { "鄉愿", "鄉愿" }, - { "鄭凱云", "鄭凱云" }, - { "配制", "配製" }, - { "配水干管", "配水幹管" }, - { "配药", "配藥" }, - { "酒坛", "酒罈" }, - { "酒帘", "酒帘" }, - { "酒曲", "酒麴" }, - { "酒肴", "酒肴" }, - { "酒药", "酒藥" }, - { "酝", "醞" }, - { "酝酿着", "醞釀著" }, - { "酥松", "酥鬆" }, - { "酱", "醬" }, - { "酽", "釅" }, - { "酾", "釃" }, - { "酿", "釀" }, - { "酿制", "釀製" }, - { "醇朴", "醇樸" }, - { "醋坛", "醋罈" }, - { "采下", "採下" }, - { "采为", "採為" }, - { "采买", "採買" }, - { "采伐", "採伐" }, - { "采住", "採住" }, - { "采信", "採信" }, - { "采光", "採光" }, - { "采到", "採到" }, - { "采制", "採制" }, - { "采办", "採辦" }, - { "采区", "採區" }, - { "采去", "採去" }, - { "采取", "採取" }, - { "采回", "採回" }, - { "采在", "採在" }, - { "采好", "採好" }, - { "采录", "採錄" }, - { "采得", "採得" }, - { "采择", "採擇" }, - { "采拾", "採拾" }, - { "采挖", "採挖" }, - { "采掘", "採掘" }, - { "采摘", "採摘" }, - { "采摭", "採摭" }, - { "采撷", "採擷" }, - { "采收", "採收" }, - { "采料", "採料" }, - { "采暖", "採暖" }, - { "采树种", "採樹種" }, - { "采样", "採樣" }, - { "采桑", "採桑" }, - { "采樵人", "採樵人" }, - { "采气", "採氣" }, - { "采油", "採油" }, - { "采煤", "採煤" }, - { "采猎", "採獵" }, - { "采珠", "採珠" }, - { "采生折割", "採生折割" }, - { "采用", "採用" }, - { "采的", "採的" }, - { "采盐", "採鹽" }, - { "采石", "採石" }, - { "采矿", "採礦" }, - { "采砂场", "採砂場" }, - { "采种", "採種" }, - { "采空区", "採空區" }, - { "采空采穗", "採空採穗" }, - { "采納", "採納" }, - { "采纳", "採納" }, - { "采给", "採給" }, - { "采花", "採花" }, - { "采芹人", "採芹人" }, - { "采茶", "採茶" }, - { "采药", "採藥" }, - { "采莲", "採蓮" }, - { "采获", "採獲" }, - { "采菊", "採菊" }, - { "采薇", "採薇" }, - { "采薪", "採薪" }, - { "采行", "採行" }, - { "采补", "採補" }, - { "采访", "採訪" }, - { "采证", "採證" }, - { "采购", "採購" }, - { "采过", "採過" }, - { "采运", "採運" }, - { "采选", "採選" }, - { "采金", "採金" }, - { "采铁", "採鐵" }, - { "采集", "採集" }, - { "采风", "採風" }, - { "采食", "採食" }, - { "釉药", "釉藥" }, - { "释", "釋" }, - { "里勾外连", "裡勾外連" }, - { "里头", "裡頭" }, - { "里层", "裡層" }, - { "里屋", "裡屋" }, - { "里布", "裡布" }, - { "里带", "裡帶" }, - { "里应外合", "裡應外合" }, - { "里弦", "裡弦" }, - { "里手", "裏手" }, - { "里海", "裏海" }, - { "里程表", "里程錶" }, - { "里脊", "裡脊" }, - { "里衣", "裡衣" }, - { "里边", "裡邊" }, - { "里通外国", "裡通外國" }, - { "里通外敌", "裡通外敵" }, - { "里间", "裡間" }, - { "里面", "裡面" }, - { "重制", "重製" }, - { "重复", "重複" }, - { "重托", "重託" }, - { "重折", "重摺" }, - { "重游", "重遊" }, - { "重罗面", "重羅麵" }, - { "重锤", "重鎚" }, - { "野姜", "野薑" }, - { "野游", "野遊" }, - { "金仑溪", "金崙溪" }, - { "金发", "金髮" }, - { "金色长发", "金色長髮" }, - { "金范", "金範" }, - { "金表", "金錶" }, - { "金装玉里", "金裝玉裡" }, - { "金钟", "金鐘" }, - { "金马仑道", "金馬崙道" }, - { "鉴", "鑒" }, - { "銮", "鑾" }, - { "錾", "鏨" }, - { "鎭", "鎮" }, - { "钆", "釓" }, - { "钇", "釔" }, - { "针", "針" }, - { "钉", "釘" }, - { "钉锤", "釘鎚" }, - { "钊", "釗" }, - { "钋", "釙" }, - { "钌", "釕" }, - { "钍", "釷" }, - { "钏", "釧" }, - { "钐", "釤" }, - { "钒", "釩" }, - { "钓", "釣" }, - { "钔", "鍆" }, - { "钕", "釹" }, - { "钗", "釵" }, - { "钙", "鈣" }, - { "钛", "鈦" }, - { "钜", "鉅" }, - { "钝", "鈍" }, - { "钞", "鈔" }, - { "钟", "鍾" }, - { "钟上", "鐘上" }, - { "钟下", "鐘下" }, - { "钟不", "鐘不" }, - { "钟乳洞", "鐘乳洞" }, - { "钟乳石", "鐘乳石" }, - { "钟体", "鐘體" }, - { "钟停", "鐘停" }, - { "钟关", "鐘關" }, - { "钟匠", "鐘匠" }, - { "钟发音", "鐘發音" }, - { "钟口", "鐘口" }, - { "钟响", "鐘響" }, - { "钟在寺里", "鐘在寺裡" }, - { "钟塔", "鐘塔" }, - { "钟壁", "鐘壁" }, - { "钟声", "鐘聲" }, - { "钟太", "鐘太" }, - { "钟头", "鐘頭" }, - { "钟好", "鐘好" }, - { "钟山", "鐘山" }, - { "钟左右", "鐘左右" }, - { "钟差", "鐘差" }, - { "钟座", "鐘座" }, - { "钟形", "鐘形" }, - { "钟律", "鐘律" }, - { "钟快", "鐘快" }, - { "钟意", "鐘意" }, - { "钟慢", "鐘慢" }, - { "钟摆", "鐘擺" }, - { "钟敲", "鐘敲" }, - { "钟有", "鐘有" }, - { "钟楼", "鐘樓" }, - { "钟模", "鐘模" }, - { "钟没", "鐘沒" }, - { "钟漏", "鐘漏" }, - { "钟点", "鐘點" }, - { "钟王", "鐘王" }, - { "钟琴", "鐘琴" }, - { "钟的", "鐘的" }, - { "钟盘", "鐘盤" }, - { "钟相", "鐘相" }, - { "钟磬", "鐘磬" }, - { "钟纽", "鐘紐" }, - { "钟罩", "鐘罩" }, - { "钟腰", "鐘腰" }, - { "钟螺", "鐘螺" }, - { "钟行", "鐘行" }, - { "钟表", "鐘錶" }, - { "钟表面", "鐘表面" }, - { "钟被", "鐘被" }, - { "钟调", "鐘調" }, - { "钟身", "鐘身" }, - { "钟速", "鐘速" }, - { "钟陈列", "鐘陳列" }, - { "钟面", "鐘面" }, - { "钟顶", "鐘頂" }, - { "钟鸣", "鐘鳴" }, - { "钟鼎", "鐘鼎" }, - { "钟鼓", "鐘鼓" }, - { "钠", "鈉" }, - { "钡", "鋇" }, - { "钢", "鋼" }, - { "钢制", "鋼製" }, - { "钢梁", "鋼樑" }, - { "钣", "鈑" }, - { "钤", "鈐" }, - { "钥", "鑰" }, - { "钦", "欽" }, - { "钧", "鈞" }, - { "钨", "鎢" }, - { "钩", "鉤" }, - { "钩心斗角", "鈎心鬥角" }, - { "钪", "鈧" }, - { "钫", "鈁" }, - { "钬", "鈥" }, - { "钭", "鈄" }, - { "钮", "鈕" }, - { "钯", "鈀" }, - { "钰", "鈺" }, - { "钱", "錢" }, - { "钱庄", "錢莊" }, - { "钱范", "錢範" }, - { "钱谷", "錢穀" }, - { "钲", "鉦" }, - { "钳", "鉗" }, - { "钴", "鈷" }, - { "钵", "缽" }, - { "钶", "鈳" }, - { "钸", "鈽" }, - { "钹", "鈸" }, - { "钺", "鉞" }, - { "钻", "鑽" }, - { "钼", "鉬" }, - { "钽", "鉭" }, - { "钾", "鉀" }, - { "钿", "鈿" }, - { "铀", "鈾" }, - { "铁", "鐵" }, - { "铁杆", "鐵杆" }, - { "铁钟", "鐵鐘" }, - { "铁锈", "鐵鏽" }, - { "铁锤", "鐵鎚" }, - { "铂", "鉑" }, - { "铃", "鈴" }, - { "铄", "鑠" }, - { "铅", "鉛" }, - { "铆", "鉚" }, - { "铈", "鈰" }, - { "铉", "鉉" }, - { "铊", "鉈" }, - { "铋", "鉍" }, - { "铌", "鈮" }, - { "铍", "鈹" }, - { "铎", "鐸" }, - { "铐", "銬" }, - { "铑", "銠" }, - { "铒", "鉺" }, - { "铕", "銪" }, - { "铖", "鋮" }, - { "铗", "鋏" }, - { "铙", "鐃" }, - { "铛", "鐺" }, - { "铜", "銅" }, - { "铜制", "銅製" }, - { "铜范", "銅範" }, - { "铜钟", "銅鐘" }, - { "铝", "鋁" }, - { "铝制", "鋁製" }, - { "铟", "銦" }, - { "铠", "鎧" }, - { "铡", "鍘" }, - { "铢", "銖" }, - { "铣", "銑" }, - { "铤", "鋌" }, - { "铥", "銩" }, - { "铧", "鏵" }, - { "铨", "銓" }, - { "铩", "鎩" }, - { "铪", "鉿" }, - { "铫", "銚" }, - { "铬", "鉻" }, - { "铭", "銘" }, - { "铮", "錚" }, - { "铯", "銫" }, - { "铯钟", "銫鐘" }, - { "铰", "鉸" }, - { "铱", "銥" }, - { "铲", "鏟" }, - { "铲出", "剷出" }, - { "铲刈", "剷刈" }, - { "铲头", "剷頭" }, - { "铲平", "剷平" }, - { "铲除", "剷除" }, - { "铳", "銃" }, - { "铴", "鐋" }, - { "铵", "銨" }, - { "银", "銀" }, - { "银发", "銀髮" }, - { "银朱", "銀硃" }, - { "铷", "銣" }, - { "铸", "鑄" }, - { "铸钟", "鑄鐘" }, - { "铹", "鐒" }, - { "铺", "鋪" }, - { "铺锦列绣", "鋪錦列繡" }, - { "铼", "錸" }, - { "铽", "鋱" }, - { "链", "鏈" }, - { "铿", "鏗" }, - { "销", "銷" }, - { "锁", "鎖" }, - { "锂", "鋰" }, - { "锄", "鋤" }, - { "锅", "鍋" }, - { "锅庄", "鍋莊" }, - { "锆", "鋯" }, - { "锇", "鋨" }, - { "锈", "銹" }, - { "锈病", "鏽病" }, - { "锈菌", "鏽菌" }, - { "锈蚀", "鏽蝕" }, - { "锉", "銼" }, - { "锊", "鋝" }, - { "锋", "鋒" }, - { "锌", "鋅" }, - { "锐", "銳" }, - { "锑", "銻" }, - { "锒", "鋃" }, - { "锓", "鋟" }, - { "锔", "鋦" }, - { "锕", "錒" }, - { "锖", "錆" }, - { "锗", "鍺" }, - { "错", "錯" }, - { "锚", "錨" }, - { "锛", "錛" }, - { "锞", "錁" }, - { "锟", "錕" }, - { "锡", "錫" }, - { "锢", "錮" }, - { "锣", "鑼" }, - { "锤", "錘" }, - { "锤儿", "鎚兒" }, - { "锤头", "鎚頭" }, - { "锤子", "鎚子" }, - { "锤炼", "錘鍊" }, - { "锥", "錐" }, - { "锦", "錦" }, - { "锦绣", "錦繡" }, - { "锨", "杴" }, - { "锩", "錈" }, - { "锬", "錟" }, - { "锭", "錠" }, - { "键", "鍵" }, - { "锯", "鋸" }, - { "锰", "錳" }, - { "锱", "錙" }, - { "锲", "鍥" }, - { "锲而不舍", "鍥而不捨" }, - { "锴", "鍇" }, - { "锵", "鏘" }, - { "锶", "鍶" }, - { "锷", "鍔" }, - { "锸", "鍤" }, - { "锹", "鍬" }, - { "锺", "鍾" }, - { "锻", "鍛" }, - { "锻炼出", "鍛鍊出" }, - { "锼", "鎪" }, - { "锾", "鍰" }, - { "镀", "鍍" }, - { "镁", "鎂" }, - { "镂", "鏤" }, - { "镄", "鐨" }, - { "镆", "鏌" }, - { "镇", "鎮" }, - { "镉", "鎘" }, - { "镊", "鑷" }, - { "镌", "鐫" }, - { "镍", "鎳" }, - { "镏", "鎦" }, - { "镐", "鎬" }, - { "镑", "鎊" }, - { "镒", "鎰" }, - { "镓", "鎵" }, - { "镔", "鑌" }, - { "镖", "鏢" }, - { "镗", "鏜" }, - { "镘", "鏝" }, - { "镙", "鏍" }, - { "镛", "鏞" }, - { "镜", "鏡" }, - { "镝", "鏑" }, - { "镞", "鏃" }, - { "镟", "鏇" }, - { "镡", "鐔" }, - { "镢", "钁" }, - { "镣", "鐐" }, - { "镤", "鏷" }, - { "镦", "鐓" }, - { "镧", "鑭" }, - { "镨", "鐠" }, - { "镪", "鏹" }, - { "镫", "鐙" }, - { "镬", "鑊" }, - { "镭", "鐳" }, - { "镯", "鐲" }, - { "镰", "鐮" }, - { "镰仓", "鎌倉" }, - { "镱", "鐿" }, - { "镳", "鑣" }, - { "镶", "鑲" }, - { "长", "長" }, - { "长几", "長几" }, - { "长历", "長曆" }, - { "长生药", "長生藥" }, - { "长胡", "長鬍" }, - { "门", "門" }, - { "门吊儿", "門弔兒" }, - { "门帘", "門帘" }, - { "门里", "門裡" }, - { "闩", "閂" }, - { "闪", "閃" }, - { "闫", "閆" }, - { "闭", "閉" }, - { "问", "問" }, - { "闯", "闖" }, - { "闯炼", "闖鍊" }, - { "闯荡", "闖蕩" }, - { "闰", "閏" }, - { "闱", "闈" }, - { "闲", "閑" }, - { "闲情逸致", "閒情逸緻" }, - { "闲游", "閒遊" }, - { "闲荡", "閒蕩" }, - { "闳", "閎" }, - { "间", "間" }, - { "间不容发", "間不容髮" }, - { "闵", "閔" }, - { "闵采尔", "閔採爾" }, - { "闶", "閌" }, - { "闷", "悶" }, - { "闷着头儿干", "悶著頭兒幹" }, - { "闸", "閘" }, - { "闹", "鬧" }, - { "闹着玩儿", "鬧著玩兒" }, - { "闹表", "鬧錶" }, - { "闹钟", "鬧鐘" }, - { "闺", "閨" }, - { "闺范", "閨範" }, - { "闻", "聞" }, - { "闼", "闥" }, - { "闽", "閩" }, - { "闾", "閭" }, - { "阀", "閥" }, - { "阁", "閣" }, - { "阂", "閡" }, - { "阃", "閫" }, - { "阃范", "閫範" }, - { "阄", "鬮" }, - { "阅", "閱" }, - { "阆", "閬" }, - { "阈", "閾" }, - { "阉", "閹" }, - { "阊", "閶" }, - { "阋", "鬩" }, - { "阌", "閿" }, - { "阍", "閽" }, - { "阎", "閻" }, - { "阏", "閼" }, - { "阐", "闡" }, - { "阑", "闌" }, - { "阒", "闃" }, - { "阔", "闊" }, - { "阕", "闋" }, - { "阖", "闔" }, - { "阗", "闐" }, - { "阙", "闕" }, - { "阚", "闞" }, - { "队", "隊" }, - { "防台", "防颱" }, - { "防御", "防禦" }, - { "防晒", "防晒" }, - { "防水表", "防水錶" }, - { "防范", "防範" }, - { "防锈", "防鏽" }, - { "阳", "陽" }, - { "阳历", "陽曆" }, - { "阳春面", "陽春麵" }, - { "阴", "陰" }, - { "阴历", "陰曆" }, - { "阴干", "陰乾" }, - { "阴沟里翻船", "陰溝裡翻船" }, - { "阴郁", "陰鬱" }, - { "阵", "陣" }, - { "阶", "階" }, - { "阿呆", "阿獃" }, - { "附注", "附註" }, - { "际", "際" }, - { "陆", "陸" }, - { "陆游", "陸遊" }, - { "陇", "隴" }, - { "陈", "陳" }, - { "陈冲", "陳冲" }, - { "陈有后", "陳有后" }, - { "陈炼", "陳鍊" }, - { "陉", "陘" }, - { "降压药", "降壓藥" }, - { "陕", "陝" }, - { "除臭药", "除臭藥" }, - { "陧", "隉" }, - { "陨", "隕" }, - { "险", "險" }, - { "陪吊", "陪弔" }, - { "陳冲", "陳冲" }, - { "隆准", "隆準" }, - { "随", "隨" }, - { "隐", "隱" }, - { "隐几", "隱几" }, - { "隐占", "隱佔" }, - { "隶", "隸" }, - { "隽", "雋" }, - { "难", "難" }, - { "难舍", "難捨" }, - { "雅致", "雅緻" }, - { "雅范", "雅範" }, - { "集游法", "集遊法" }, - { "雇主", "僱主" }, - { "雇人", "僱人" }, - { "雇佣", "僱傭" }, - { "雇农", "僱農" }, - { "雇到", "僱到" }, - { "雇员", "僱員" }, - { "雇工", "僱工" }, - { "雇用", "僱用" }, - { "雏", "雛" }, - { "雕心雁爪", "鵰心雁爪" }, - { "雕悍", "鵰悍" }, - { "雕梁画栋", "雕樑畫棟" }, - { "雕翎", "鵰翎" }, - { "雕鹗", "鵰鶚" }, - { "雠", "讎" }, - { "雪窗萤几", "雪窗螢几" }, - { "雪里", "雪裡" }, - { "雳", "靂" }, - { "零余", "零餘" }, - { "零只", "零隻" }, - { "雾", "霧" }, - { "雾里", "霧裡" }, - { "霁", "霽" }, - { "霁范", "霽範" }, - { "震栗", "震慄" }, - { "震荡", "震蕩" }, - { "霉毒", "黴毒" }, - { "霉素", "黴素" }, - { "霉菌", "黴菌" }, - { "霉黑", "黴黑" }, - { "霉黧", "黴黧" }, - { "霭", "靄" }, - { "露丑", "露醜" }, - { "霸占", "霸佔" }, - { "青山一发", "青山一髮" }, - { "青苹", "青苹" }, - { "青霉", "青黴" }, - { "靓", "靚" }, - { "静", "靜" }, - { "非占不可", "非佔不可" }, - { "面临着", "面臨著" }, - { "面人儿", "麵人兒" }, - { "面价", "麵價" }, - { "面包", "麵包" }, - { "面包扎", "面包紮" }, - { "面包着", "面包著" }, - { "面厂", "麵廠" }, - { "面团", "麵糰" }, - { "面坊", "麵坊" }, - { "面坯儿", "麵坯兒" }, - { "面塑", "麵塑" }, - { "面店", "麵店" }, - { "面摊", "麵攤" }, - { "面朝着", "面朝著" }, - { "面杖", "麵杖" }, - { "面条", "麵條" }, - { "面汤", "麵湯" }, - { "面浆", "麵漿" }, - { "面灰", "麵灰" }, - { "面疙瘩", "麵疙瘩" }, - { "面皮", "麵皮" }, - { "面码儿", "麵碼兒" }, - { "面筋", "麵筋" }, - { "面粉", "麵粉" }, - { "面糊", "麵糊" }, - { "面线", "麵線" }, - { "面缸", "麵缸" }, - { "面茶", "麵茶" }, - { "面食", "麵食" }, - { "面食面", "面食麵" }, - { "面饺", "麵餃" }, - { "面饼", "麵餅" }, - { "面馆", "麵館" }, - { "靥", "靨" }, - { "鞋里", "鞋裡" }, - { "鞑", "韃" }, - { "鞣制", "鞣製" }, - { "鞭辟入里", "鞭辟入裡" }, - { "鞯", "韉" }, - { "鞲", "韝" }, - { "韦", "韋" }, - { "韦庄", "韋莊" }, - { "韧", "韌" }, - { "韩", "韓" }, - { "韩制", "韓製" }, - { "韩国制", "韓國製" }, - { "韪", "韙" }, - { "韫", "韞" }, - { "韬", "韜" }, - { "音准", "音準" }, - { "音声如钟", "音聲如鐘" }, - { "韵", "韻" }, - { "页", "頁" }, - { "顶", "頂" }, - { "顷", "頃" }, - { "顸", "頇" }, - { "项", "項" }, - { "项庄", "項莊" }, - { "顺", "順" }, - { "顺钟向", "順鐘向" }, - { "须", "須" }, - { "须发", "鬚髮" }, - { "须根", "鬚根" }, - { "须毛", "鬚毛" }, - { "须生", "鬚生" }, - { "须眉", "鬚眉" }, - { "须胡", "鬚鬍" }, - { "须须", "鬚鬚" }, - { "须鲨", "鬚鯊" }, - { "须鲸", "鬚鯨" }, - { "顼", "頊" }, - { "顽", "頑" }, - { "顾", "顧" }, - { "顿", "頓" }, - { "颀", "頎" }, - { "颁", "頒" }, - { "颂", "頌" }, - { "颂系", "頌繫" }, - { "颂赞", "頌讚" }, - { "颃", "頏" }, - { "预", "預" }, - { "预制", "預製" }, - { "颅", "顱" }, - { "领", "領" }, - { "领域里", "領域裡" }, - { "领袖欲", "領袖慾" }, - { "颇", "頗" }, - { "颈", "頸" }, - { "颉", "頡" }, - { "颊", "頰" }, - { "颊须", "頰鬚" }, - { "颌", "頜" }, - { "颍", "潁" }, - { "颏", "頦" }, - { "颐", "頤" }, - { "频", "頻" }, - { "颓", "頹" }, - { "颔", "頷" }, - { "颖", "穎" }, - { "颗", "顆" }, - { "题", "題" }, - { "题签", "題籤" }, - { "颚", "顎" }, - { "颛", "顓" }, - { "颜", "顏" }, - { "颜范", "顏範" }, - { "额", "額" }, - { "额征", "額徵" }, - { "额我略历", "額我略曆" }, - { "颞", "顳" }, - { "颟", "顢" }, - { "颠", "顛" }, - { "颠干倒坤", "顛乾倒坤" }, - { "颡", "顙" }, - { "颢", "顥" }, - { "颤", "顫" }, - { "颤栗", "顫慄" }, - { "颦", "顰" }, - { "颧", "顴" }, - { "风", "風" }, - { "风卷残云", "風捲殘雲" }, - { "风后", "風后" }, - { "风土志", "風土誌" }, - { "风干", "風乾" }, - { "风物志", "風物誌" }, - { "风范", "風範" }, - { "风起云涌", "風起雲湧" }, - { "风里", "風裡" }, - { "飑", "颮" }, - { "飒", "颯" }, - { "飓", "颶" }, - { "飕", "颼" }, - { "飘", "飄" }, - { "飘游", "飄遊" }, - { "飘荡", "飄蕩" }, - { "飘飘荡荡", "飄飄蕩蕩" }, - { "飙", "飆" }, - { "飞", "飛" }, - { "飞刍挽粟", "飛芻輓粟" }, - { "飞扎", "飛紮" }, - { "飞行钟", "飛行鐘" }, - { "食欲", "食慾" }, - { "食野之苹", "食野之苹" }, - { "食面", "食麵" }, - { "飨", "饗" }, - { "餍", "饜" }, - { "饥", "飢" }, - { "饥寒", "饑寒" }, - { "饥民", "饑民" }, - { "饥渴", "饑渴" }, - { "饥溺", "饑溺" }, - { "饥荒", "饑荒" }, - { "饥饱", "饑飽" }, - { "饥馑", "饑饉" }, - { "饧", "餳" }, - { "饨", "飩" }, - { "饩", "餼" }, - { "饪", "飪" }, - { "饫", "飫" }, - { "饬", "飭" }, - { "饭", "飯" }, - { "饭后钟", "飯後鐘" }, - { "饭团", "飯糰" }, - { "饭庄", "飯莊" }, - { "饮", "飲" }, - { "饯", "餞" }, - { "饰", "飾" }, - { "饱", "飽" }, - { "饲", "飼" }, - { "饲喂", "飼餵" }, - { "饴", "飴" }, - { "饵", "餌" }, - { "饶", "饒" }, - { "饷", "餉" }, - { "饺", "餃" }, - { "饼", "餅" }, - { "饼干", "餅乾" }, - { "饽", "餑" }, - { "饿", "餓" }, - { "馀", "餘" }, - { "馁", "餒" }, - { "馄", "餛" }, - { "馄饨面", "餛飩麵" }, - { "馅", "餡" }, - { "馆", "館" }, - { "馆谷", "館穀" }, - { "馆里", "館裡" }, - { "馈", "饋" }, - { "馊", "餿" }, - { "馋", "饞" }, - { "馍", "饃" }, - { "馏", "餾" }, - { "馐", "饈" }, - { "馑", "饉" }, - { "馒", "饅" }, - { "馔", "饌" }, - { "首只", "首隻" }, - { "首当其冲", "首當其衝" }, - { "香干", "香乾" }, - { "马", "馬" }, - { "马干", "馬乾" }, - { "马杆", "馬杆" }, - { "马表", "馬錶" }, - { "驭", "馭" }, - { "驮", "馱" }, - { "驯", "馴" }, - { "驰", "馳" }, - { "驱", "驅" }, - { "驳", "駁" }, - { "驴", "驢" }, - { "驵", "駔" }, - { "驶", "駛" }, - { "驷", "駟" }, - { "驸", "駙" }, - { "驹", "駒" }, - { "驺", "騶" }, - { "驻", "駐" }, - { "驻扎", "駐紮" }, - { "驼", "駝" }, - { "驽", "駑" }, - { "驾", "駕" }, - { "驿", "驛" }, - { "骀", "駘" }, - { "骀荡", "駘蕩" }, - { "骁", "驍" }, - { "骂", "罵" }, - { "骂着", "罵著" }, - { "骄", "驕" }, - { "骅", "驊" }, - { "骆", "駱" }, - { "骇", "駭" }, - { "骈", "駢" }, - { "骊", "驪" }, - { "骋", "騁" }, - { "验", "驗" }, - { "骏", "駿" }, - { "骐", "騏" }, - { "骑", "騎" }, - { "骒", "騍" }, - { "骓", "騅" }, - { "骖", "驂" }, - { "骗", "騙" }, - { "骘", "騭" }, - { "骚", "騷" }, - { "骛", "騖" }, - { "骜", "驁" }, - { "骝", "騮" }, - { "骞", "騫" }, - { "骟", "騸" }, - { "骠", "驃" }, - { "骡", "騾" }, - { "骢", "驄" }, - { "骣", "驏" }, - { "骤", "驟" }, - { "骥", "驥" }, - { "骧", "驤" }, - { "骨坛", "骨罈" }, - { "骨子里", "骨子裡" }, - { "骨干", "骨幹" }, - { "骨灰坛", "骨灰罈" }, - { "髅", "髏" }, - { "髋", "髖" }, - { "髌", "髕" }, - { "高几", "高几" }, - { "高干", "高幹" }, - { "高清愿", "高清愿" }, - { "髡发", "髡髮" }, - { "髭胡", "髭鬍" }, - { "髭须", "髭鬚" }, - { "髯胡", "髯鬍" }, - { "髼松", "髼鬆" }, - { "鬅松", "鬅鬆" }, - { "鬈发", "鬈髮" }, - { "鬒发", "鬒髮" }, - { "鬓", "鬢" }, - { "鬓发", "鬢髮" }, - { "魂牵梦系", "魂牽夢繫" }, - { "魇", "魘" }, - { "魉", "魎" }, - { "魏征", "魏徵" }, - { "魔杰座", "魔杰座" }, - { "魔表", "魔錶" }, - { "鱼", "魚" }, - { "鱼干", "魚乾" }, - { "鱼松", "魚鬆" }, - { "鱿", "魷" }, - { "鲁", "魯" }, - { "鲂", "魴" }, - { "鲆", "鮃" }, - { "鲇", "鯰" }, - { "鲈", "鱸" }, - { "鲋", "鮒" }, - { "鲍", "鮑" }, - { "鲎", "鱟" }, - { "鲐", "鮐" }, - { "鲑", "鮭" }, - { "鲒", "鮚" }, - { "鲔", "鮪" }, - { "鲕", "鮞" }, - { "鲚", "鱭" }, - { "鲛", "鮫" }, - { "鲜", "鮮" }, - { "鲞", "鯗" }, - { "鲟", "鱘" }, - { "鲠", "鯁" }, - { "鲡", "鱺" }, - { "鲢", "鰱" }, - { "鲣", "鰹" }, - { "鲤", "鯉" }, - { "鲥", "鰣" }, - { "鲦", "鰷" }, - { "鲧", "鯀" }, - { "鲨", "鯊" }, - { "鲩", "鯇" }, - { "鲫", "鯽" }, - { "鲭", "鯖" }, - { "鲮", "鯪" }, - { "鲰", "鯫" }, - { "鲱", "鯡" }, - { "鲲", "鯤" }, - { "鲳", "鯧" }, - { "鲵", "鯢" }, - { "鲶", "鯰" }, - { "鲷", "鯛" }, - { "鲸", "鯨" }, - { "鲸须", "鯨鬚" }, - { "鲻", "鯔" }, - { "鲽", "鰈" }, - { "鳃", "鰓" }, - { "鳄", "鱷" }, - { "鳅", "鰍" }, - { "鳆", "鰒" }, - { "鳇", "鰉" }, - { "鳌", "鰲" }, - { "鳍", "鰭" }, - { "鳎", "鰨" }, - { "鳏", "鰥" }, - { "鳐", "鰩" }, - { "鳓", "鰳" }, - { "鳔", "鰾" }, - { "鳕", "鱈" }, - { "鳖", "鱉" }, - { "鳗", "鰻" }, - { "鳜", "鱖" }, - { "鳝", "鱔" }, - { "鳞", "鱗" }, - { "鳟", "鱒" }, - { "鳢", "鱧" }, - { "鸟", "鳥" }, - { "鸠", "鳩" }, - { "鸠占鹊巢", "鳩佔鵲巢" }, - { "鸡", "雞" }, - { "鸡丝面", "雞絲麵" }, - { "鸡争鹅斗", "雞爭鵝鬥" }, - { "鸡只", "雞隻" }, - { "鸡吵鹅斗", "雞吵鵝鬥" }, - { "鸡奸", "雞姦" }, - { "鸡腿面", "雞腿麵" }, - { "鸡蛋里挑骨头", "雞蛋裡挑骨頭" }, - { "鸢", "鳶" }, - { "鸣", "鳴" }, - { "鸣钟", "鳴鐘" }, - { "鸥", "鷗" }, - { "鸦", "鴉" }, - { "鸨", "鴇" }, - { "鸩", "鴆" }, - { "鸪", "鴣" }, - { "鸫", "鶇" }, - { "鸬", "鸕" }, - { "鸭", "鴨" }, - { "鸯", "鴦" }, - { "鸱", "鴟" }, - { "鸲", "鴝" }, - { "鸳", "鴛" }, - { "鸵", "鴕" }, - { "鸶", "鷥" }, - { "鸷", "鷙" }, - { "鸸", "鴯" }, - { "鸹", "鴰" }, - { "鸺", "鵂" }, - { "鸽", "鴿" }, - { "鸾", "鸞" }, - { "鸿", "鴻" }, - { "鸿案相庄", "鴻案相莊" }, - { "鸿篇巨制", "鴻篇巨製" }, - { "鸿范", "鴻範" }, - { "鹁", "鵓" }, - { "鹂", "鸝" }, - { "鹃", "鵑" }, - { "鹄", "鵠" }, - { "鹄发", "鵠髮" }, - { "鹅", "鵝" }, - { "鹅准", "鵝準" }, - { "鹆", "鵒" }, - { "鹇", "鷳" }, - { "鹈", "鵜" }, - { "鹉", "鵡" }, - { "鹊", "鵲" }, - { "鹌", "鵪" }, - { "鹎", "鵯" }, - { "鹏", "鵬" }, - { "鹑", "鶉" }, - { "鹕", "鶘" }, - { "鹗", "鶚" }, - { "鹘", "鶻" }, - { "鹚", "鶿" }, - { "鹜", "鶩" }, - { "鹞", "鷂" }, - { "鹣", "鶼" }, - { "鹤", "鶴" }, - { "鹤发", "鶴髮" }, - { "鹤吊", "鶴弔" }, - { "鹦", "鸚" }, - { "鹧", "鷓" }, - { "鹨", "鷚" }, - { "鹩", "鷯" }, - { "鹪", "鷦" }, - { "鹫", "鷲" }, - { "鹬", "鷸" }, - { "鹭", "鷺" }, - { "鹰", "鷹" }, - { "鹰雕", "鹰鵰" }, - { "鹳", "鸛" }, - { "鹾", "鹺" }, - { "麦", "麥" }, - { "麸", "麩" }, - { "麻药", "麻藥" }, - { "麻酱面", "麻醬麵" }, - { "麻醉药", "麻醉藥" }, - { "黃詩杰", "黃詩杰" }, - { "黃鈺筑", "黃鈺筑" }, - { "黄", "黃" }, - { "黄历", "黃曆" }, - { "黄发", "黃髮" }, - { "黄干黑瘦", "黃乾黑瘦" }, - { "黄曲毒素", "黃麴毒素" }, - { "黄诗杰", "黃詩杰" }, - { "黄钟", "黃鐘" }, - { "黄钰筑", "黃鈺筑" }, - { "黉", "黌" }, - { "黑发", "黑髮" }, - { "黑色长发", "黑色長髮" }, - { "黩", "黷" }, - { "黪", "黲" }, - { "黾", "黽" }, - { "鼋", "黿" }, - { "鼍", "鼉" }, - { "鼓里", "鼓裡" }, - { "鼗", "鞀" }, - { "鼠曲草", "鼠麴草" }, - { "鼠药", "鼠藥" }, - { "鼹", "鼴" }, - { "鼻准", "鼻準" }, - { "鼻梁", "鼻樑" }, - { "齄", "齇" }, - { "齐", "齊" }, - { "齐庄", "齊莊" }, - { "齐王舍牛", "齊王捨牛" }, - { "齑", "齏" }, - { "齿", "齒" }, - { "齿危发秀", "齒危髮秀" }, - { "齿发", "齒髮" }, - { "龀", "齔" }, - { "龃", "齟" }, - { "龄", "齡" }, - { "龅", "齙" }, - { "龆", "齠" }, - { "龇", "齜" }, - { "龈", "齦" }, - { "龉", "齬" }, - { "龊", "齪" }, - { "龋", "齲" }, - { "龌", "齷" }, - { "龙", "龍" }, - { "龙卷", "龍捲" }, - { "龙斗虎伤", "龍鬥虎傷" }, - { "龙须", "龍鬚" }, - { "龚", "龔" }, - { "龛", "龕" }, - { "龟", "龜" }, -}; -#define SIMP_TO_TRAD_MAX_LEN (6) diff --git a/src/PyZySpecialPhrase.cc b/src/PyZySpecialPhrase.cc deleted file mode 100644 index 59f9376..0000000 --- a/src/PyZySpecialPhrase.cc +++ /dev/null @@ -1,31 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#include "PyZySpecialPhrase.h" - -namespace PY { - -SpecialPhrase::~SpecialPhrase (void) -{ -} - -}; - diff --git a/src/PyZySpecialPhrase.h b/src/PyZySpecialPhrase.h deleted file mode 100644 index d113cee..0000000 --- a/src/PyZySpecialPhrase.h +++ /dev/null @@ -1,47 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_SPECIAL_PHRASE_H_ -#define __PYZY_SPECIAL_PHRASE_H_ - -#include - -namespace PyZy { - -class SpecialPhrase { -public: - SpecialPhrase (size_t pos) : m_position (pos) { } - virtual ~SpecialPhrase (void) { } - - size_t position (void) const - { - return m_position; - } - - virtual std::string text (void) = 0; - -private: - size_t m_position; -}; - -}; // namespace PyZy - -#endif // __PYZY_SPECIAL_PHRASE_H_ diff --git a/src/PyZySpecialPhraseTable.cc b/src/PyZySpecialPhraseTable.cc deleted file mode 100644 index fd37079..0000000 --- a/src/PyZySpecialPhraseTable.cc +++ /dev/null @@ -1,123 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#include "PyZySpecialPhraseTable.h" -#include -#include "PyZyDynamicSpecialPhrase.h" -#include "PyZySpecialPhrase.h" - -namespace PyZy { - -std::unique_ptr SpecialPhraseTable::m_instance; - -class StaticSpecialPhrase : public SpecialPhrase { -public: - StaticSpecialPhrase (const std::string &text, size_t pos) : - SpecialPhrase (pos), m_text (text) { } - ~StaticSpecialPhrase (void) { } - - std::string text (void) { return m_text; } - -private: - std::string m_text; -}; - -SpecialPhraseTable::SpecialPhraseTable (const std::string &config_dir) -{ - char * path = - g_build_filename (config_dir.c_str(), "phrases.txt", NULL); - - load ("phrases.txt") || - load (path) || - load (PKGDATADIR G_DIR_SEPARATOR_S "phrases.txt"); - g_free (path); -} - -bool -SpecialPhraseTable::lookup (const std::string &command, - std::vector &result) -{ - result.clear (); - - std::pair range = m_map.equal_range (command); - for (Map::iterator it = range.first; it != range.second; it ++) { - result.push_back ((*it).second->text ()); - } - - return result.size () > 0; -} - -bool -SpecialPhraseTable::load (const char *file) -{ - m_map.clear (); - - std::ifstream in (file); - if (in.fail ()) - return false; - - std::string line; - while (!in.eof ()) { - getline (in, line); - if (line.size () == 0 || line[0] == ';') - continue; - size_t pos = line.find ('='); - if (pos == line.npos) - continue; - - std::string command = line.substr(0, pos); - std::string value = line.substr(pos + 1); - if (command.empty () || value.empty ()) - continue; - - if (value[0] != '#') { - SpecialPhrasePtr phrase (new StaticSpecialPhrase (value, 0)); - m_map.insert (Map::value_type (command, phrase)); - } - else if (value.size () > 1) { - SpecialPhrasePtr phrase (new DynamicSpecialPhrase (value.substr (1), 0)); - m_map.insert (Map::value_type (command, phrase)); - } - } - return true; -} - -void -SpecialPhraseTable::init (const std::string &config_dir) -{ - if (config_dir.empty ()) { - g_error ("Error: An argument of init is empty string."); - return; - } - m_instance.reset (new SpecialPhraseTable (config_dir)); -} - -SpecialPhraseTable & -SpecialPhraseTable::instance (void) -{ - if (m_instance.get () == NULL) { - g_error ("Error: Please call PyZy::InputContext::init () !"); - } - return *m_instance; -} - - -}; // namespace PyZy diff --git a/src/PyZySpecialPhraseTable.h b/src/PyZySpecialPhraseTable.h deleted file mode 100644 index 5a1dd5d..0000000 --- a/src/PyZySpecialPhraseTable.h +++ /dev/null @@ -1,60 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_SPECIAL_PHRASE_TABLE_H_ -#define __PYZY_SPECIAL_PHRASE_TABLE_H_ - -#include -#include -#include -#include -#include "PyZyUtil.h" - -namespace PyZy { - -class SpecialPhrase; -typedef std::shared_ptr SpecialPhrasePtr; - -class SpecialPhraseTable { -private: - explicit SpecialPhraseTable (const std::string &config_dir); - -public: - bool lookup (const std::string &command, std::vector &result); - -private: - bool load (const char *file); - -public: - static void init (const std::string &config_dir); - static SpecialPhraseTable & instance (void); - -private: - typedef std::multimap Map; - Map m_map; - -private: - static std::unique_ptr m_instance; -}; - -}; // namespace PyZy - -#endif // __PYZY_SPECIAL_PHRASE_TABLE_H_ diff --git a/src/PyZyString.h b/src/PyZyString.h deleted file mode 100644 index 5209dc9..0000000 --- a/src/PyZyString.h +++ /dev/null @@ -1,190 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_STRING_H_ -#define __PYZY_STRING_H_ - -#include -#include -#include -#include "PyZyUtil.h" - -namespace PyZy { - -class String : public std::string { -public: - String () : std::string () { } - String (const char *str) : std::string (str) { } - String (const std::string &str) : std::string (str) { } - String (size_t len) : std::string () { reserve (len); } - - String & printf (const char *fmt, ...) - { - char *str; - va_list args; - - va_start (args, fmt); - str = g_strdup_vprintf (fmt, args); - va_end (args); - - assign (str); - g_free (str); - return *this; - } - - String & appendPrintf (const char *fmt, ...) - { - char *str; - va_list args; - - va_start (args, fmt); - str = g_strdup_vprintf (fmt, args); - va_end (args); - - append (str); - g_free (str); - - return *this; - } - - String & appendUnichar (unichar ch) - { - char str[12]; - size_t len; - len = g_unichar_to_utf8 (ch, str); - str[len] = 0; - append (str); - return *this; - } - - String & insert (size_t i, char ch) - { - std::string::insert (i, 1, ch); - return *this; - } - - String & truncate (size_t len) - { - erase(len); - return *this; - } - - String & replace (const char *pattern, const char *str) - { - String result; - String::size_type pos = 0; - String::size_type pos_before = 0; - const String::size_type length = std::string (pattern).size (); - - while ((pos = this->find (pattern, pos)) != String::npos) { - result.append (*this, pos_before, pos - pos_before); - result.append (str); - pos += length; - pos_before = pos; - } - result.append (*this, pos_before, this->size () - pos_before); - this->assign (result); - return *this; - } - - size_t utf8Length (void) const - { - return g_utf8_strlen (c_str(), -1); - } - - String & operator<< (int i) - { - return appendPrintf ("%d", i); - } - - String & operator<< (unsigned int i) - { - return appendPrintf ("%u", i); - } - - String & operator<< (unsigned long i) - { - return appendPrintf ("%lu", i); - } - - String & operator<< (const char ch) - { - append (1, ch); - return *this; - } - - String & operator<< (const char *str) - { - append (str); - return *this; - } - - String & operator<< (const unichar *wstr) - { - char *str; - GError *error; - str = g_ucs4_to_utf8 (wstr, -1, NULL, NULL, &error); - if (str == NULL) { - g_warning ("convert ucs4 to utf8 failed: %s", error->message); - g_error_free (error); - } - else { - append (str); - g_free (str); - } - return *this; - } - - char operator[] (size_t i) - { - return std::string::operator[] (i); - } - - String & operator<< (const std::string &str) - { - return operator<< (str.c_str ()); - } - - String & operator<< (const String &str) - { - return operator<< ((const char *)str); - } - - String & operator= (const char * str) - { - assign (str); - return *this; - } - - operator const char *(void) const - { - return this->c_str (); - } - - operator bool (void) const - { - return ! empty (); - } -}; - -}; // namespace PyZy - -#endif // __PYZY_STRING_H_ diff --git a/src/PyZyTypes.h b/src/PyZyTypes.h deleted file mode 100644 index 559fc9d..0000000 --- a/src/PyZyTypes.h +++ /dev/null @@ -1,106 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_TYPES_H_ -#define __PYZY_TYPES_H_ - -namespace PyZy { - -#define PINYIN_ID_VOID (-1) -#define PINYIN_ID_ZERO (0) -#define PINYIN_ID_B (1) -#define PINYIN_ID_C (2) -#define PINYIN_ID_CH (3) -#define PINYIN_ID_D (4) -#define PINYIN_ID_F (5) -#define PINYIN_ID_G (6) -#define PINYIN_ID_H (7) -#define PINYIN_ID_J (8) -#define PINYIN_ID_K (9) -#define PINYIN_ID_L (10) -#define PINYIN_ID_M (11) -#define PINYIN_ID_N (12) -#define PINYIN_ID_P (13) -#define PINYIN_ID_Q (14) -#define PINYIN_ID_R (15) -#define PINYIN_ID_S (16) -#define PINYIN_ID_SH (17) -#define PINYIN_ID_T (18) -#define PINYIN_ID_W (19) -#define PINYIN_ID_X (20) -#define PINYIN_ID_Y (21) -#define PINYIN_ID_Z (22) -#define PINYIN_ID_ZH (23) -#define PINYIN_ID_A (24) -#define PINYIN_ID_AI (25) -#define PINYIN_ID_AN (26) -#define PINYIN_ID_ANG (27) -#define PINYIN_ID_AO (28) -#define PINYIN_ID_E (29) -#define PINYIN_ID_EI (30) -#define PINYIN_ID_EN (31) -#define PINYIN_ID_ENG (32) -#define PINYIN_ID_ER (33) -#define PINYIN_ID_I (34) -#define PINYIN_ID_IA (35) -#define PINYIN_ID_IAN (36) -#define PINYIN_ID_IANG (37) -#define PINYIN_ID_IAO (38) -#define PINYIN_ID_IE (39) -#define PINYIN_ID_IN (40) -#define PINYIN_ID_ING (41) -#define PINYIN_ID_IONG (42) -#define PINYIN_ID_IU (43) -#define PINYIN_ID_O (44) -#define PINYIN_ID_ONG (45) -#define PINYIN_ID_OU (46) -#define PINYIN_ID_U (47) -#define PINYIN_ID_UA (48) -#define PINYIN_ID_UAI (49) -#define PINYIN_ID_UAN (50) -#define PINYIN_ID_UANG (51) -#define PINYIN_ID_UE (52) -#define PINYIN_ID_VE PINYIN_ID_UE -#define PINYIN_ID_UI (53) -#define PINYIN_ID_UN (54) -#define PINYIN_ID_UO (55) -#define PINYIN_ID_V (56) -#define PINYIN_ID_NG PINYIN_ID_VOID - -struct Pinyin { - const char *text; - const wchar_t *bopomofo; - const char *sheng; - const char *yun; - struct { - unsigned char sheng; - unsigned char yun; - } pinyin_id[3]; - const size_t len; - const unsigned int flags; -}; - -#define MAX_UTF8_LEN 6 -#define MAX_PHRASE_LEN 16 - -}; // namespace PyZy - -#endif // __PYZY_TYPES_H_ diff --git a/src/PyZyUtil.h b/src/PyZyUtil.h deleted file mode 100644 index 1bd4f4a..0000000 --- a/src/PyZyUtil.h +++ /dev/null @@ -1,122 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_UTIL_H_ -#define __PYZY_UTIL_H_ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#if defined(HAVE_UUID_CREATE) -# include -#elif defined(HAVE_LIBUUID) -# include -#endif - -#include -#include -#include - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -# include -#else -# include -# include - -namespace std { - // import boost::shared_ptr to std namespace - using boost::shared_ptr; - // import boost::scoped_ptr to std namespace, and rename to unique_ptr - // XXX: the unique_ptr can transfer the pointer ownership, - // but scoped_ptr cannot. - template class unique_ptr : public boost::scoped_ptr {}; -}; -#endif // __GXX_EXPERIMENTAL_CXX0X__PYZY_ - -namespace PyZy { -// for Unicode -typedef unsigned int unichar; - -class UUID { -public: - UUID (void) - { - uuid_t u; -#if defined(HAVE_UUID_CREATE) - char *uuid; - uuid_create (&u, 0); - uuid_to_string (&u, &uuid, 0); - g_strlcpy (m_uuid, uuid, sizeof(m_uuid)); - free(uuid); -#elif defined(HAVE_LIBUUID) - uuid_generate (u); - uuid_unparse_lower (u, m_uuid); -#endif - } - - operator const char * (void) const - { - return m_uuid; - } - -private: - char m_uuid[256]; -}; - -class Uname { -public: - Uname (void) - { - uname (&m_buf); - } - - const char *hostname (void) const { return m_buf.nodename; } -private: - struct utsname m_buf; -}; - -class Hostname : public Uname { -public: - operator const char * (void) const - { - return hostname (); - } -}; - -class Env : public std::string { -public: - Env (const char *name) - { - char *str; - str = std::getenv (name); - assign (str != NULL ? str : ""); - } - - operator const char *(void) const - { - return c_str(); - } -}; - -}; // namespace PyZy - -#endif // __PYZY_UTIL_H_ diff --git a/src/PyZyVariant.cc b/src/PyZyVariant.cc deleted file mode 100644 index e3fdcf9..0000000 --- a/src/PyZyVariant.cc +++ /dev/null @@ -1,72 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#include "PyZyVariant.h" - -namespace PyZy { - -Variant::Variant() -{ -} - -// static -Variant Variant::fromBool (bool value) -{ - Variant variant; - variant.m_type = TYPE_BOOL; - variant.m_value.bool_value = value; - return variant; -} - -// static -Variant Variant::fromUnsignedInt (unsigned int value) -{ - Variant variant; - variant.m_type = TYPE_UNSIGNED_INT; - variant.m_value.unsigned_int_value = value; - return variant; -} - -// static -Variant Variant::nullVariant (void) -{ - Variant variant; - variant.m_type = TYPE_NULL; - variant.m_value.unsigned_int_value = 0u; - return variant; -} - -Variant::Type Variant::getType (void) const -{ - return m_type; -} - -bool Variant::getBool (void) const -{ - return m_value.bool_value; -} - -unsigned int Variant::getUnsignedInt (void) const -{ - return m_value.unsigned_int_value; -} - -} // namespace PyZy diff --git a/src/PyZyVariant.h b/src/PyZyVariant.h deleted file mode 100644 index c48b05e..0000000 --- a/src/PyZyVariant.h +++ /dev/null @@ -1,99 +0,0 @@ -/* vim:set et ts=4 sts=4: - * - * libpyzy - The Chinese PinYin and Bopomofo conversion library. - * - * Copyright (c) 2008-2010 Peng Huang - * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ -#ifndef __PYZY_VARIANT_H_ -#define __PYZY_VARIANT_H_ - -namespace PyZy { - -/** - * \brief Variant class to handle various type of value. - */ -class Variant { -public: - /** - * \brief The type contained in the variant. - */ - enum Type { - /** null */ - TYPE_NULL, - /** boolean value */ - TYPE_BOOL, - /** unsigned int value */ - TYPE_UNSIGNED_INT, - }; - - /** - * \brief Creates a Variant object from the argument. - * @param value boolean value. - * @return Variant object. - */ - static Variant fromBool (bool value); - - /** - * \brief Creates a Variant object from the argument. - * @param value unsigned int value. - * @return Variant object. - */ - static Variant fromUnsignedInt (unsigned int value); - - /** - * \brief Creates a null Variant object. - * @return Variant object. - */ - static Variant nullVariant (void); - - /** - * \brief Gets a type of the contained value. - * @return type of the contained value. - * @see Type - */ - Type getType (void) const; - - /** - * \brief Gets a value as bool. - * @return value of the variant as bool. - * - * This method doesn't check the type. - */ - bool getBool (void) const; - - /** - * \brief Gets a value as unsigned int. - * @return value of the variant as bool. - * - * This method doesn't check the type. - */ - unsigned int getUnsignedInt (void) const; - -private: - Variant(); - - Type m_type; - union { - bool bool_value; - unsigned int unsigned_int_value; - } m_value; -}; - -} // namespace PyZy - -#endif diff --git a/src/SimpTradConverter.cc b/src/SimpTradConverter.cc new file mode 100644 index 0000000..4a2b492 --- /dev/null +++ b/src/SimpTradConverter.cc @@ -0,0 +1,179 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * Copyright (c) 2010 BYVoid + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#include "SimpTradConverter.h" + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#ifdef HAVE_OPENCC +# include +#else +# include +# include +#endif + +#include "String.h" + +namespace PyZy { + +#ifdef HAVE_OPENCC + +class opencc { + static const int BUFFER_SIZE = 64; +public: + opencc (void) + { + m_od = opencc_open (OPENCC_DEFAULT_CONFIG_SIMP_TO_TRAD); + g_assert (m_od != NULL); + } + + ~opencc (void) + { + opencc_close(m_od); + } + + void convert (const char *in, String &out) + { + long n_char; + unichar *in_ucs4 = g_utf8_to_ucs4_fast (in, -1, &n_char); + + ucs4_t *pinbuf = (ucs4_t *)in_ucs4; + size_t inbuf_left = n_char; + while (inbuf_left != 0) { + ucs4_t *poutbuf = (ucs4_t *)m_buffer; + size_t outbuf_left = BUFFER_SIZE; + size_t retval = opencc_convert(m_od, &pinbuf, &inbuf_left, &poutbuf, &outbuf_left); + if (retval == (size_t) -1) { + /* append left chars in pinbuf */ + g_warning ("opencc_convert return failed"); + out << (unichar *) pinbuf; + break; + } + *poutbuf = L'\0'; + out << m_buffer; + } + g_free (in_ucs4); + } +private: + opencc_t m_od; + unichar m_buffer[BUFFER_SIZE + 1]; +}; + +void +SimpTradConverter::simpToTrad (const char *in, String &out) +{ + static opencc opencc; + opencc.convert (in, out); +} + +#else + +static int _xcmp (const char *p1, const char *p2, const char *str) +{ + for (;;) { + // both reach end + if (p1 == p2 && *str == '\0') + return 0; + // p1 reaches end + if (p1 == p2) + return -1; + // str reaches end + if (*str == '\0') + return 1; + + if (*p1 < *str) + return -1; + if (*p1 > *str) + return 1; + + p1 ++; str ++; + }; +} + +static int _cmp (const void * p1, const void * p2) +{ + const char **pp = (const char **) p1; + const char **s2 = (const char **) p2; + + return _xcmp (pp[0], pp[1], s2[0]); +} + +#include "SimpTradConverterTable.h" + +void +SimpTradConverter::simpToTrad (const char *in, String &out) +{ + const char *pend; + const char *pp[2]; + size_t len; + size_t begin; + + if (!g_utf8_validate (in, -1 , NULL)) { + g_warning ("\%s\" is not an utf8 string!", in); + g_assert_not_reached (); + } + + begin = 0; + pend = in + std::strlen (in); + len = g_utf8_strlen (in, -1); // length in charactoers + pp[0] = in; + + while (pp[0] != pend) { + size_t slen = std::min (len - begin, static_cast(SIMP_TO_TRAD_MAX_LEN)); // the length of sub string in character + pp[1] = g_utf8_offset_to_pointer (pp[0], slen); // the end of sub string + + for (;;) { + const char **result; + result = (const char **) std::bsearch (pp, simp_to_trad, + G_N_ELEMENTS (simp_to_trad), sizeof (simp_to_trad[0]), + _cmp); + + if (result != NULL) { + // found item in table, + // append the trad to out and adjust pointers + out << result[1]; + pp[0] = pp[1]; + begin += slen; + break; + } + + if (slen == 1) { + // if only one character left, + // append origin character to out and adjust pointers + out.append (pp[0], pp[1] - pp[0]); + pp[0] = pp[1]; + begin += 1; + break; + } + + // if more than on characters left, + // adjust pp[1] to previous character + pp[1] = g_utf8_prev_char (pp[1]); + slen--; + } + } +} +#endif // HAVE_OPENCC + +}; // namespace PyZy diff --git a/src/SimpTradConverter.h b/src/SimpTradConverter.h new file mode 100644 index 0000000..3c777e3 --- /dev/null +++ b/src/SimpTradConverter.h @@ -0,0 +1,36 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_SIMP_TRAD_CONVERTER_H_ +#define __PYZY_SIMP_TRAD_CONVERTER_H_ + +namespace PyZy { + +class String; + +class SimpTradConverter { +public: + static void simpToTrad (const char *in, String &out); +}; + +}; // namespace PyZy + +#endif // __PYZY_SIMP_TRAD_CONVERTER_H_ diff --git a/src/SimpTradConverterTable.h b/src/SimpTradConverterTable.h new file mode 100644 index 0000000..202c9bd --- /dev/null +++ b/src/SimpTradConverterTable.h @@ -0,0 +1,7427 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +static const char *simp_to_trad[][2] = { + { "〇余", "〇餘" }, + { "〇只", "〇隻" }, + { "一个准", "一個準" }, + { "一争两丑", "一爭兩醜" }, + { "一伙", "一夥" }, + { "一余", "一餘" }, + { "一冲", "一衝" }, + { "一准", "一準" }, + { "一出子", "一齣子" }, + { "一划", "一划" }, + { "一别头", "一彆頭" }, + { "一发千钧", "一髮千鈞" }, + { "一只", "一隻" }, + { "一吊", "一弔" }, + { "一哄而散", "一鬨而散" }, + { "一地里", "一地裡" }, + { "一天钟", "一天鐘" }, + { "一头长发", "一頭長髮" }, + { "一干二净", "一乾二淨" }, + { "一并", "一併" }, + { "一扎", "一紮" }, + { "一树百获", "一樹百穫" }, + { "一物克一物", "一物剋一物" }, + { "一锅面", "一鍋麵" }, + { "七余", "七餘" }, + { "七只", "七隻" }, + { "七情六欲", "七情六慾" }, + { "七扎", "七紮" }, + { "万", "萬" }, + { "万余", "萬餘" }, + { "万俟", "万俟" }, + { "万历", "萬曆" }, + { "万只", "萬隻" }, + { "万年历表", "萬年曆錶" }, + { "万扎", "萬紮" }, + { "万旗", "万旗" }, + { "万签插架", "萬籤插架" }, + { "三余", "三餘" }, + { "三准", "三準" }, + { "三只", "三隻" }, + { "三复", "三複" }, + { "三征七辟", "三徵七辟" }, + { "三扎", "三紮" }, + { "三统历", "三統曆" }, + { "上梁", "上樑" }, + { "上签", "上籤" }, + { "上药", "上藥" }, + { "上课钟", "上課鐘" }, + { "下仑路", "下崙路" }, + { "下梁", "下樑" }, + { "下签", "下籤" }, + { "下药", "下藥" }, + { "下课钟", "下課鐘" }, + { "不丑", "不醜" }, + { "不克制", "不剋制" }, + { "不准", "不準" }, + { "不占", "不佔" }, + { "不吊", "不弔" }, + { "不寒而栗", "不寒而慄" }, + { "不干", "不幹" }, + { "不干不净", "不乾不淨" }, + { "不托", "不託" }, + { "不斗", "不鬥" }, + { "不药而愈", "不藥而癒" }, + { "不谷", "不穀" }, + { "不通吊庆", "不通弔慶" }, + { "不采", "不採" }, + { "不锈钢", "不鏽鋼" }, + { "不食干腊", "不食乾腊" }, + { "与", "與" }, + { "与克制", "與剋制" }, + { "丑丑", "醜醜" }, + { "丑丫头", "醜丫頭" }, + { "丑事", "醜事" }, + { "丑于", "醜於" }, + { "丑人", "醜人" }, + { "丑侪", "醜儕" }, + { "丑八怪", "醜八怪" }, + { "丑剌剌", "醜剌剌" }, + { "丑剧", "醜劇" }, + { "丑化", "醜化" }, + { "丑史", "醜史" }, + { "丑名", "醜名" }, + { "丑咤", "醜吒" }, + { "丑地", "醜地" }, + { "丑声", "醜聲" }, + { "丑头怪脸", "醜頭怪臉" }, + { "丑夷", "醜夷" }, + { "丑女", "醜女" }, + { "丑奴儿", "醜奴兒" }, + { "丑妇", "醜婦" }, + { "丑媳", "醜媳" }, + { "丑小鸭", "醜小鴨" }, + { "丑巴怪", "醜巴怪" }, + { "丑徒", "醜徒" }, + { "丑态", "醜態" }, + { "丑恶", "醜惡" }, + { "丑末", "醜末" }, + { "丑杂", "醜雜" }, + { "丑样", "醜樣" }, + { "丑死", "醜死" }, + { "丑比", "醜比" }, + { "丑毙了", "醜斃了" }, + { "丑沮", "醜沮" }, + { "丑男", "醜男" }, + { "丑类", "醜類" }, + { "丑脸", "醜臉" }, + { "丑虏", "醜虜" }, + { "丑行", "醜行" }, + { "丑言", "醜言" }, + { "丑诋", "醜詆" }, + { "丑话", "醜話" }, + { "丑语", "醜語" }, + { "丑贼生", "醜賊生" }, + { "丑辞", "醜辭" }, + { "丑辱", "醜辱" }, + { "丑逆", "醜逆" }, + { "丑闻", "醜聞" }, + { "丑陋", "醜陋" }, + { "专", "專" }, + { "专注", "專註" }, + { "专辑里", "專輯裡" }, + { "世界杯", "世界盃" }, + { "世界里", "世界裡" }, + { "世纪钟", "世紀鐘" }, + { "业", "業" }, + { "业余", "業餘" }, + { "丛", "叢" }, + { "东", "東" }, + { "东冲西突", "東衝西突" }, + { "东周钟", "東周鐘" }, + { "东岳", "東嶽" }, + { "东游", "東遊" }, + { "丝", "絲" }, + { "丝制", "絲製" }, + { "丝发", "絲髮" }, + { "丝恩发怨", "絲恩髮怨" }, + { "丢", "丟" }, + { "丢丑", "丟醜" }, + { "两", "兩" }, + { "两余", "兩餘" }, + { "两只", "兩隻" }, + { "两天晒网", "兩天晒網" }, + { "两扎", "兩紮" }, + { "两虎共斗", "兩虎共鬥" }, + { "两鼠斗穴", "兩鼠鬥穴" }, + { "严", "嚴" }, + { "严云农", "嚴云農" }, + { "丧", "喪" }, + { "丧钟", "喪鐘" }, + { "个", "個" }, + { "个中原因", "箇中原因" }, + { "个中奥妙", "箇中奧妙" }, + { "个中奥秘", "箇中奧秘" }, + { "个中好手", "箇中好手" }, + { "个中强手", "箇中強手" }, + { "个中消息", "箇中消息" }, + { "个中滋味", "箇中滋味" }, + { "个中玄机", "箇中玄機" }, + { "个中理由", "箇中理由" }, + { "个中讯息", "箇中訊息" }, + { "个中资讯", "箇中資訊" }, + { "个中高手", "箇中高手" }, + { "个旧", "箇舊" }, + { "个里", "個裡" }, + { "个钟", "個鐘" }, + { "个钟表", "個鐘錶" }, + { "中仑", "中崙" }, + { "中型钟", "中型鐘" }, + { "中岳", "中嶽" }, + { "中文里", "中文裡" }, + { "中签", "中籤" }, + { "中药", "中藥" }, + { "丰", "豐" }, + { "丰仪", "丰儀" }, + { "丰儀", "丰儀" }, + { "丰南", "丰南" }, + { "丰台", "丰台" }, + { "丰姿", "丰姿" }, + { "丰容", "丰容" }, + { "丰度", "丰度" }, + { "丰情", "丰情" }, + { "丰标", "丰標" }, + { "丰標不凡", "丰標不凡" }, + { "丰神", "丰神" }, + { "丰茸", "丰茸" }, + { "丰采", "丰采" }, + { "丰韵", "丰韻" }, + { "丰韻", "丰韻" }, + { "临", "臨" }, + { "临潼斗宝", "臨潼鬥寶" }, + { "丸药", "丸藥" }, + { "丹药", "丹藥" }, + { "为", "為" }, + { "为准", "為準" }, + { "为着", "為著" }, + { "主仆", "主僕" }, + { "主干", "主幹" }, + { "主钟曲线", "主鐘曲線" }, + { "丽", "麗" }, + { "举", "舉" }, + { "么么小丑", "么麼小丑" }, + { "义", "義" }, + { "义仆", "義僕" }, + { "义占", "義佔" }, + { "义庄", "義莊" }, + { "之余", "之餘" }, + { "之征", "之徵" }, + { "之托", "之託" }, + { "之钟", "之鐘" }, + { "乌", "烏" }, + { "乌发", "烏髮" }, + { "乌龙面", "烏龍麵" }, + { "乐", "樂" }, + { "乐器钟", "樂器鐘" }, + { "乔", "喬" }, + { "乔岳", "喬嶽" }, + { "九世之仇", "九世之讎" }, + { "九余", "九餘" }, + { "九只", "九隻" }, + { "九扎", "九紮" }, + { "九谷", "九穀" }, + { "也克制", "也剋制" }, + { "习", "習" }, + { "乡", "鄉" }, + { "乡愿", "鄉愿" }, + { "书", "書" }, + { "书签", "書籤" }, + { "买", "買" }, + { "买凶", "買兇" }, + { "乱", "亂" }, + { "乱发", "亂髮" }, + { "乱哄", "亂鬨" }, + { "乾象历", "乾象曆" }, + { "了克制", "了剋制" }, + { "了望", "瞭望" }, + { "了然", "瞭然" }, + { "了若指掌", "瞭若指掌" }, + { "争", "爭" }, + { "争奇斗妍", "爭奇鬥妍" }, + { "争奇斗异", "爭奇鬥異" }, + { "争妍斗奇", "爭妍鬥奇" }, + { "争斗", "爭鬥" }, + { "争红斗紫", "爭紅鬥紫" }, + { "事迹", "事迹" }, + { "二仑", "二崙" }, + { "二余", "二餘" }, + { "二只", "二隻" }, + { "二缶钟惑", "二缶鐘惑" }, + { "于", "於" }, + { "于丑", "於醜" }, + { "于丹", "于丹" }, + { "于于", "于于" }, + { "于云鹤", "于雲鶴" }, + { "于仁泰", "于仁泰" }, + { "于从濂", "于從濂" }, + { "于仲文", "于仲文" }, + { "于会泳", "于會泳" }, + { "于伟国", "于偉國" }, + { "于余曲折", "于餘曲折" }, + { "于佳卉", "于佳卉" }, + { "于偉國", "于偉國" }, + { "于光新", "于光新" }, + { "于光远", "于光遠" }, + { "于光遠", "于光遠" }, + { "于克制", "於剋制" }, + { "于克勒", "于克勒" }, + { "于再清", "于再清" }, + { "于冕", "于冕" }, + { "于军", "于軍" }, + { "于冠华", "于冠華" }, + { "于凌奎", "于凌奎" }, + { "于凌辰", "于凌辰" }, + { "于凤桐", "于鳳桐" }, + { "于凤至", "于鳳至" }, + { "于勒", "于勒" }, + { "于化虎", "于化虎" }, + { "于占元", "于占元" }, + { "于友泽", "于友澤" }, + { "于双戈", "于雙戈" }, + { "于台烟", "于台煙" }, + { "于台煙", "于台煙" }, + { "于右任", "于右任" }, + { "于吉", "于吉" }, + { "于和伟", "于和偉" }, + { "于品海", "于品海" }, + { "于国桢", "于國楨" }, + { "于国治", "于國治" }, + { "于國楨", "于國楨" }, + { "于國治", "于國治" }, + { "于坏", "於坏" }, + { "于坚", "于堅" }, + { "于堅", "于堅" }, + { "于大宝", "于大寶" }, + { "于大寶", "于大寶" }, + { "于天仁", "于天仁" }, + { "于天龙", "于天龍" }, + { "于奇库杜克", "于奇庫杜克" }, + { "于奇庫杜克", "于奇庫杜克" }, + { "于姓", "于姓" }, + { "于娜", "于娜" }, + { "于娟", "于娟" }, + { "于子千", "于子千" }, + { "于孔兼", "于孔兼" }, + { "于学忠", "于學忠" }, + { "于學忠", "于學忠" }, + { "于家堡", "于家堡" }, + { "于寘", "于寘" }, + { "于小伟", "于小偉" }, + { "于小偉", "于小偉" }, + { "于小彤", "于小彤" }, + { "于小惠", "于小惠" }, + { "于少保", "于少保" }, + { "于尔岑", "于爾岑" }, + { "于尔根", "于爾根" }, + { "于尔里克", "于爾里克" }, + { "于山", "于山" }, + { "于帅", "于帥" }, + { "于帥", "于帥" }, + { "于幼军", "于幼軍" }, + { "于幼軍", "于幼軍" }, + { "于广洲", "于廣洲" }, + { "于康震", "于康震" }, + { "于廣洲", "于廣洲" }, + { "于式枚", "于式枚" }, + { "于归", "于歸" }, + { "于征", "於徵" }, + { "于從濂", "于從濂" }, + { "于德海", "于德海" }, + { "于志宁", "于志寧" }, + { "于志寧", "于志寧" }, + { "于忠肃集", "于忠肅集" }, + { "于思", "于思" }, + { "于慎行", "于慎行" }, + { "于慧", "于慧" }, + { "于成龍", "于成龍" }, + { "于成龙", "于成龍" }, + { "于振", "于振" }, + { "于敏", "于敏" }, + { "于斌", "于斌" }, + { "于斯塔德", "于斯塔德" }, + { "于斯达尔", "于斯達爾" }, + { "于斯達爾", "于斯達爾" }, + { "于明涛", "于明濤" }, + { "于明濤", "于明濤" }, + { "于是之", "于是之" }, + { "于晨楠", "于晨楠" }, + { "于晴", "于晴" }, + { "于會泳", "于會泳" }, + { "于来山", "于來山" }, + { "于枫", "于楓" }, + { "于树洁", "于樹潔" }, + { "于根伟", "于根偉" }, + { "于根偉", "于根偉" }, + { "于格", "于格" }, + { "于楓", "于楓" }, + { "于樂", "于樂" }, + { "于樹潔", "于樹潔" }, + { "于欣", "于欣" }, + { "于正升", "于正昇" }, + { "于正昇", "于正昇" }, + { "于正昌", "于正昌" }, + { "于永波", "于永波" }, + { "于汉超", "于漢超" }, + { "于江震", "于江震" }, + { "于波", "于波" }, + { "于泽尔", "于澤爾" }, + { "于洋", "于洋" }, + { "于洪区", "于洪區" }, + { "于洪區", "于洪區" }, + { "于浩威", "于浩威" }, + { "于海", "于海" }, + { "于涛", "于濤" }, + { "于湘兰", "于湘蘭" }, + { "于湘蘭", "于湘蘭" }, + { "于漢超", "于漢超" }, + { "于澄", "于澄" }, + { "于澤爾", "于澤爾" }, + { "于濤", "于濤" }, + { "于熙珍", "于熙珍" }, + { "于爾岑", "于爾岑" }, + { "于爾根", "于爾根" }, + { "于爾里克", "于爾里克" }, + { "于特森", "于特森" }, + { "于玉立", "于玉立" }, + { "于田", "于田" }, + { "于禁", "于禁" }, + { "于秀敏", "于秀敏" }, + { "于立成", "于立成" }, + { "于素秋", "于素秋" }, + { "于美人", "于美人" }, + { "于耘婕", "于耘婕" }, + { "于若木", "于若木" }, + { "于荣光", "于榮光" }, + { "于荫霖", "于蔭霖" }, + { "于蔭霖", "于蔭霖" }, + { "于衡", "于衡" }, + { "于西翰", "于西翰" }, + { "于謙", "于謙" }, + { "于谦", "于謙" }, + { "于谨", "于謹" }, + { "于貝爾", "于貝爾" }, + { "于贈", "于贈" }, + { "于贝尔", "于貝爾" }, + { "于赠", "于贈" }, + { "于越", "于越" }, + { "于軍", "于軍" }, + { "于远伟", "于遠偉" }, + { "于道泉", "于道泉" }, + { "于遠偉", "于遠偉" }, + { "于都县", "于都縣" }, + { "于都縣", "于都縣" }, + { "于里察", "于里察" }, + { "于阗", "于闐" }, + { "于雙戈", "于雙戈" }, + { "于震", "于震" }, + { "于震后", "於震后" }, + { "于靖", "于靖" }, + { "于非闇", "于非闇" }, + { "于韋斯屈萊", "于韋斯屈萊" }, + { "于韦斯屈莱", "于韋斯屈萊" }, + { "于風政", "于風政" }, + { "于风政", "于風政" }, + { "于飛島", "于飛島" }, + { "于飞", "于飛" }, + { "于鬯", "于鬯" }, + { "于魁智", "于魁智" }, + { "于鳳桐", "于鳳桐" }, + { "于鳳至", "于鳳至" }, + { "于默奥", "于默奧" }, + { "于默奧", "于默奧" }, + { "亏", "虧" }, + { "云", "雲" }, + { "云为", "云為" }, + { "云乎", "云乎" }, + { "云云", "云云" }, + { "云何", "云何" }, + { "云南白药", "雲南白藥" }, + { "云尔", "云爾" }, + { "云游", "雲遊" }, + { "云為", "云為" }, + { "云然", "云然" }, + { "云笈七签", "雲笈七籤" }, + { "云须", "雲鬚" }, + { "五余", "五餘" }, + { "五出", "五齣" }, + { "五只", "五隻" }, + { "五岳", "五嶽" }, + { "五扎", "五紮" }, + { "五行生克", "五行生剋" }, + { "五谷", "五穀" }, + { "井干摧败", "井榦摧敗" }, + { "井里", "井裡" }, + { "亚", "亞" }, + { "亚美尼亚历", "亞美尼亞曆" }, + { "交哄", "交鬨" }, + { "交托", "交託" }, + { "交游", "交遊" }, + { "亦云", "亦云" }, + { "亦庄亦谐", "亦莊亦諧" }, + { "产", "產" }, + { "亩", "畝" }, + { "亮丑", "亮醜" }, + { "亮钟", "亮鐘" }, + { "亲", "親" }, + { "亵", "褻" }, + { "人云", "人云" }, + { "人参", "人蔘" }, + { "人欲", "人慾" }, + { "人物志", "人物誌" }, + { "亿", "億" }, + { "亿余", "億餘" }, + { "亿只", "億隻" }, + { "什么", "什麼" }, + { "什锦面", "什錦麵" }, + { "仅", "僅" }, + { "仆人", "僕人" }, + { "仆仆", "僕僕" }, + { "仆从", "僕從" }, + { "仆使", "僕使" }, + { "仆僮", "僕僮" }, + { "仆吏", "僕吏" }, + { "仆固怀恩", "僕固懷恩" }, + { "仆夫", "僕夫" }, + { "仆妇", "僕婦" }, + { "仆姑", "僕姑" }, + { "仆婢", "僕婢" }, + { "仆射", "僕射" }, + { "仆少", "僕少" }, + { "仆役", "僕役" }, + { "仆憎", "僕憎" }, + { "仆欧", "僕歐" }, + { "仆程", "僕程" }, + { "仆虽罢驽", "僕雖罷駑" }, + { "仇仇", "仇讎" }, + { "仇問", "讎問" }, + { "仇夷", "讎夷" }, + { "仇校", "讎校" }, + { "仇正", "讎正" }, + { "仇隙", "讎隙" }, + { "从", "從" }, + { "从里到外", "從裡到外" }, + { "从里向外", "從裡向外" }, + { "仑", "侖" }, + { "仑背", "崙背" }, + { "仓", "倉" }, + { "他克制", "他剋制" }, + { "他钟", "他鐘" }, + { "付托", "付託" }, + { "仙后", "仙后" }, + { "仙药", "仙藥" }, + { "仪", "儀" }, + { "仪范", "儀範" }, + { "仪表", "儀錶" }, + { "们", "們" }, + { "们克制", "們剋制" }, + { "仰药", "仰藥" }, + { "件钟", "件鐘" }, + { "价", "價" }, + { "任何表", "任何錶" }, + { "任何钟", "任何鐘" }, + { "仿佛", "彷彿" }, + { "仿制", "仿製" }, + { "伊东怜", "伊東怜" }, + { "伊于湖底", "伊于湖底" }, + { "伊尔汗历表", "伊爾汗曆表" }, + { "伊府面", "伊府麵" }, + { "伊斯兰历", "伊斯蘭曆" }, + { "伊斯兰教历", "伊斯蘭教曆" }, + { "伊适杰", "伊適杰" }, + { "伊郁", "伊鬱" }, + { "伏几", "伏几" }, + { "休征", "休徵" }, + { "众", "眾" }, + { "优", "優" }, + { "优游", "優遊" }, + { "伙众", "夥眾" }, + { "伙伴", "夥伴" }, + { "伙友", "夥友" }, + { "伙同", "夥同" }, + { "伙计", "夥計" }, + { "会", "會" }, + { "会占", "會佔" }, + { "会吊", "會弔" }, + { "会干", "會幹" }, + { "会里", "會裡" }, + { "伛", "傴" }, + { "伞", "傘" }, + { "伟", "偉" }, + { "传", "傳" }, + { "传位于四太子", "傳位于四太子" }, + { "伤", "傷" }, + { "伤痕累累", "傷痕纍纍" }, + { "伥", "倀" }, + { "伦", "倫" }, + { "伧", "傖" }, + { "伪", "偽" }, + { "伪药", "偽藥" }, + { "伫", "佇" }, + { "伴游", "伴遊" }, + { "但云", "但云" }, + { "位准", "位準" }, + { "低洼", "低洼" }, + { "住扎", "住紮" }, + { "体", "體" }, + { "体范", "體範" }, + { "何杰", "何杰" }, + { "余〇", "餘〇" }, + { "余一", "餘一" }, + { "余七", "餘七" }, + { "余三", "餘三" }, + { "余下", "餘下" }, + { "余业", "餘業" }, + { "余九", "餘九" }, + { "余事", "餘事" }, + { "余二", "餘二" }, + { "余五", "餘五" }, + { "余人", "餘人" }, + { "余众", "餘眾" }, + { "余俗", "餘俗" }, + { "余倍", "餘倍" }, + { "余僇", "餘僇" }, + { "余光", "餘光" }, + { "余党", "餘黨" }, + { "余八", "餘八" }, + { "余六", "餘六" }, + { "余兴", "餘興" }, + { "余刃", "餘刃" }, + { "余切", "餘切" }, + { "余利", "餘利" }, + { "余割", "餘割" }, + { "余力", "餘力" }, + { "余勇", "餘勇" }, + { "余十", "餘十" }, + { "余味", "餘味" }, + { "余响", "餘響" }, + { "余喘", "餘喘" }, + { "余四", "餘四" }, + { "余地", "餘地" }, + { "余墨", "餘墨" }, + { "余声", "餘聲" }, + { "余外", "餘外" }, + { "余妙", "餘妙" }, + { "余姚", "餘姚" }, + { "余威", "餘威" }, + { "余子", "餘子" }, + { "余存", "餘存" }, + { "余孽", "餘孽" }, + { "余庆", "餘慶" }, + { "余弦", "餘弦" }, + { "余思", "餘思" }, + { "余悸", "餘悸" }, + { "余数", "餘數" }, + { "余明", "餘明" }, + { "余映", "餘映" }, + { "余晖", "餘暉" }, + { "余暇", "餘暇" }, + { "余杭", "餘杭" }, + { "余杯", "餘杯" }, + { "余桃", "餘桃" }, + { "余桶", "餘桶" }, + { "余款", "餘款" }, + { "余步", "餘步" }, + { "余殃", "餘殃" }, + { "余毒", "餘毒" }, + { "余气", "餘氣" }, + { "余沥", "餘瀝" }, + { "余波", "餘波" }, + { "余波荡漾", "餘波盪漾" }, + { "余泽", "餘澤" }, + { "余温", "餘溫" }, + { "余烈", "餘烈" }, + { "余烬", "餘燼" }, + { "余热", "餘熱" }, + { "余珍", "餘珍" }, + { "余生", "餘生" }, + { "余窍", "餘竅" }, + { "余粮", "餘糧" }, + { "余绪", "餘緒" }, + { "余缺", "餘缺" }, + { "余罪", "餘罪" }, + { "余羡", "餘羨" }, + { "余膏", "餘膏" }, + { "余荫", "餘蔭" }, + { "余蓄", "餘蓄" }, + { "余裕", "餘裕" }, + { "余角", "餘角" }, + { "余论", "餘論" }, + { "余貾", "餘貾" }, + { "余责", "餘責" }, + { "余辉", "餘輝" }, + { "余辜", "餘辜" }, + { "余酲", "餘酲" }, + { "余量", "餘量" }, + { "余闰", "餘閏" }, + { "余闲", "餘閒" }, + { "余零", "餘零" }, + { "余震", "餘震" }, + { "余霞", "餘霞" }, + { "余音", "餘音" }, + { "余音绕梁", "餘音繞梁" }, + { "余韵", "餘韻" }, + { "余额", "餘額" }, + { "余风", "餘風" }, + { "余食", "餘食" }, + { "佛罗棱萨", "佛羅稜薩" }, + { "佛钟", "佛鐘" }, + { "作准", "作準" }, + { "作品里", "作品裡" }, + { "作奸犯科", "作姦犯科" }, + { "作庄", "作莊" }, + { "你克制", "你剋制" }, + { "你才子发昏", "你纔子發昏" }, + { "佣中佼佼", "傭中佼佼" }, + { "佣书", "傭書" }, + { "佣人", "傭人" }, + { "佣仆", "傭僕" }, + { "佣兵", "傭兵" }, + { "佣工", "傭工" }, + { "佣懒", "傭懶" }, + { "佣金", "傭金" }, + { "佥", "僉" }, + { "佳肴", "佳肴" }, + { "使其斗", "使其鬥" }, + { "侍仆", "侍僕" }, + { "供制", "供製" }, + { "依依不舍", "依依不捨" }, + { "依托", "依託" }, + { "侠", "俠" }, + { "侣", "侶" }, + { "侥", "僥" }, + { "侥幸", "僥倖" }, + { "侦", "偵" }, + { "侧", "側" }, + { "侨", "僑" }, + { "侩", "儈" }, + { "侪", "儕" }, + { "侬", "儂" }, + { "侵占", "侵佔" }, + { "侵并", "侵併" }, + { "便药", "便藥" }, + { "俄占", "俄佔" }, + { "保险柜", "保險柜" }, + { "信托", "信託" }, + { "俣", "俁" }, + { "俦", "儔" }, + { "俨", "儼" }, + { "俩", "倆" }, + { "俪", "儷" }, + { "俭", "儉" }, + { "俭仆", "儉僕" }, + { "俭朴", "儉樸" }, + { "俭确之教", "儉确之教" }, + { "修杰楷", "修杰楷" }, + { "修杰麟", "修杰麟" }, + { "修炼", "修鍊" }, + { "修胡刀", "修鬍刀" }, + { "俯冲", "俯衝" }, + { "倒绷孩儿", "倒繃孩兒" }, + { "倛丑", "倛醜" }, + { "借以", "藉以" }, + { "借助", "藉助" }, + { "借寇兵", "藉寇兵" }, + { "借手", "藉手" }, + { "借机", "藉機" }, + { "借此", "藉此" }, + { "借由", "藉由" }, + { "借着", "藉著" }, + { "借箸代筹", "藉箸代籌" }, + { "借资", "藉資" }, + { "倦游", "倦遊" }, + { "债", "債" }, + { "倾", "傾" }, + { "倾复", "傾複" }, + { "假发", "假髮" }, + { "假托", "假託" }, + { "假药", "假藥" }, + { "偎干", "偎乾" }, + { "做庄", "做莊" }, + { "停制", "停製" }, + { "停征", "停徵" }, + { "偬", "傯" }, + { "偷鸡不着", "偷雞不著" }, + { "偻", "僂" }, + { "偾", "僨" }, + { "偿", "償" }, + { "傥", "儻" }, + { "傧", "儐" }, + { "储", "儲" }, + { "傩", "儺" }, + { "催并", "催併" }, + { "傲游", "傲遊" }, + { "傲霜斗雪", "傲霜鬥雪" }, + { "傳位于四太子", "傳位于四太子" }, + { "傻里傻气", "傻裡傻氣" }, + { "僮仆", "僮僕" }, + { "僵尸", "殭屍" }, + { "儒略历", "儒略曆" }, + { "儒略改革历", "儒略改革曆" }, + { "儿", "兒" }, + { "兀术", "兀朮" }, + { "元凶", "元兇" }, + { "充饥", "充饑" }, + { "兆余", "兆餘" }, + { "先占", "先佔" }, + { "先采", "先採" }, + { "光致致", "光緻緻" }, + { "克制不了", "剋制不了" }, + { "克制不住", "剋制不住" }, + { "克复", "克複" }, + { "克扣", "剋扣" }, + { "克星", "剋星" }, + { "克期", "剋期" }, + { "克死", "剋死" }, + { "克药", "克藥" }, + { "克薄", "剋薄" }, + { "免征", "免徵" }, + { "兑", "兌" }, + { "兖", "兗" }, + { "党", "黨" }, + { "党参", "党參" }, + { "党太尉", "党太尉" }, + { "党怀英", "党懷英" }, + { "党进", "党進" }, + { "党項", "党項" }, + { "党项", "党項" }, + { "全干", "全乾" }, + { "八余", "八餘" }, + { "八只", "八隻" }, + { "八字胡", "八字鬍" }, + { "八扎", "八紮" }, + { "八蜡", "八蜡" }, + { "公仆", "公僕" }, + { "公仔面", "公仔麵" }, + { "公余", "公餘" }, + { "公历", "公曆" }, + { "公厘", "公釐" }, + { "公干", "公幹" }, + { "六余", "六餘" }, + { "六冲", "六衝" }, + { "六出", "六齣" }, + { "六只", "六隻" }, + { "六扎", "六紮" }, + { "六谷", "六穀" }, + { "兰", "蘭" }, + { "共和历", "共和曆" }, + { "关", "關" }, + { "关弓与我确", "關弓與我确" }, + { "关系", "關係" }, + { "关系着", "關係著" }, + { "兴", "興" }, + { "兴致", "興緻" }, + { "其余", "其餘" }, + { "典范", "典範" }, + { "兹", "茲" }, + { "养", "養" }, + { "兼并", "兼并" }, + { "兽", "獸" }, + { "兽欲", "獸慾" }, + { "冁", "囅" }, + { "内", "內" }, + { "内制", "內製" }, + { "内哄", "內鬨" }, + { "内斗", "內鬥" }, + { "冈", "岡" }, + { "册", "冊" }, + { "冗余", "冗餘" }, + { "写", "寫" }, + { "写字台", "寫字檯" }, + { "军", "軍" }, + { "军队克制", "軍隊剋制" }, + { "农", "農" }, + { "农历", "農曆" }, + { "农庄", "農莊" }, + { "农民历", "農民曆" }, + { "农药", "農藥" }, + { "冤仇", "冤讎" }, + { "冥蒙", "冥濛" }, + { "冬冬鼓", "鼕鼕鼓" }, + { "冬天里", "冬天裡" }, + { "冬日里", "冬日裡" }, + { "冬游", "冬遊" }, + { "冯", "馮" }, + { "冲", "沖" }, + { "冲上", "衝上" }, + { "冲下", "衝下" }, + { "冲倒", "衝倒" }, + { "冲克", "衝剋" }, + { "冲冠", "衝冠" }, + { "冲冠发怒", "沖冠髮怒" }, + { "冲决", "衝決" }, + { "冲出", "衝出" }, + { "冲击", "衝擊" }, + { "冲到", "衝到" }, + { "冲刺", "衝刺" }, + { "冲力", "衝力" }, + { "冲动", "衝動" }, + { "冲劲", "衝勁" }, + { "冲压", "衝壓" }, + { "冲去", "衝去" }, + { "冲口", "衝口" }, + { "冲坚陷阵", "衝堅陷陣" }, + { "冲垮", "衝垮" }, + { "冲堂", "衝堂" }, + { "冲天", "衝天" }, + { "冲头阵", "衝頭陣" }, + { "冲州撞府", "衝州撞府" }, + { "冲心", "衝心" }, + { "冲掉", "衝掉" }, + { "冲撞", "衝撞" }, + { "冲散", "衝散" }, + { "冲杀", "衝殺" }, + { "冲来", "衝來" }, + { "冲波", "衝波" }, + { "冲浪", "衝浪" }, + { "冲激", "衝激" }, + { "冲然", "衝然" }, + { "冲盹", "衝盹" }, + { "冲着", "衝著" }, + { "冲破", "衝破" }, + { "冲程", "衝程" }, + { "冲突", "衝突" }, + { "冲线", "衝線" }, + { "冲要", "衝要" }, + { "冲起", "衝起" }, + { "冲车", "衝車" }, + { "冲过", "衝過" }, + { "冲进", "衝進" }, + { "冲量", "衝量" }, + { "冲锋", "衝鋒" }, + { "冲陷", "衝陷" }, + { "冲风", "衝風" }, + { "决", "決" }, + { "决斗", "決鬥" }, + { "况", "況" }, + { "冶游", "冶遊" }, + { "冷面", "冷麵" }, + { "冻", "凍" }, + { "净", "凈" }, + { "净余", "淨餘" }, + { "净发", "淨髮" }, + { "准三后", "准三后" }, + { "准不准", "準不準" }, + { "准会", "準會" }, + { "准例", "準例" }, + { "准保", "準保" }, + { "准儿", "準兒" }, + { "准决赛", "準決賽" }, + { "准分子", "準分子" }, + { "准则", "準則" }, + { "准噶尔", "準噶爾" }, + { "准备", "準備" }, + { "准头", "準頭" }, + { "准定", "準定" }, + { "准平原", "準平原" }, + { "准度", "準度" }, + { "准式", "準式" }, + { "准拟", "準擬" }, + { "准拿督", "準拿督" }, + { "准据", "準據" }, + { "准新娘", "準新娘" }, + { "准新郎", "準新郎" }, + { "准时", "準時" }, + { "准星", "準星" }, + { "准是", "準是" }, + { "准点", "準點" }, + { "准的", "準的" }, + { "准直", "準直" }, + { "准确", "準確" }, + { "准线", "準線" }, + { "准绳", "準繩" }, + { "准话", "準話" }, + { "准谱", "準譜" }, + { "准货币", "準貨幣" }, + { "凉", "涼" }, + { "凉面", "涼麵" }, + { "凌蒙初", "凌濛初" }, + { "减", "減" }, + { "减肥药", "減肥藥" }, + { "凑", "湊" }, + { "凛", "凜" }, + { "凝炼", "凝鍊" }, + { "几", "幾" }, + { "几上", "几上" }, + { "几丝", "几絲" }, + { "几净窗明", "几淨窗明" }, + { "几几", "几几" }, + { "几凳", "几凳" }, + { "几出", "幾齣" }, + { "几只", "幾隻" }, + { "几子", "几子" }, + { "几旁", "几旁" }, + { "几杖", "几杖" }, + { "几案", "几案" }, + { "几椅", "几椅" }, + { "几榻", "几榻" }, + { "几筵", "几筵" }, + { "几面上", "几面上" }, + { "凤", "鳳" }, + { "凫", "鳧" }, + { "凭", "憑" }, + { "凭借", "憑藉" }, + { "凭借着", "憑藉著" }, + { "凭准", "憑準" }, + { "凭几", "憑几" }, + { "凭吊", "憑弔" }, + { "凭折", "憑摺" }, + { "凯", "凱" }, + { "凶刀", "兇刀" }, + { "凶器", "兇器" }, + { "凶嫌", "兇嫌" }, + { "凶巴巴", "兇巴巴" }, + { "凶徒", "兇徒" }, + { "凶恶", "兇惡" }, + { "凶悍", "兇悍" }, + { "凶手", "兇手" }, + { "凶杀", "兇殺" }, + { "凶枪", "兇槍" }, + { "凶案", "兇案" }, + { "凶横", "兇橫" }, + { "凶残", "兇殘" }, + { "凶殘", "兇殘" }, + { "凶殺", "兇殺" }, + { "凶犯", "兇犯" }, + { "凶狠", "兇狠" }, + { "凶猛", "兇猛" }, + { "凶疑", "兇疑" }, + { "凶相", "兇相" }, + { "凶险", "兇險" }, + { "凹洞里", "凹洞裡" }, + { "出丑", "出醜" }, + { "出儿", "齣兒" }, + { "出剧", "齣劇" }, + { "出动画", "齣動畫" }, + { "出卡通", "齣卡通" }, + { "出戏", "齣戲" }, + { "出游", "出遊" }, + { "出电影", "齣電影" }, + { "出电视", "齣電視" }, + { "出节目", "齣節目" }, + { "出锤", "出鎚" }, + { "击", "擊" }, + { "击扑", "擊扑" }, + { "击钟", "擊鐘" }, + { "凿", "鑿" }, + { "分别致", "分别致" }, + { "分半钟", "分半鐘" }, + { "分占", "分佔" }, + { "分多钟", "分多鐘" }, + { "分子钟", "分子鐘" }, + { "分钟", "分鐘" }, + { "刍", "芻" }, + { "刑余", "刑餘" }, + { "划", "劃" }, + { "划一桨", "划一槳" }, + { "划上", "划上" }, + { "划下", "划下" }, + { "划不来", "划不來" }, + { "划了", "划了" }, + { "划具", "划具" }, + { "划出", "划出" }, + { "划到", "划到" }, + { "划动", "划動" }, + { "划去", "划去" }, + { "划子", "划子" }, + { "划得来", "划得來" }, + { "划拳", "划拳" }, + { "划来划去", "划來划去" }, + { "划桨", "划槳" }, + { "划水", "划水" }, + { "划着", "划著" }, + { "划算", "划算" }, + { "划船", "划船" }, + { "划艇", "划艇" }, + { "划行", "划行" }, + { "划走", "划走" }, + { "划起", "划起" }, + { "划过", "划過" }, + { "划进", "划進" }, + { "划龙舟", "划龍舟" }, + { "刘", "劉" }, + { "刘佳怜", "劉佳怜" }, + { "刘克庄", "劉克莊" }, + { "刘芸后", "劉芸后" }, + { "则", "則" }, + { "刚", "剛" }, + { "刚干", "剛乾" }, + { "刚才一载", "剛纔一載" }, + { "刚雇", "剛僱" }, + { "创", "創" }, + { "创制", "創製" }, + { "创获", "創穫" }, + { "删", "刪" }, + { "利欲", "利慾" }, + { "别", "別" }, + { "别口气", "彆口氣" }, + { "别庄", "別莊" }, + { "别强", "彆強" }, + { "别扭", "彆扭" }, + { "别拗", "彆拗" }, + { "别气", "彆氣" }, + { "别着", "別著" }, + { "别致", "別緻" }, + { "别辟", "別闢" }, + { "刭", "剄" }, + { "刮了", "颳了" }, + { "刮倒", "颳倒" }, + { "刮去", "颳去" }, + { "刮得", "颳得" }, + { "刮着", "刮著" }, + { "刮胡", "刮鬍" }, + { "刮走", "颳走" }, + { "刮起", "颳起" }, + { "刮雪", "颳雪" }, + { "刮风", "颳風" }, + { "制为", "製為" }, + { "制件", "製件" }, + { "制作", "製作" }, + { "制做", "製做" }, + { "制冰", "製冰" }, + { "制冷", "製冷" }, + { "制剂", "製劑" }, + { "制取", "製取" }, + { "制品", "製品" }, + { "制图", "製圖" }, + { "制备", "製備" }, + { "制得", "製得" }, + { "制成", "製成" }, + { "制法", "製法" }, + { "制浆", "製漿" }, + { "制片", "製片" }, + { "制版", "製版" }, + { "制盐", "製鹽" }, + { "制程", "製程" }, + { "制签", "制籤" }, + { "制糖", "製糖" }, + { "制纸", "製紙" }, + { "制药", "製藥" }, + { "制表", "製表" }, + { "制造", "製造" }, + { "制钟", "制鐘" }, + { "制革", "製革" }, + { "制鞋", "製鞋" }, + { "刹", "剎" }, + { "刺绣", "刺繡" }, + { "刻半钟", "刻半鐘" }, + { "刻多钟", "刻多鐘" }, + { "刻钟", "刻鐘" }, + { "刽", "劊" }, + { "刿", "劌" }, + { "剀", "剴" }, + { "剂", "劑" }, + { "剃发", "剃髮" }, + { "剃胡", "剃鬍" }, + { "剃须", "剃鬚" }, + { "削发", "削髮" }, + { "削面", "削麵" }, + { "剐", "剮" }, + { "剑", "劍" }, + { "剔庄货", "剔莊貨" }, + { "剥", "剝" }, + { "剥制", "剝製" }, + { "剧", "劇" }, + { "剧药", "劇藥" }, + { "剩余", "剩餘" }, + { "剪其发", "剪其髮" }, + { "剪发", "剪髮" }, + { "剪彩", "剪綵" }, + { "割舍", "割捨" }, + { "劉佳怜", "劉佳怜" }, + { "力争上游", "力爭上遊" }, + { "力克制", "力剋制" }, + { "力拼", "力拚" }, + { "力求克制", "力求剋制" }, + { "劝", "勸" }, + { "办", "辦" }, + { "办公台", "辦公檯" }, + { "功致", "功緻" }, + { "加注", "加註" }, + { "加药", "加藥" }, + { "务", "務" }, + { "劢", "勱" }, + { "动", "動" }, + { "动荡", "動蕩" }, + { "劫余", "劫餘" }, + { "励", "勵" }, + { "劲", "勁" }, + { "劳", "勞" }, + { "劳力士表", "勞力士錶" }, + { "势", "勢" }, + { "勃郁", "勃鬱" }, + { "勋", "勛" }, + { "勋章", "勳章" }, + { "勤仆", "勤僕" }, + { "勤朴", "勤樸" }, + { "勺药", "勺藥" }, + { "勾干", "勾幹" }, + { "勾心斗角", "勾心鬥角" }, + { "勾魂荡魄", "勾魂蕩魄" }, + { "匀", "勻" }, + { "包准", "包準" }, + { "包庄", "包莊" }, + { "包扎", "包紮" }, + { "包谷", "包穀" }, + { "匏系", "匏繫" }, + { "北回线", "北迴線" }, + { "北回铁路", "北迴鐵路" }, + { "北岳", "北嶽" }, + { "匡复", "匡複" }, + { "匦", "匭" }, + { "匪干", "匪幹" }, + { "匮", "匱" }, + { "区", "區" }, + { "医", "醫" }, + { "医药", "醫藥" }, + { "医院里", "醫院裡" }, + { "十余", "十餘" }, + { "十出", "十齣" }, + { "十只", "十隻" }, + { "十扎", "十紮" }, + { "千余", "千餘" }, + { "千只", "千隻" }, + { "千回百折", "千迴百折" }, + { "千回百转", "千迴百轉" }, + { "千扎", "千紮" }, + { "千钧一发", "千鈞一髮" }, + { "升官", "陞官" }, + { "升平", "昇平" }, + { "升阳", "昇陽" }, + { "半只", "半隻" }, + { "华", "華" }, + { "华严钟", "華嚴鐘" }, + { "华发", "華髮" }, + { "协", "協" }, + { "单", "單" }, + { "单于", "單于" }, + { "单干", "單幹" }, + { "单打独斗", "單打獨鬥" }, + { "卖", "賣" }, + { "卖呆", "賣獃" }, + { "南京钟", "南京鐘" }, + { "南回线", "南迴線" }, + { "南回铁路", "南迴鐵路" }, + { "南宫适", "南宮适" }, + { "南岳", "南嶽" }, + { "南游", "南遊" }, + { "南筑", "南筑" }, + { "博汇", "博彙" }, + { "博采", "博採" }, + { "卜云吉", "卜云吉" }, + { "卞庄", "卞莊" }, + { "占〇", "佔〇" }, + { "占一", "佔一" }, + { "占七", "佔七" }, + { "占万", "佔万" }, + { "占三", "佔三" }, + { "占上风", "佔上風" }, + { "占下", "佔下" }, + { "占不占", "佔不佔" }, + { "占不足", "佔不足" }, + { "占世界", "佔世界" }, + { "占东", "佔東" }, + { "占两", "佔兩" }, + { "占个", "佔個" }, + { "占中", "佔中" }, + { "占为", "佔為" }, + { "占主", "佔主" }, + { "占九", "佔九" }, + { "占了", "佔了" }, + { "占二", "佔二" }, + { "占五", "佔五" }, + { "占人便宜", "佔人便宜" }, + { "占亿", "佔億" }, + { "占优", "佔優" }, + { "占位", "佔位" }, + { "占住", "佔住" }, + { "占便宜", "佔便宜" }, + { "占便宜的是呆", "占便宜的是獃" }, + { "占俄", "佔俄" }, + { "占停车", "佔停車" }, + { "占先", "佔先" }, + { "占光", "佔光" }, + { "占全", "佔全" }, + { "占八", "佔八" }, + { "占六", "佔六" }, + { "占分", "佔分" }, + { "占到", "佔到" }, + { "占加", "佔加" }, + { "占劣", "佔劣" }, + { "占北", "佔北" }, + { "占十", "佔十" }, + { "占千", "佔千" }, + { "占半", "佔半" }, + { "占南", "佔南" }, + { "占占", "佔佔" }, + { "占印", "佔印" }, + { "占压", "佔壓" }, + { "占去", "佔去" }, + { "占取", "佔取" }, + { "占台", "佔台" }, + { "占后", "佔後" }, + { "占哺乳", "佔哺乳" }, + { "占嗫", "佔囁" }, + { "占四", "佔四" }, + { "占国内", "佔國內" }, + { "占在", "佔在" }, + { "占地", "佔地" }, + { "占场", "佔場" }, + { "占多", "佔多" }, + { "占大", "佔大" }, + { "占头", "佔頭" }, + { "占好", "佔好" }, + { "占小", "佔小" }, + { "占少", "佔少" }, + { "占尽", "佔盡" }, + { "占局部", "佔局部" }, + { "占屋", "佔屋" }, + { "占山", "佔山" }, + { "占市场", "佔市場" }, + { "占平均", "佔平均" }, + { "占床", "佔床" }, + { "占座", "佔座" }, + { "占得", "佔得" }, + { "占德", "佔德" }, + { "占总", "佔總" }, + { "占据", "佔據" }, + { "占掉", "佔掉" }, + { "占整体", "佔整體" }, + { "占新", "佔新" }, + { "占有", "佔有" }, + { "占有欲", "佔有慾" }, + { "占查", "佔查" }, + { "占次", "佔次" }, + { "占比", "佔比" }, + { "占毕", "佔畢" }, + { "占法", "佔法" }, + { "占满", "佔滿" }, + { "占澳", "佔澳" }, + { "占率", "佔率" }, + { "占用", "佔用" }, + { "占百", "佔百" }, + { "占着", "佔著" }, + { "占稳", "佔穩" }, + { "占线", "佔線" }, + { "占缺", "佔缺" }, + { "占网", "佔網" }, + { "占美", "佔美" }, + { "占耕", "佔耕" }, + { "占至多", "佔至多" }, + { "占至少", "佔至少" }, + { "占苏", "佔蘇" }, + { "占英", "佔英" }, + { "占葡", "佔葡" }, + { "占西", "佔西" }, + { "占资源", "佔資源" }, + { "占起", "佔起" }, + { "占超过", "佔超過" }, + { "占过", "佔過" }, + { "占道", "佔道" }, + { "占零", "佔零" }, + { "占領", "佔領" }, + { "占领", "佔領" }, + { "占饭", "佔飯" }, + { "占香", "佔香" }, + { "占马", "佔馬" }, + { "占高枝儿", "佔高枝兒" }, + { "卢", "盧" }, + { "卢棱伽", "盧稜伽" }, + { "卤", "鹵" }, + { "卤制", "滷製" }, + { "卤味", "滷味" }, + { "卤水", "滷水" }, + { "卤汁", "滷汁" }, + { "卤湖", "滷湖" }, + { "卤肉", "滷肉" }, + { "卤菜", "滷菜" }, + { "卤蛋", "滷蛋" }, + { "卤面", "滷麵" }, + { "卤鸡", "滷雞" }, + { "卧游", "臥遊" }, + { "卫", "衛" }, + { "卫后庄公", "衛後莊公" }, + { "卫星钟", "衛星鐘" }, + { "印制", "印製" }, + { "印累绶若", "印纍綬若" }, + { "却", "卻" }, + { "卵与石斗", "卵與石鬥" }, + { "卷云", "捲雲" }, + { "卷住", "捲住" }, + { "卷儿", "捲兒" }, + { "卷入", "捲入" }, + { "卷动", "捲動" }, + { "卷去", "捲去" }, + { "卷发", "捲髮" }, + { "卷图", "捲圖" }, + { "卷土重来", "捲土重來" }, + { "卷尺", "捲尺" }, + { "卷帘", "捲簾" }, + { "卷心菜", "捲心菜" }, + { "卷成", "捲成" }, + { "卷曲", "捲曲" }, + { "卷来", "捲來" }, + { "卷款", "捲款" }, + { "卷毛", "捲毛" }, + { "卷烟", "捲煙" }, + { "卷筒", "捲筒" }, + { "卷纸", "捲紙" }, + { "卷缩", "捲縮" }, + { "卷舌", "捲舌" }, + { "卷舖盖", "捲舖蓋" }, + { "卷菸", "捲菸" }, + { "卷袖", "捲袖" }, + { "卷走", "捲走" }, + { "卷起", "捲起" }, + { "卷轴", "捲軸" }, + { "卷逃", "捲逃" }, + { "卷铺盖", "捲鋪蓋" }, + { "卷须", "卷鬚" }, + { "卷风", "捲風" }, + { "卺", "巹" }, + { "厂", "廠" }, + { "厂部", "厂部" }, + { "厅", "廳" }, + { "历", "歷" }, + { "历书", "曆書" }, + { "历元", "曆元" }, + { "历史里", "歷史裡" }, + { "历命", "曆命" }, + { "历始", "曆始" }, + { "历室", "曆室" }, + { "历尾", "曆尾" }, + { "历数", "曆數" }, + { "历日", "曆日" }, + { "历本", "曆本" }, + { "历法", "曆法" }, + { "历物之意", "厤物之意" }, + { "历狱", "曆獄" }, + { "历纪", "曆紀" }, + { "历象", "曆象" }, + { "厉", "厲" }, + { "压", "壓" }, + { "厌", "厭" }, + { "厍", "厙" }, + { "厕", "廁" }, + { "厘出", "釐出" }, + { "厘升", "釐升" }, + { "厘定", "釐定" }, + { "厘正", "釐正" }, + { "厘清", "釐清" }, + { "厘订", "釐訂" }, + { "原子钟", "原子鐘" }, + { "原钟", "原鐘" }, + { "厢", "廂" }, + { "厣", "厴" }, + { "厦", "廈" }, + { "厨", "廚" }, + { "厨余", "廚餘" }, + { "厩", "廄" }, + { "厮", "廝" }, + { "厮斗", "廝鬥" }, + { "县", "縣" }, + { "县志", "縣誌" }, + { "县里", "縣裡" }, + { "参", "參" }, + { "参绥", "蔘綏" }, + { "双", "雙" }, + { "双折", "雙摺" }, + { "双胜类", "雙胜類" }, + { "双雕", "雙鵰" }, + { "反冲", "反衝" }, + { "反复", "反覆" }, + { "反复制", "反複製" }, + { "反朴", "反樸" }, + { "发", "發" }, + { "发上冲冠", "髮上沖冠" }, + { "发上指冠", "髮上指冠" }, + { "发丝", "髮絲" }, + { "发为血之本", "髮為血之本" }, + { "发乳", "髮乳" }, + { "发光可鉴", "髮光可鑑" }, + { "发匪", "髮匪" }, + { "发卷", "髮捲" }, + { "发呆", "發獃" }, + { "发型", "髮型" }, + { "发夹", "髮夾" }, + { "发妻", "髮妻" }, + { "发姐", "髮姐" }, + { "发屋", "髮屋" }, + { "发已霜白", "髮已霜白" }, + { "发带", "髮帶" }, + { "发干", "發乾" }, + { "发庄", "發莊" }, + { "发廊", "髮廊" }, + { "发式", "髮式" }, + { "发引千钧", "髮引千鈞" }, + { "发指", "髮指" }, + { "发松", "發鬆" }, + { "发根", "髮根" }, + { "发汗药", "發汗藥" }, + { "发油", "髮油" }, + { "发漂", "髮漂" }, + { "发状", "髮狀" }, + { "发癣", "髮癬" }, + { "发着", "發著" }, + { "发短心长", "髮短心長" }, + { "发禁", "髮禁" }, + { "发笺", "髮箋" }, + { "发签", "發籤" }, + { "发纱", "髮紗" }, + { "发结", "髮結" }, + { "发网", "髮網" }, + { "发肤", "髮膚" }, + { "发胶", "髮膠" }, + { "发脚", "髮腳" }, + { "发菜", "髮菜" }, + { "发蒙", "發矇" }, + { "发蜡", "髮蠟" }, + { "发踊冲冠", "髮踊沖冠" }, + { "发辫", "髮辮" }, + { "发针", "髮針" }, + { "发钗", "髮釵" }, + { "发长", "髮長" }, + { "发际", "髮際" }, + { "发雕", "髮雕" }, + { "发霜", "髮霜" }, + { "发面", "發麵" }, + { "发饰", "髮飾" }, + { "发髻", "髮髻" }, + { "发鬓", "髮鬢" }, + { "取舍", "取捨" }, + { "受托", "受託" }, + { "变", "變" }, + { "变丑", "變醜" }, + { "变征", "變徵" }, + { "变脏", "變髒" }, + { "叙", "敘" }, + { "叠", "疊" }, + { "口干", "口乾" }, + { "口腹之欲", "口腹之慾" }, + { "口里", "口裡" }, + { "口钟", "口鐘" }, + { "古书云", "古書云" }, + { "古書云", "古書云" }, + { "古朴", "古樸" }, + { "古柯咸", "古柯鹹" }, + { "古語云", "古語云" }, + { "古迹", "古迹" }, + { "古钟", "古鐘" }, + { "古钟表", "古鐘錶" }, + { "另辟", "另闢" }, + { "叩钟", "叩鐘" }, + { "只冲", "只衝" }, + { "只占", "只佔" }, + { "只字", "隻字" }, + { "只影", "隻影" }, + { "只手遮天", "隻手遮天" }, + { "只眼", "隻眼" }, + { "只言片语", "隻言片語" }, + { "只身", "隻身" }, + { "只采", "只採" }, + { "叮叮当当", "叮叮噹噹" }, + { "叮当", "叮噹" }, + { "可以克制", "可以剋制" }, + { "可紧可松", "可緊可鬆" }, + { "台子", "檯子" }, + { "台布", "檯布" }, + { "台灯", "檯燈" }, + { "台球", "檯球" }, + { "台钟", "台鐘" }, + { "台面", "檯面" }, + { "台风", "颱風" }, + { "叱咤乐坛", "叱咤樂壇" }, + { "叱咤叱叱咤", "叱咤叱叱咤" }, + { "叱咤咤", "叱咤咤" }, + { "叱咤樂壇", "叱咤樂壇" }, + { "叶", "葉" }, + { "叶不二子", "叶不二子" }, + { "叶叶琴", "葉叶琴" }, + { "叶志穗", "叶志穗" }, + { "叶恭弘", "叶恭弘" }, + { "叶音", "叶音" }, + { "叶韵", "叶韻" }, + { "号", "號" }, + { "号志", "號誌" }, + { "叹", "嘆" }, + { "叽", "嘰" }, + { "吁天", "籲天" }, + { "吁求", "籲求" }, + { "吁请", "籲請" }, + { "吃姜", "吃薑" }, + { "吃板刀面", "吃板刀麵" }, + { "吃着不尽", "吃著不盡" }, + { "吃药", "吃藥" }, + { "吃辣面", "吃辣麵" }, + { "吃里扒外", "吃裡扒外" }, + { "吃里爬外", "吃裡爬外" }, + { "吃错药", "吃錯藥" }, + { "各类钟", "各類鐘" }, + { "各辟", "各闢" }, + { "合伙", "合夥" }, + { "合准", "合準" }, + { "合历", "合曆" }, + { "合并", "合併" }, + { "合府", "閤府" }, + { "合着", "合著" }, + { "合采", "合採" }, + { "吊丧", "弔喪" }, + { "吊书", "弔書" }, + { "吊儿郎当", "弔兒郎當" }, + { "吊卷", "弔卷" }, + { "吊取", "弔取" }, + { "吊古", "弔古" }, + { "吊唁", "弔唁" }, + { "吊喉", "弔喉" }, + { "吊喭", "弔喭" }, + { "吊场", "弔場" }, + { "吊头", "弔頭" }, + { "吊奠", "弔奠" }, + { "吊孝", "弔孝" }, + { "吊客", "弔客" }, + { "吊宴", "弔宴" }, + { "吊带", "弔帶" }, + { "吊影", "弔影" }, + { "吊慰", "弔慰" }, + { "吊扣", "弔扣" }, + { "吊拷", "弔拷" }, + { "吊拷绷扒", "弔拷繃扒" }, + { "吊挂", "弔掛" }, + { "吊挂着", "吊掛著" }, + { "吊撒", "弔撒" }, + { "吊文", "弔文" }, + { "吊旗", "弔旗" }, + { "吊杆", "吊杆" }, + { "吊桥", "弔橋" }, + { "吊死", "弔死" }, + { "吊民", "弔民" }, + { "吊着", "吊著" }, + { "吊祭", "弔祭" }, + { "吊纸", "弔紙" }, + { "吊者大悦", "弔者大悅" }, + { "吊脚儿事", "弔腳兒事" }, + { "吊腰撒跨", "弔腰撒跨" }, + { "吊膀子", "弔膀子" }, + { "吊词", "弔詞" }, + { "吊诡", "弔詭" }, + { "吊谎", "弔謊" }, + { "吊贺迎送", "弔賀迎送" }, + { "吊钟", "吊鐘" }, + { "吊问", "弔問" }, + { "吊颈", "弔頸" }, + { "吊鹤", "弔鶴" }, + { "同伙", "同夥" }, + { "同余", "同餘" }, + { "后", "後" }, + { "后丰", "后豐" }, + { "后冠", "后冠" }, + { "后北街", "后北街" }, + { "后发座", "后髮座" }, + { "后发星系团", "后髮星系團" }, + { "后土", "后土" }, + { "后妃", "后妃" }, + { "后安路", "后安路" }, + { "后平路", "后平路" }, + { "后座", "后座" }, + { "后海湾", "后海灣" }, + { "后海灣", "后海灣" }, + { "后瑞站", "后瑞站" }, + { "后稷", "后稷" }, + { "后羿", "后羿" }, + { "后街", "后街" }, + { "后角", "后角" }, + { "后豐", "后豐" }, + { "后里", "后里" }, + { "后髮座", "后髮座" }, + { "后髮星系團", "后髮星系團" }, + { "向导", "嚮導" }, + { "向应", "嚮應" }, + { "向往", "嚮往" }, + { "向着", "向著" }, + { "向迩", "嚮邇" }, + { "吓", "嚇" }, + { "吕", "呂" }, + { "吕后", "呂后" }, + { "吗", "嗎" }, + { "吞并", "吞併" }, + { "吟游", "吟遊" }, + { "吣", "唚" }, + { "吨", "噸" }, + { "含齿戴发", "含齒戴髮" }, + { "听", "聽" }, + { "启", "啟" }, + { "吴", "吳" }, + { "吹发", "吹髮" }, + { "吹干", "吹乾" }, + { "吹胡", "吹鬍" }, + { "呂后", "呂后" }, + { "呆串了皮", "獃串了皮" }, + { "呆事", "獃事" }, + { "呆人", "獃人" }, + { "呆呆", "獃獃" }, + { "呆头", "獃頭" }, + { "呆子", "獃子" }, + { "呆性", "獃性" }, + { "呆想", "獃想" }, + { "呆憨呆", "獃憨獃" }, + { "呆根", "獃根" }, + { "呆气", "獃氣" }, + { "呆滞", "獃滯" }, + { "呆痴", "獃痴" }, + { "呆着", "獃著" }, + { "呆磕", "獃磕" }, + { "呆等", "獃等" }, + { "呆脑", "獃腦" }, + { "呆致致", "呆緻緻" }, + { "呆话", "獃話" }, + { "呆里呆气", "呆裡呆氣" }, + { "呐", "吶" }, + { "呒", "嘸" }, + { "呓", "囈" }, + { "呕", "嘔" }, + { "呖", "嚦" }, + { "呗", "唄" }, + { "呗赞", "唄讚" }, + { "员", "員" }, + { "呙", "咼" }, + { "呛", "嗆" }, + { "呜", "嗚" }, + { "周历", "周曆" }, + { "周后", "周后" }, + { "周庄王", "周莊王" }, + { "周杰倫", "周杰倫" }, + { "周游", "周遊" }, + { "周游世界", "週遊世界" }, + { "呼吁", "呼籲" }, + { "和克制", "和剋制" }, + { "和奸", "和姦" }, + { "咎征", "咎徵" }, + { "咏", "詠" }, + { "咕咕钟", "咕咕鐘" }, + { "咙", "嚨" }, + { "咛", "嚀" }, + { "咤", "吒" }, + { "咨询", "諮詢" }, + { "咬姜呷醋", "咬薑呷醋" }, + { "咯当", "咯噹" }, + { "咳嗽药", "咳嗽藥" }, + { "咸卤", "鹹鹵" }, + { "咸味", "鹹味" }, + { "咸咸", "鹹鹹" }, + { "咸嘴淡舌", "鹹嘴淡舌" }, + { "咸土", "鹹土" }, + { "咸度", "鹹度" }, + { "咸得", "鹹得" }, + { "咸批", "鹹批" }, + { "咸水", "鹹水" }, + { "咸汤", "鹹湯" }, + { "咸派", "鹹派" }, + { "咸海", "鹹海" }, + { "咸淡", "鹹淡" }, + { "咸湖", "鹹湖" }, + { "咸潟", "鹹潟" }, + { "咸猪肉", "鹹豬肉" }, + { "咸的", "鹹的" }, + { "咸类", "鹹類" }, + { "咸粥", "鹹粥" }, + { "咸肉", "鹹肉" }, + { "咸菜", "鹹菜" }, + { "咸菜干", "鹹菜乾" }, + { "咸蛋", "鹹蛋" }, + { "咸食", "鹹食" }, + { "咸鱼", "鹹魚" }, + { "咸鸭蛋", "鹹鴨蛋" }, + { "哀吊", "哀弔" }, + { "哀挽", "哀輓" }, + { "品汇", "品彙" }, + { "哄动", "鬨動" }, + { "哄堂", "鬨堂" }, + { "哄笑", "鬨笑" }, + { "响", "響" }, + { "响钟", "響鐘" }, + { "哑", "啞" }, + { "哒", "噠" }, + { "哓", "嘵" }, + { "哔", "嗶" }, + { "哕", "噦" }, + { "哗", "嘩" }, + { "哙", "噲" }, + { "哜", "嚌" }, + { "哝", "噥" }, + { "哟", "喲" }, + { "哪里", "哪裡" }, + { "哭脏", "哭髒" }, + { "唁吊", "唁弔" }, + { "唇干", "唇乾" }, + { "唛", "嘜" }, + { "唠", "嘮" }, + { "唢", "嗩" }, + { "唤", "喚" }, + { "唱游", "唱遊" }, + { "唾余", "唾餘" }, + { "唾面自干", "唾面自乾" }, + { "商历", "商曆" }, + { "啧", "嘖" }, + { "啬", "嗇" }, + { "啭", "囀" }, + { "啮", "嚙" }, + { "啷当", "啷噹" }, + { "啸", "嘯" }, + { "喂乳", "餵乳" }, + { "喂了", "餵了" }, + { "喂养", "餵養" }, + { "喂奶", "餵奶" }, + { "喂猪", "餵豬" }, + { "喂给", "餵給" }, + { "喂羊", "餵羊" }, + { "喂过", "餵過" }, + { "喂食", "餵食" }, + { "喂饱", "餵飽" }, + { "喂驴", "餵驢" }, + { "喂鱼", "餵魚" }, + { "喂鸡", "餵雞" }, + { "喂鸭", "餵鴨" }, + { "喂鹅", "餵鵝" }, + { "喜欢表", "喜歡錶" }, + { "喜欢钟", "喜歡鐘" }, + { "喝干", "喝乾" }, + { "喧哄", "喧鬨" }, + { "喷", "噴" }, + { "喷洒", "噴洒" }, + { "喽", "嘍" }, + { "喾", "嚳" }, + { "嗑药", "嗑藥" }, + { "嗫", "囁" }, + { "嗳", "噯" }, + { "嘀嗒的表", "嘀嗒的錶" }, + { "嘉肴", "嘉肴" }, + { "嘉谷", "嘉穀" }, + { "嘘", "噓" }, + { "嘤", "嚶" }, + { "嘱", "囑" }, + { "嘱托", "囑託" }, + { "嘴里", "嘴裡" }, + { "噙齿戴发", "噙齒戴髮" }, + { "噜", "嚕" }, + { "噜苏", "嚕囌" }, + { "嚣", "囂" }, + { "嚼谷", "嚼穀" }, + { "囉囉苏苏", "囉囉囌囌" }, + { "囉苏", "囉囌" }, + { "四余", "四餘" }, + { "四出", "四齣" }, + { "四出征收", "四出徵收" }, + { "四分历", "四分曆" }, + { "四只", "四隻" }, + { "四扎", "四紮" }, + { "四舍五入", "四捨五入" }, + { "四舍六入", "四捨六入" }, + { "四面钟", "四面鐘" }, + { "回光返照", "迴光返照" }, + { "回历", "回曆" }, + { "回向", "迴向" }, + { "回响", "迴響" }, + { "回圈", "迴圈" }, + { "回廊", "迴廊" }, + { "回形夹", "迴形夾" }, + { "回文", "迴文" }, + { "回旋", "迴旋" }, + { "回流", "迴流" }, + { "回游", "回遊" }, + { "回环", "迴環" }, + { "回着", "回著" }, + { "回纹针", "迴紋針" }, + { "回绕", "迴繞" }, + { "回翔", "迴翔" }, + { "回肠", "迴腸" }, + { "回荡", "回蕩" }, + { "回诵", "迴誦" }, + { "回路", "迴路" }, + { "回转", "迴轉" }, + { "回递性", "迴遞性" }, + { "回避", "迴避" }, + { "回采", "回採" }, + { "回銮", "迴鑾" }, + { "回阳荡气", "回陽蕩氣" }, + { "回音", "迴音" }, + { "回风", "迴風" }, + { "团", "團" }, + { "团子", "糰子" }, + { "园", "園" }, + { "园游会", "園遊會" }, + { "园里", "園裡" }, + { "困乏", "睏乏" }, + { "困倦", "睏倦" }, + { "困兽之斗", "困獸之鬥" }, + { "困兽犹斗", "困獸猶鬥" }, + { "困斗", "困鬥" }, + { "困觉", "睏覺" }, + { "囱", "囪" }, + { "围", "圍" }, + { "囵", "圇" }, + { "固征", "固徵" }, + { "国", "國" }, + { "国之桢干", "國之楨榦" }, + { "国仇", "國讎" }, + { "国历", "國曆" }, + { "图", "圖" }, + { "图里", "圖裡" }, + { "图鉴", "圖鑑" }, + { "圆", "圓" }, + { "圈占", "圈佔" }, + { "圈子里", "圈子裡" }, + { "圈梁", "圈樑" }, + { "圈里", "圈裡" }, + { "土制", "土製" }, + { "土里", "土裡" }, + { "圣", "聖" }, + { "圣后", "聖后" }, + { "在克制", "在剋制" }, + { "地丑德齐", "地醜德齊" }, + { "地克制", "地剋制" }, + { "地占", "地佔" }, + { "地心历表", "地心曆表" }, + { "地志", "地誌" }, + { "圹", "壙" }, + { "场", "場" }, + { "坏", "壞" }, + { "坏于", "坏於" }, + { "坐如钟", "坐如鐘" }, + { "坐庄", "坐莊" }, + { "坐钟", "坐鐘" }, + { "坑里", "坑裡" }, + { "块", "塊" }, + { "坚", "堅" }, + { "坚致", "堅緻" }, + { "坛", "壇" }, + { "坛坛罐罐", "罈罈罐罐" }, + { "坛子", "罈子" }, + { "坛騞", "罈騞" }, + { "坜", "壢" }, + { "坝", "壩" }, + { "坞", "塢" }, + { "坟", "墳" }, + { "坠", "墜" }, + { "坤范", "坤範" }, + { "坦荡", "坦蕩" }, + { "坦荡荡", "坦蕩蕩" }, + { "坱郁", "坱鬱" }, + { "垂发", "垂髮" }, + { "垂范", "垂範" }, + { "垄", "壟" }, + { "垆", "壚" }, + { "型范", "型範" }, + { "垒", "壘" }, + { "垦", "墾" }, + { "垦复", "墾複" }, + { "垦辟", "墾闢" }, + { "垩", "堊" }, + { "垫", "墊" }, + { "垭", "埡" }, + { "垲", "塏" }, + { "埃及历", "埃及曆" }, + { "埃及艳后", "埃及豔后" }, + { "埃荣冲", "埃榮衝" }, + { "埋头寻表", "埋頭尋錶" }, + { "埋头寻钟", "埋頭尋鐘" }, + { "城里", "城裡" }, + { "埔裡社撫墾局", "埔裏社撫墾局" }, + { "埔里社抚垦局", "埔裏社撫墾局" }, + { "埘", "塒" }, + { "埙", "塤" }, + { "埚", "堝" }, + { "埯", "垵" }, + { "基准", "基準" }, + { "基干", "基幹" }, + { "堑", "塹" }, + { "堕", "墮" }, + { "堕胎药", "墮胎藥" }, + { "堙淀", "堙澱" }, + { "塞药", "塞藥" }, + { "墓志", "墓誌" }, + { "墙", "牆" }, + { "墙里", "牆裡" }, + { "增辟", "增闢" }, + { "墨沈未干", "墨瀋未乾" }, + { "壮", "壯" }, + { "壮游", "壯遊" }, + { "壮面", "壯麵" }, + { "声", "聲" }, + { "壳", "殼" }, + { "壳里", "殼裡" }, + { "壶", "壺" }, + { "壶里", "壺裡" }, + { "壹郁", "壹鬱" }, + { "处", "處" }, + { "备", "備" }, + { "备注", "備註" }, + { "复", "復" }, + { "复习", "複習" }, + { "复亩珍", "複畝珍" }, + { "复仞年如", "複仞年如" }, + { "复以百万", "複以百萬" }, + { "复位", "複位" }, + { "复信", "複信" }, + { "复元音", "複元音" }, + { "复写", "複寫" }, + { "复决", "複決" }, + { "复函数", "複函數" }, + { "复分数", "複分數" }, + { "复分析", "複分析" }, + { "复分解", "複分解" }, + { "复列", "複列" }, + { "复利", "複利" }, + { "复制", "複製" }, + { "复印", "複印" }, + { "复发", "複發" }, + { "复变函数", "複變函數" }, + { "复句", "複句" }, + { "复叶", "複葉" }, + { "复合", "複合" }, + { "复名", "複名" }, + { "复员", "複員" }, + { "复壁", "複壁" }, + { "复壮", "複壯" }, + { "复复", "複復" }, + { "复姓", "複姓" }, + { "复字键", "複字鍵" }, + { "复审", "複審" }, + { "复对数", "複對數" }, + { "复平面", "複平面" }, + { "复式", "複式" }, + { "复数", "複數" }, + { "复本", "複本" }, + { "复杂", "複雜" }, + { "复查", "複查" }, + { "复核", "複核" }, + { "复检", "複檢" }, + { "复次", "複次" }, + { "复比", "複比" }, + { "复活节历表", "復活節曆表" }, + { "复流", "複流" }, + { "复测", "複測" }, + { "复电", "複電" }, + { "复目", "複目" }, + { "复眼", "複眼" }, + { "复种", "複種" }, + { "复线", "複線" }, + { "复色", "複色" }, + { "复议", "複議" }, + { "复评", "複評" }, + { "复诊", "複診" }, + { "复词", "複詞" }, + { "复试", "複試" }, + { "复课", "複課" }, + { "复赛", "複賽" }, + { "复辅音", "複輔音" }, + { "复述", "複述" }, + { "复选", "複選" }, + { "复钱", "複錢" }, + { "复阅", "複閱" }, + { "复音", "複音" }, + { "复韵", "複韻" }, + { "夏于乔", "夏于喬" }, + { "夏于喬", "夏于喬" }, + { "夏历", "夏曆" }, + { "夏天里", "夏天裡" }, + { "夏日里", "夏日裡" }, + { "夏游", "夏遊" }, + { "外制", "外製" }, + { "外强中干", "外強中乾" }, + { "多丑", "多醜" }, + { "多么", "多麼" }, + { "多余", "多餘" }, + { "多冲", "多衝" }, + { "多占", "多佔" }, + { "多只", "多隻" }, + { "夜光表", "夜光錶" }, + { "夜游", "夜遊" }, + { "夜里", "夜裡" }, + { "够", "夠" }, + { "够克制", "夠剋制" }, + { "大伙", "大夥" }, + { "大历", "大曆" }, + { "大只", "大隻" }, + { "大呆", "大獃" }, + { "大周折", "大週摺" }, + { "大型钟", "大型鐘" }, + { "大干", "大幹" }, + { "大批涌到", "大批湧到" }, + { "大折儿", "大摺兒" }, + { "大明历", "大明曆" }, + { "大曲", "大麴" }, + { "大本钟", "大本鐘" }, + { "大病初愈", "大病初癒" }, + { "大目干连", "大目乾連" }, + { "大笨钟", "大笨鐘" }, + { "大蜡", "大蜡" }, + { "大衍历", "大衍曆" }, + { "大言非夸", "大言非夸" }, + { "大赞", "大讚" }, + { "大钟", "大鐘" }, + { "大锤", "大鎚" }, + { "天克地冲", "天克地衝" }, + { "天历", "天曆" }, + { "天后", "天后" }, + { "天地为范", "天地為範" }, + { "天干物燥", "天乾物燥" }, + { "天文历表", "天文曆表" }, + { "天文学钟", "天文學鐘" }, + { "天文钟", "天文鐘" }, + { "太仆", "太僕" }, + { "太初历", "太初曆" }, + { "太后", "太后" }, + { "夯干", "夯幹" }, + { "头", "頭" }, + { "头发", "頭髮" }, + { "头巾吊在水里", "頭巾弔在水裡" }, + { "头里", "頭裡" }, + { "夸", "誇" }, + { "夸丽", "夸麗" }, + { "夸人", "夸人" }, + { "夸克", "夸克" }, + { "夸多斗靡", "誇多鬥靡" }, + { "夸夸其谈", "夸夸其談" }, + { "夸姣", "夸姣" }, + { "夸容", "夸容" }, + { "夸毗", "夸毗" }, + { "夸父", "夸父" }, + { "夸特", "夸特" }, + { "夸脱", "夸脫" }, + { "夸诞", "夸誕" }, + { "夸赞", "誇讚" }, + { "夹", "夾" }, + { "夺", "奪" }, + { "夺斗", "奪鬥" }, + { "奁", "奩" }, + { "奂", "奐" }, + { "奇丑", "奇醜" }, + { "奇迹", "奇蹟" }, + { "奋", "奮" }, + { "奋斗", "奮鬥" }, + { "奏折", "奏摺" }, + { "奖", "獎" }, + { "奖杯", "獎盃" }, + { "奥", "奧" }, + { "奥占", "奧佔" }, + { "女仆", "女僕" }, + { "女佣", "女傭" }, + { "奴仆", "奴僕" }, + { "奸夫", "姦夫" }, + { "奸妇", "姦婦" }, + { "奸宄", "姦宄" }, + { "奸情", "姦情" }, + { "奸杀", "姦殺" }, + { "奸污", "姦汙" }, + { "奸淫", "姦淫" }, + { "奸猾", "姦猾" }, + { "奸细", "姦細" }, + { "奸邪", "姦邪" }, + { "她克制", "她剋制" }, + { "好丑", "好醜" }, + { "好呆", "好獃" }, + { "好困", "好睏" }, + { "好家伙", "好傢夥" }, + { "好干", "好乾" }, + { "好斗", "好鬥" }, + { "好签", "好籤" }, + { "如果干", "如果幹" }, + { "如饥似渴", "如饑似渴" }, + { "妆", "妝" }, + { "妇", "婦" }, + { "妈", "媽" }, + { "妖后", "妖后" }, + { "妙药", "妙藥" }, + { "妩", "嫵" }, + { "妪", "嫗" }, + { "妫", "媯" }, + { "委托", "委託" }, + { "姗", "姍" }, + { "姜丝", "薑絲" }, + { "姜文杰", "姜文杰" }, + { "姜是老的辣", "薑是老的辣" }, + { "姜末", "薑末" }, + { "姜桂", "薑桂" }, + { "姜母", "薑母" }, + { "姜汁", "薑汁" }, + { "姜汤", "薑湯" }, + { "姜片", "薑片" }, + { "姜糖", "薑糖" }, + { "姜老辣", "薑老辣" }, + { "姜茶", "薑茶" }, + { "姜蓉", "薑蓉" }, + { "姜饼", "薑餅" }, + { "姜黄", "薑黃" }, + { "姹", "奼" }, + { "威棱", "威稜" }, + { "娄", "婁" }, + { "娅", "婭" }, + { "娆", "嬈" }, + { "娇", "嬌" }, + { "娈", "孌" }, + { "娱", "娛" }, + { "娲", "媧" }, + { "娲杆", "媧杆" }, + { "娴", "嫻" }, + { "婢仆", "婢僕" }, + { "婴", "嬰" }, + { "婵", "嬋" }, + { "婶", "嬸" }, + { "媪", "媼" }, + { "嫌凶", "嫌兇" }, + { "嫌好道丑", "嫌好道醜" }, + { "嫒", "嬡" }, + { "嫔", "嬪" }, + { "嫱", "嬙" }, + { "嬉游", "嬉遊" }, + { "嬖幸", "嬖倖" }, + { "嬴余", "嬴餘" }, + { "嬷", "嬤" }, + { "子之丰兮", "子之丰兮" }, + { "子云", "子云" }, + { "字汇", "字彙" }, + { "字里行间", "字裡行間" }, + { "存折", "存摺" }, + { "孙", "孫" }, + { "学", "學" }, + { "学里", "學裡" }, + { "孪", "孿" }, + { "宁", "寧" }, + { "宇宙志", "宇宙誌" }, + { "安沈铁路", "安瀋鐵路" }, + { "安眠药", "安眠藥" }, + { "安胎药", "安胎藥" }, + { "宗周钟", "宗周鐘" }, + { "官历", "官曆" }, + { "官地为采", "官地為寀" }, + { "官庄", "官莊" }, + { "定准", "定準" }, + { "定制", "定製" }, + { "宜云", "宜云" }, + { "宝", "寶" }, + { "宝历", "寶曆" }, + { "宝庄", "寶莊" }, + { "宝里宝气", "寶裡寶氣" }, + { "实", "實" }, + { "实干", "實幹" }, + { "宠", "寵" }, + { "审", "審" }, + { "宣泄", "宣洩" }, + { "宦游", "宦遊" }, + { "宪", "憲" }, + { "宫", "宮" }, + { "宫里", "宮裡" }, + { "宴游", "宴遊" }, + { "家丑", "家醜" }, + { "家仆", "家僕" }, + { "家伙", "傢伙" }, + { "家俱", "傢俱" }, + { "家具", "傢具" }, + { "家庄", "家莊" }, + { "家里", "家裡" }, + { "容范", "容範" }, + { "宽", "寬" }, + { "宽余", "寬餘" }, + { "宽宽松松", "寬寬鬆鬆" }, + { "宽松", "寬鬆" }, + { "宾", "賓" }, + { "寄托", "寄託" }, + { "密致", "密緻" }, + { "寇仇", "寇讎" }, + { "寇准", "寇準" }, + { "富余", "富餘" }, + { "寒假里", "寒假裡" }, + { "寒栗", "寒慄" }, + { "寝", "寢" }, + { "寡占", "寡佔" }, + { "寡欲", "寡慾" }, + { "寮采", "寮寀" }, + { "寸发千金", "寸髮千金" }, + { "对", "對" }, + { "对准", "對準" }, + { "对准表", "對準錶" }, + { "对准钟", "對準鐘" }, + { "对折", "對摺" }, + { "对表", "對錶" }, + { "寺钟", "寺鐘" }, + { "寻", "尋" }, + { "导", "導" }, + { "导游", "導遊" }, + { "寿", "壽" }, + { "寿面", "壽麵" }, + { "封后", "封后" }, + { "封面里", "封面裡" }, + { "射雕", "射鵰" }, + { "将", "將" }, + { "将占", "將佔" }, + { "尊后", "尊后" }, + { "小仆", "小僕" }, + { "小价", "小价" }, + { "小伙子", "小夥子" }, + { "小几", "小几" }, + { "小只", "小隻" }, + { "小型钟", "小型鐘" }, + { "小米面", "小米麵" }, + { "少占", "少佔" }, + { "少采", "少採" }, + { "尔", "爾" }, + { "尔冬升", "爾冬陞" }, + { "尘", "塵" }, + { "尝", "嘗" }, + { "尧", "堯" }, + { "就克制", "就剋制" }, + { "就范", "就範" }, + { "就里", "就裡" }, + { "尴", "尷" }, + { "尸", "屍" }, + { "尸位素餐", "尸位素餐" }, + { "尸利", "尸利" }, + { "尸居余气", "尸居餘氣" }, + { "尸弃佛", "尸棄佛" }, + { "尸祝", "尸祝" }, + { "尸禄", "尸祿" }, + { "尸罗精舍", "尸羅精舍" }, + { "尸羅精舍", "尸羅精舍" }, + { "尸臣", "尸臣" }, + { "尸谏", "尸諫" }, + { "尸魂界", "尸魂界" }, + { "尸鸠", "尸鳩" }, + { "尽", "盡" }, + { "尽先", "儘先" }, + { "尽其所有", "儘其所有" }, + { "尽力", "儘力" }, + { "尽可能", "儘可能" }, + { "尽尽", "儘儘" }, + { "尽快", "儘快" }, + { "尽早", "儘早" }, + { "尽是", "儘是" }, + { "尽管", "儘管" }, + { "尽速", "儘速" }, + { "尽量克制", "盡量剋制" }, + { "局里", "局裡" }, + { "屁股大吊了心", "屁股大弔了心" }, + { "层", "層" }, + { "屉", "屜" }, + { "届", "屆" }, + { "屋子里", "屋子裡" }, + { "屋梁", "屋樑" }, + { "屋里", "屋裡" }, + { "属", "屬" }, + { "属托", "屬託" }, + { "屡", "屢" }, + { "屡顾尔仆", "屢顧爾僕" }, + { "屦", "屨" }, + { "屯扎", "屯紮" }, + { "屯里", "屯裡" }, + { "山岳", "山嶽" }, + { "山崩钟应", "山崩鐘應" }, + { "山庄", "山莊" }, + { "山梁", "山樑" }, + { "山棱", "山稜" }, + { "山洞里", "山洞裡" }, + { "山羊胡", "山羊鬍" }, + { "山药", "山藥" }, + { "山里", "山裡" }, + { "山重水复", "山重水複" }, + { "屿", "嶼" }, + { "岁", "歲" }, + { "岁聿云暮", "歲聿云暮" }, + { "岂", "豈" }, + { "岖", "嶇" }, + { "岗", "崗" }, + { "岘", "峴" }, + { "岙", "嶴" }, + { "岚", "嵐" }, + { "岛", "島" }, + { "岭", "嶺" }, + { "岱岳", "岱嶽" }, + { "岳岳", "嶽嶽" }, + { "岳麓", "嶽麓" }, + { "岿", "巋" }, + { "峄", "嶧" }, + { "峡", "峽" }, + { "峤", "嶠" }, + { "峥", "崢" }, + { "峦", "巒" }, + { "峰回", "峰迴" }, + { "峻岭", "峻岭" }, + { "崂", "嶗" }, + { "崃", "崍" }, + { "崖广", "崖广" }, + { "崭", "嶄" }, + { "嵘", "嶸" }, + { "嵝", "嶁" }, + { "嶒棱", "嶒稜" }, + { "巅", "巔" }, + { "川谷", "川穀" }, + { "巡回", "巡迴" }, + { "巡游", "巡遊" }, + { "工致", "工緻" }, + { "左冲右突", "左衝右突" }, + { "巧历", "巧曆" }, + { "巧干", "巧幹" }, + { "巩", "鞏" }, + { "巯", "巰" }, + { "已占", "已佔" }, + { "巴尔干", "巴爾幹" }, + { "巷里", "巷裡" }, + { "币", "幣" }, + { "市占", "市佔" }, + { "市里", "市裡" }, + { "布于", "佈於" }, + { "布庄", "布莊" }, + { "布谷", "布穀" }, + { "布谷鸟钟", "布穀鳥鐘" }, + { "布道", "佈道" }, + { "布雷封锁", "佈雷封鎖" }, + { "布雷的", "佈雷的" }, + { "布雷舰", "佈雷艦" }, + { "布雷艇", "佈雷艇" }, + { "布雷速度", "佈雷速度" }, + { "帅", "帥" }, + { "师", "師" }, + { "师范", "師範" }, + { "希伯来历", "希伯來曆" }, + { "帏", "幃" }, + { "帐", "帳" }, + { "帘", "簾" }, + { "帘子", "帘子" }, + { "帘布", "帘布" }, + { "帜", "幟" }, + { "帝后台", "帝后臺" }, + { "带", "帶" }, + { "带发修行", "帶髮修行" }, + { "带征", "帶徵" }, + { "帧", "幀" }, + { "席卷", "席捲" }, + { "帮", "幫" }, + { "帮佣", "幫傭" }, + { "帱", "幬" }, + { "帻", "幘" }, + { "帼", "幗" }, + { "幂", "冪" }, + { "幞", "襆" }, + { "干上", "幹上" }, + { "干下去", "幹下去" }, + { "干不了", "幹不了" }, + { "干不成", "幹不成" }, + { "干丝", "乾絲" }, + { "干个", "幹個" }, + { "干个够", "乾個夠" }, + { "干么", "幹麼" }, + { "干乔", "乾喬" }, + { "干了", "幹了" }, + { "干事", "幹事" }, + { "干井", "乾井" }, + { "干些", "幹些" }, + { "干产", "乾產" }, + { "干亲", "乾親" }, + { "干人", "幹人" }, + { "干什么", "幹什麼" }, + { "干儿", "乾兒" }, + { "干冰", "乾冰" }, + { "干冷", "乾冷" }, + { "干净", "乾淨" }, + { "干凉", "乾涼" }, + { "干刍", "乾芻" }, + { "干刻版", "乾刻版" }, + { "干剥剥", "乾剝剝" }, + { "干办", "幹辦" }, + { "干劲", "幹勁" }, + { "干劲冲天", "幹勁沖天" }, + { "干卦", "乾卦" }, + { "干台", "乾颱" }, + { "干号", "乾號" }, + { "干吊着下巴", "乾吊著下巴" }, + { "干吏", "幹吏" }, + { "干吗", "幹嗎" }, + { "干呕", "乾嘔" }, + { "干员", "幹員" }, + { "干和", "乾和" }, + { "干咳", "乾咳" }, + { "干咽", "乾咽" }, + { "干哕", "乾噦" }, + { "干哥", "乾哥" }, + { "干哭", "乾哭" }, + { "干唱", "乾唱" }, + { "干啥", "幹啥" }, + { "干啼", "乾啼" }, + { "干嘛", "幹嘛" }, + { "干嚎", "乾嚎" }, + { "干回付", "乾回付" }, + { "干圆洁净", "乾圓潔淨" }, + { "干地", "乾地" }, + { "干坏事", "幹壞事" }, + { "干坞", "乾塢" }, + { "干坤", "乾坤" }, + { "干头", "幹頭" }, + { "干女", "乾女" }, + { "干奴才", "乾奴才" }, + { "干妈", "乾媽" }, + { "干妹", "乾妹" }, + { "干姊", "乾姊" }, + { "干姜", "乾薑" }, + { "干娘", "乾娘" }, + { "干子", "乾子" }, + { "干季", "乾季" }, + { "干完", "幹完" }, + { "干家", "幹家" }, + { "干将", "幹將" }, + { "干尸", "乾屍" }, + { "干屎橛", "乾屎橛" }, + { "干巴", "乾巴" }, + { "干干", "乾乾" }, + { "干干净净", "乾乾淨淨" }, + { "干式", "乾式" }, + { "干弟", "乾弟" }, + { "干当", "幹當" }, + { "干得", "幹得" }, + { "干急", "乾急" }, + { "干性", "乾性" }, + { "干性油", "幹性油" }, + { "干才", "幹才" }, + { "干打雷", "乾打雷" }, + { "干折", "乾折" }, + { "干掉", "幹掉" }, + { "干探", "幹探" }, + { "干撂台", "乾撂台" }, + { "干撇下", "乾撇下" }, + { "干擦", "乾擦" }, + { "干支剌", "乾支剌" }, + { "干支支", "乾支支" }, + { "干料", "乾料" }, + { "干旱", "乾旱" }, + { "干暖", "乾暖" }, + { "干材", "乾材" }, + { "干村沙", "乾村沙" }, + { "干杯", "乾杯" }, + { "干果", "乾果" }, + { "干枯", "乾枯" }, + { "干柴", "乾柴" }, + { "干校", "幹校" }, + { "干梅", "乾梅" }, + { "干死", "乾死" }, + { "干池", "乾池" }, + { "干沟", "乾溝" }, + { "干没", "乾沒" }, + { "干洗", "乾洗" }, + { "干活", "幹活" }, + { "干流", "幹流" }, + { "干济", "幹濟" }, + { "干涩", "乾澀" }, + { "干涸", "乾涸" }, + { "干渠", "乾渠" }, + { "干渴", "乾渴" }, + { "干湿", "乾濕" }, + { "干漆", "乾漆" }, + { "干灯盏", "乾燈盞" }, + { "干热", "乾熱" }, + { "干熬", "乾熬" }, + { "干熱", "乾熱" }, + { "干燥", "乾燥" }, + { "干父之蛊", "幹父之蠱" }, + { "干爸", "乾爸" }, + { "干爹", "乾爹" }, + { "干爽", "乾爽" }, + { "干片", "乾片" }, + { "干球温度", "幹球溫度" }, + { "干甚么", "幹甚麼" }, + { "干生受", "乾生受" }, + { "干生子", "乾生子" }, + { "干田", "乾田" }, + { "干电", "乾電" }, + { "干略", "幹略" }, + { "干疥", "乾疥" }, + { "干瘦", "乾瘦" }, + { "干瘪", "乾癟" }, + { "干瘾", "乾癮" }, + { "干癣", "乾癬" }, + { "干白儿", "乾白兒" }, + { "干的", "乾的" }, + { "干的停当", "幹的停當" }, + { "干眼", "乾眼" }, + { "干着", "乾著" }, + { "干着急", "干著急" }, + { "干瞪眼", "乾瞪眼" }, + { "干礼", "乾禮" }, + { "干稿", "乾稿" }, + { "干笑", "乾笑" }, + { "干等", "乾等" }, + { "干篾片", "乾篾片" }, + { "干粉", "乾粉" }, + { "干粮", "乾糧" }, + { "干糇", "乾餱" }, + { "干系", "干係" }, + { "干細胞", "幹細胞" }, + { "干纲", "乾綱" }, + { "干线", "幹線" }, + { "干练", "幹練" }, + { "干细胞", "幹細胞" }, + { "干结", "乾結" }, + { "干绷", "乾繃" }, + { "干缺", "幹缺" }, + { "干群关系", "幹群關係" }, + { "干耗", "乾耗" }, + { "干肉片", "乾肉片" }, + { "干股", "乾股" }, + { "干肥", "乾肥" }, + { "干脆", "乾脆" }, + { "干花", "乾花" }, + { "干苔", "乾苔" }, + { "干茨腊", "乾茨臘" }, + { "干茶钱", "乾茶錢" }, + { "干草", "乾草" }, + { "干菜", "乾菜" }, + { "干营生", "幹營生" }, + { "干落", "乾落" }, + { "干薪", "乾薪" }, + { "干虔", "乾虔" }, + { "干蛊", "幹蠱" }, + { "干血浆", "乾血漿" }, + { "干衣", "乾衣" }, + { "干裂", "乾裂" }, + { "干警", "幹警" }, + { "干贝", "乾貝" }, + { "干货", "乾貨" }, + { "干起来", "幹起來" }, + { "干路", "幹路" }, + { "干躁", "乾躁" }, + { "干这一行", "幹這一行" }, + { "干这种事", "幹這種事" }, + { "干逼", "乾逼" }, + { "干道", "幹道" }, + { "干部", "幹部" }, + { "干酪", "乾酪" }, + { "干酵母", "乾酵母" }, + { "干醋", "乾醋" }, + { "干重", "乾重" }, + { "干量", "乾量" }, + { "干阿奶", "乾阿奶" }, + { "干隆", "乾隆" }, + { "干雷", "乾雷" }, + { "干霍乱", "乾霍亂" }, + { "干面", "乾麵" }, + { "干革命", "幹革命" }, + { "干颡", "乾顙" }, + { "干饭", "乾飯" }, + { "干馆", "乾館" }, + { "干馏", "乾餾" }, + { "干鱼", "乾魚" }, + { "干鲜", "乾鮮" }, + { "平准", "平準" }, + { "平泉庄", "平泉莊" }, + { "年代里", "年代裡" }, + { "年历", "年曆" }, + { "年谷", "年穀" }, + { "年里", "年裡" }, + { "并", "並" }, + { "并一不二", "併一不二" }, + { "并为一体", "併為一體" }, + { "并为一家", "併為一家" }, + { "并产", "併產" }, + { "并入", "併入" }, + { "并兼", "併兼" }, + { "并到", "併到" }, + { "并力", "并力" }, + { "并发型模式", "併發型模式" }, + { "并发模式", "併發模式" }, + { "并发症", "併發症" }, + { "并发重症", "併發重症" }, + { "并叠", "併疊" }, + { "并合", "併合" }, + { "并名", "併名" }, + { "并吞", "并吞" }, + { "并吞下", "併吞下" }, + { "并存着", "並存著" }, + { "并州", "并州" }, + { "并当", "併當" }, + { "并拢", "併攏" }, + { "并日而食", "并日而食" }, + { "并曰入淀", "並曰入澱" }, + { "并案", "併案" }, + { "并流", "併流" }, + { "并火", "併火" }, + { "并科", "併科" }, + { "并线", "併線" }, + { "并网", "併網" }, + { "并肩子", "併肩子" }, + { "并购", "併購" }, + { "并迭", "并迭" }, + { "并除", "併除" }, + { "并骨", "併骨" }, + { "幸免", "倖免" }, + { "幸存", "倖存" }, + { "幸幸", "倖幸" }, + { "幸运胡", "幸運鬍" }, + { "广", "廣" }, + { "广征", "廣徵" }, + { "广舍", "廣捨" }, + { "广部", "广部" }, + { "庄上", "莊上" }, + { "庄严", "莊嚴" }, + { "庄主", "莊主" }, + { "庄农", "莊農" }, + { "庄员", "莊員" }, + { "庄周", "莊周" }, + { "庄园", "莊園" }, + { "庄士顿道", "莊士頓道" }, + { "庄子", "莊子" }, + { "庄客", "莊客" }, + { "庄家", "莊家" }, + { "庄户", "莊戶" }, + { "庄房", "莊房" }, + { "庄敬", "莊敬" }, + { "庄田", "莊田" }, + { "庄稼", "莊稼" }, + { "庄舄越吟", "莊舄越吟" }, + { "庄语", "莊語" }, + { "庄里", "莊裡" }, + { "庄重", "莊重" }, + { "庄院", "莊院" }, + { "庄骚", "莊騷" }, + { "庆", "慶" }, + { "庆历", "慶曆" }, + { "庆吊", "慶弔" }, + { "庐", "廬" }, + { "庑", "廡" }, + { "库", "庫" }, + { "应", "應" }, + { "应克制", "應剋制" }, + { "应征", "應徵" }, + { "应钟", "應鐘" }, + { "店里", "店裡" }, + { "庙", "廟" }, + { "庙里", "廟裡" }, + { "府干", "府幹" }, + { "庞", "龐" }, + { "废", "廢" }, + { "废后", "廢后" }, + { "座钟", "座鐘" }, + { "康庄", "康莊" }, + { "廢后", "廢后" }, + { "廪", "廩" }, + { "延历", "延曆" }, + { "开", "開" }, + { "开吊", "開弔" }, + { "开哄", "開鬨" }, + { "开征", "開徵" }, + { "开药", "開藥" }, + { "开辟", "開闢" }, + { "开采", "開採" }, + { "异", "異" }, + { "弃", "棄" }, + { "弃舍", "棄捨" }, + { "弄丑", "弄醜" }, + { "弄干", "弄乾" }, + { "弄松", "弄鬆" }, + { "弄脏", "弄髒" }, + { "弄鬼吊猴", "弄鬼弔猴" }, + { "弑", "弒" }, + { "引斗", "引鬥" }, + { "弘历", "弘曆" }, + { "张", "張" }, + { "张三丰", "張三丰" }, + { "张乐于张徐", "張樂于張徐" }, + { "张勋", "張勳" }, + { "弥", "彌" }, + { "弥山遍野", "瀰山遍野" }, + { "弥弥", "瀰瀰" }, + { "弥漫", "瀰漫" }, + { "弥漫着", "瀰漫著" }, + { "弪", "弳" }, + { "弯", "彎" }, + { "張三丰", "張三丰" }, + { "弹", "彈" }, + { "弹子台", "彈子檯" }, + { "弹珠台", "彈珠檯" }, + { "弹药", "彈藥" }, + { "强", "強" }, + { "强占", "強佔" }, + { "强奸", "強姦" }, + { "强干", "強幹" }, + { "归", "歸" }, + { "归余", "歸餘" }, + { "归并", "歸併" }, + { "当", "當" }, + { "当准", "當準" }, + { "当啷", "噹啷" }, + { "当当", "噹噹" }, + { "当着", "當著" }, + { "录", "錄" }, + { "录制", "錄製" }, + { "录着", "錄著" }, + { "形单影只", "形單影隻" }, + { "形影相吊", "形影相弔" }, + { "彦", "彥" }, + { "彩带", "綵帶" }, + { "彩排", "綵排" }, + { "彩楼", "綵樓" }, + { "彩牌楼", "綵牌樓" }, + { "彩球", "綵球" }, + { "彩线", "綵線" }, + { "彩绸", "綵綢" }, + { "彩船", "綵船" }, + { "彩衣", "綵衣" }, + { "彭于晏", "彭于晏" }, + { "影后", "影后" }, + { "彻", "徹" }, + { "彼此克制", "彼此剋制" }, + { "往复", "往複" }, + { "往日無仇", "往日無讎" }, + { "往里", "往裡" }, + { "征人", "徵人" }, + { "征令", "徵令" }, + { "征信", "徵信" }, + { "征候", "徵候" }, + { "征兆", "徵兆" }, + { "征兵", "徵兵" }, + { "征到", "徵到" }, + { "征募", "徵募" }, + { "征占", "徵佔" }, + { "征友", "徵友" }, + { "征发", "徵發" }, + { "征召", "徵召" }, + { "征名责实", "徵名責實" }, + { "征吏", "徵吏" }, + { "征启", "徵啟" }, + { "征咎", "徵咎" }, + { "征圣", "徵聖" }, + { "征士", "徵士" }, + { "征婚", "徵婚" }, + { "征实", "徵實" }, + { "征庸", "徵庸" }, + { "征引", "徵引" }, + { "征得", "徵得" }, + { "征怪", "徵怪" }, + { "征才", "徵才" }, + { "征招", "徵招" }, + { "征收", "徵收" }, + { "征效", "徵效" }, + { "征文", "徵文" }, + { "征求", "徵求" }, + { "征状", "徵狀" }, + { "征用", "徵用" }, + { "征税", "徵稅" }, + { "征稿", "徵稿" }, + { "征答", "徵答" }, + { "征结", "徵結" }, + { "征聘", "徵聘" }, + { "征训", "徵訓" }, + { "征询", "徵詢" }, + { "征调", "徵調" }, + { "征象", "徵象" }, + { "征购", "徵購" }, + { "征车", "徵車" }, + { "征辟", "徵辟" }, + { "征迹", "徵跡" }, + { "征选", "徵選" }, + { "征逐", "徵逐" }, + { "征集", "徵集" }, + { "征风召雨", "徵風召雨" }, + { "征验", "徵驗" }, + { "径", "徑" }, + { "很丑", "很醜" }, + { "很凶", "很兇" }, + { "很干", "很乾" }, + { "律历志", "律曆志" }, + { "徐干", "徐幹" }, + { "徒托空言", "徒託空言" }, + { "徕", "徠" }, + { "得克制", "得剋制" }, + { "御侮", "禦侮" }, + { "御寇", "禦寇" }, + { "御寒", "禦寒" }, + { "御敌", "禦敵" }, + { "德占", "德佔" }, + { "心余", "心餘" }, + { "心愿", "心愿" }, + { "心系一", "心繫一" }, + { "心系万", "心繫萬" }, + { "心系东", "心繫東" }, + { "心系两", "心繫兩" }, + { "心系中", "心繫中" }, + { "心系乔", "心繫乔" }, + { "心系五", "心繫五" }, + { "心系京", "心繫京" }, + { "心系人", "心繫人" }, + { "心系他", "心繫他" }, + { "心系伊", "心繫伊" }, + { "心系众", "心繫眾" }, + { "心系传", "心繫傳" }, + { "心系何", "心繫何" }, + { "心系你", "心繫你" }, + { "心系健", "心繫健" }, + { "心系全", "心繫全" }, + { "心系兰", "心繫蘭" }, + { "心系农", "心繫农" }, + { "心系功", "心繫功" }, + { "心系动", "心繫動" }, + { "心系募", "心繫募" }, + { "心系北", "心繫北" }, + { "心系十", "心繫十" }, + { "心系千", "心繫千" }, + { "心系南", "心繫南" }, + { "心系台", "心繫台" }, + { "心系和", "心繫和" }, + { "心系哪", "心繫哪" }, + { "心系唐", "心繫唐" }, + { "心系嘱", "心繫囑" }, + { "心系四", "心繫四" }, + { "心系困", "心繫困" }, + { "心系国", "心繫國" }, + { "心系在", "心繫在" }, + { "心系地", "心繫地" }, + { "心系大", "心繫大" }, + { "心系天", "心繫天" }, + { "心系夫", "心繫夫" }, + { "心系奥", "心繫奧" }, + { "心系女", "心繫女" }, + { "心系她", "心繫她" }, + { "心系妇", "心繫婦" }, + { "心系妻", "心繫妻" }, + { "心系子", "心繫子" }, + { "心系它", "心繫它" }, + { "心系宣", "心繫宣" }, + { "心系家", "心繫家" }, + { "心系富", "心繫富" }, + { "心系小", "心繫小" }, + { "心系山", "心繫山" }, + { "心系川", "心繫川" }, + { "心系幼", "心繫幼" }, + { "心系广", "心繫廣" }, + { "心系彼", "心繫彼" }, + { "心系德", "心繫德" }, + { "心系您", "心繫您" }, + { "心系慈", "心繫慈" }, + { "心系我", "心繫我" }, + { "心系摩", "心繫摩" }, + { "心系故", "心繫故" }, + { "心系新", "心繫新" }, + { "心系日", "心繫日" }, + { "心系昌", "心繫昌" }, + { "心系晓", "心繫曉" }, + { "心系曼", "心繫曼" }, + { "心系林", "心繫林" }, + { "心系母", "心繫母" }, + { "心系民", "心繫民" }, + { "心系江", "心繫江" }, + { "心系汶", "心繫汶" }, + { "心系沈", "心繫沈" }, + { "心系沙", "心繫沙" }, + { "心系泰", "心繫泰" }, + { "心系浙", "心繫浙" }, + { "心系港", "心繫港" }, + { "心系湖", "心繫湖" }, + { "心系澳", "心繫澳" }, + { "心系灾", "心繫災" }, + { "心系父", "心繫父" }, + { "心系生", "心繫生" }, + { "心系病", "心繫病" }, + { "心系百", "心繫百" }, + { "心系的", "心繫的" }, + { "心系着", "心繫著" }, + { "心系社", "心繫社" }, + { "心系祖", "心繫祖" }, + { "心系神", "心繫神" }, + { "心系红", "心繫紅" }, + { "心系美", "心繫美" }, + { "心系群", "心繫群" }, + { "心系老", "心繫老" }, + { "心系舞", "心繫舞" }, + { "心系英", "心繫英" }, + { "心系茶", "心繫茶" }, + { "心系西", "心繫西" }, + { "心系贫", "心繫貧" }, + { "心系输", "心繫輸" }, + { "心系近", "心繫近" }, + { "心系远", "心繫遠" }, + { "心系选", "心繫選" }, + { "心系重", "心繫重" }, + { "心系长", "心繫長" }, + { "心系阮", "心繫阮" }, + { "心系震", "心繫震" }, + { "心系非", "心繫非" }, + { "心系风", "心繫風" }, + { "心系香", "心繫香" }, + { "心系高", "心繫高" }, + { "心系麦", "心繫麥" }, + { "心系黄", "心繫黃" }, + { "心荡", "心蕩" }, + { "心药", "心藥" }, + { "心里", "心裡" }, + { "心里面", "心裏面" }, + { "心长发短", "心長髮短" }, + { "忆", "憶" }, + { "忏", "懺" }, + { "志哀", "誌哀" }, + { "志喜", "誌喜" }, + { "志庆", "誌慶" }, + { "志异", "誌異" }, + { "忙并", "忙併" }, + { "忙里", "忙裡" }, + { "忙里偷闲", "忙裡偷閒" }, + { "忠仆", "忠僕" }, + { "忧", "憂" }, + { "忧郁", "憂鬱" }, + { "快克制", "快剋制" }, + { "快冲", "快衝" }, + { "快干", "快乾" }, + { "忾", "愾" }, + { "怀", "懷" }, + { "怀表", "懷錶" }, + { "怀里", "懷裡" }, + { "怀钟", "懷鐘" }, + { "态", "態" }, + { "怂", "慫" }, + { "怃", "憮" }, + { "怄", "慪" }, + { "怅", "悵" }, + { "怆", "愴" }, + { "怎么", "怎麼" }, + { "怎么着", "怎麼著" }, + { "怒发冲冠", "怒髮衝冠" }, + { "怜", "憐" }, + { "思如泉涌", "思如泉湧" }, + { "急冲而下", "急衝而下" }, + { "性征", "性徵" }, + { "性欲", "性慾" }, + { "怪里怪气", "怪裡怪氣" }, + { "怫郁", "怫鬱" }, + { "总", "總" }, + { "怼", "懟" }, + { "怿", "懌" }, + { "恂栗", "恂慄" }, + { "恋", "戀" }, + { "恋恋不舍", "戀戀不捨" }, + { "恒", "恆" }, + { "恒生", "恒生" }, + { "恕乏价催", "恕乏价催" }, + { "息交绝游", "息交絕遊" }, + { "息谷", "息穀" }, + { "恰才", "恰纔" }, + { "恳", "懇" }, + { "恳托", "懇託" }, + { "恶", "惡" }, + { "恶心", "噁心" }, + { "恶斗", "惡鬥" }, + { "恶直丑正", "惡直醜正" }, + { "恸", "慟" }, + { "恹", "懨" }, + { "恺", "愷" }, + { "恻", "惻" }, + { "恼", "惱" }, + { "恽", "惲" }, + { "悍药", "悍藥" }, + { "悒郁", "悒鬱" }, + { "悠悠荡荡", "悠悠蕩蕩" }, + { "悠游", "悠遊" }, + { "悠荡", "悠蕩" }, + { "悦", "悅" }, + { "您克制", "您剋制" }, + { "悫", "愨" }, + { "悬", "懸" }, + { "悬梁", "懸樑" }, + { "悬臂梁", "懸臂樑" }, + { "悬钟", "懸鐘" }, + { "悭", "慳" }, + { "悯", "憫" }, + { "悲筑", "悲筑" }, + { "悲郁", "悲鬱" }, + { "悸栗", "悸慄" }, + { "情欲", "情慾" }, + { "惇朴", "惇樸" }, + { "惊", "驚" }, + { "惊赞", "驚讚" }, + { "惊钟", "驚鐘" }, + { "惧", "懼" }, + { "惨", "慘" }, + { "惩", "懲" }, + { "惫", "憊" }, + { "惬", "愜" }, + { "惭", "慚" }, + { "惮", "憚" }, + { "惯", "慣" }, + { "想克制", "想剋制" }, + { "惴栗", "惴慄" }, + { "愈合", "癒合" }, + { "意克制", "意剋制" }, + { "意占", "意佔" }, + { "意大利面", "意大利麵" }, + { "意面", "意麵" }, + { "感冒药", "感冒藥" }, + { "愠", "慍" }, + { "愤", "憤" }, + { "愦", "憒" }, + { "愿", "願" }, + { "愿朴", "愿樸" }, + { "愿而恭", "愿而恭" }, + { "慌里慌张", "慌裡慌張" }, + { "慑", "懾" }, + { "懈松", "懈鬆" }, + { "懑", "懣" }, + { "懒", "懶" }, + { "懔", "懍" }, + { "懔栗", "懍慄" }, + { "懿范", "懿範" }, + { "戆", "戇" }, + { "戋", "戔" }, + { "戏", "戲" }, + { "戏彩娱亲", "戲綵娛親" }, + { "戏里", "戲裡" }, + { "成药", "成藥" }, + { "我克制", "我剋制" }, + { "戗", "戧" }, + { "战", "戰" }, + { "战天斗地", "戰天鬥地" }, + { "战斗", "戰鬥" }, + { "战栗", "戰慄" }, + { "截发", "截髮" }, + { "戬", "戩" }, + { "戬谷", "戩穀" }, + { "戯", "戱" }, + { "戴发含齿", "戴髮含齒" }, + { "戴表", "戴錶" }, + { "户", "戶" }, + { "房里", "房裡" }, + { "所云", "所云" }, + { "所云云", "所云云" }, + { "所占", "所佔" }, + { "所托", "所託" }, + { "扁拟谷盗虫", "扁擬穀盜蟲" }, + { "手冢治虫", "手塚治虫" }, + { "手塚治虫", "手塚治虫" }, + { "手折", "手摺" }, + { "手松", "手鬆" }, + { "手表", "手錶" }, + { "手里", "手裡" }, + { "手里剑", "手裏劍" }, + { "才克制", "才剋制" }, + { "才则", "纔則" }, + { "才干", "才幹" }, + { "才得两年", "纔得兩年" }, + { "才此", "纔此" }, + { "扎上", "紮上" }, + { "扎下", "紮下" }, + { "扎囮", "紮囮" }, + { "扎好", "紮好" }, + { "扎实", "紮實" }, + { "扎寨", "紮寨" }, + { "扎带子", "紮帶子" }, + { "扎成", "紮成" }, + { "扎根", "紮根" }, + { "扎紧", "紮緊" }, + { "扎脚", "紮腳" }, + { "扎营", "紮營" }, + { "扎裹", "紮裹" }, + { "扎诈", "紮詐" }, + { "扎起", "紮起" }, + { "扎铁", "紮鐵" }, + { "扑", "撲" }, + { "扑作教刑", "扑作教刑" }, + { "扑冬", "撲鼕" }, + { "扑冬冬", "撲鼕鼕" }, + { "扑打", "扑打" }, + { "扑挞", "扑撻" }, + { "打出吊入", "打出弔入" }, + { "打卡钟", "打卡鐘" }, + { "打吨", "打吨" }, + { "打干", "打幹" }, + { "打干哕", "打乾噦" }, + { "打并", "打併" }, + { "打拼", "打拚" }, + { "打斗", "打鬥" }, + { "打着钟", "打著鐘" }, + { "打谷", "打穀" }, + { "打路庄板", "打路莊板" }, + { "打钟", "打鐘" }, + { "托买", "託買" }, + { "托了", "託了" }, + { "托事", "託事" }, + { "托交", "託交" }, + { "托人", "託人" }, + { "托付", "託付" }, + { "托儿所", "託兒所" }, + { "托卖", "託賣" }, + { "托古讽今", "託古諷今" }, + { "托名", "託名" }, + { "托命", "託命" }, + { "托咎", "託咎" }, + { "托大", "託大" }, + { "托孤", "託孤" }, + { "托庇", "託庇" }, + { "托故", "託故" }, + { "托梦", "託夢" }, + { "托疾", "託疾" }, + { "托病", "託病" }, + { "托管", "託管" }, + { "托言", "託言" }, + { "托词", "託詞" }, + { "托身", "託身" }, + { "托辞", "託辭" }, + { "托过", "託過" }, + { "托运", "託運" }, + { "托附", "託附" }, + { "扛大梁", "扛大樑" }, + { "扞御", "扞禦" }, + { "执", "執" }, + { "扩", "擴" }, + { "扪", "捫" }, + { "扫", "掃" }, + { "扫荡", "掃蕩" }, + { "扬", "揚" }, + { "扯面", "扯麵" }, + { "扰", "擾" }, + { "扶余国", "扶餘國" }, + { "批复", "批複" }, + { "批斗", "批鬥" }, + { "批注", "批註" }, + { "承制", "承製" }, + { "抑郁", "抑鬱" }, + { "抓奸", "抓姦" }, + { "抓斗", "抓鬥" }, + { "抓药", "抓藥" }, + { "投药", "投藥" }, + { "抗御", "抗禦" }, + { "抗癌药", "抗癌藥" }, + { "抗药", "抗藥" }, + { "折冲", "折衝" }, + { "折叠", "摺疊" }, + { "折合", "摺合" }, + { "折奏", "摺奏" }, + { "折子", "摺子" }, + { "折尺", "摺尺" }, + { "折扇", "摺扇" }, + { "折梯", "摺梯" }, + { "折椅", "摺椅" }, + { "折痕", "摺痕" }, + { "折篷", "摺篷" }, + { "折纸", "摺紙" }, + { "折裙", "摺裙" }, + { "抚", "撫" }, + { "抛", "拋" }, + { "抟", "摶" }, + { "抠", "摳" }, + { "抡", "掄" }, + { "抢", "搶" }, + { "抢占", "搶佔" }, + { "护", "護" }, + { "护发", "護髮" }, + { "报", "報" }, + { "披发", "披髮" }, + { "披头散发", "披頭散髮" }, + { "披榛采兰", "披榛採蘭" }, + { "抱素怀朴", "抱素懷樸" }, + { "抵御", "抵禦" }, + { "抹干", "抹乾" }, + { "抽公签", "抽公籤" }, + { "抽签", "抽籤" }, + { "抿发", "抿髮" }, + { "拂钟无声", "拂鐘無聲" }, + { "担", "擔" }, + { "担仔面", "擔仔麵" }, + { "担担面", "擔擔麵" }, + { "担着", "擔著" }, + { "担负着", "擔負著" }, + { "拆伙", "拆夥" }, + { "拈须", "拈鬚" }, + { "拉克施尔德钟", "拉克施爾德鐘" }, + { "拉杆", "拉杆" }, + { "拉纤", "拉縴" }, + { "拉面", "拉麵" }, + { "拓朴", "拓樸" }, + { "拔发", "拔髮" }, + { "拔须", "拔鬚" }, + { "拗别", "拗彆" }, + { "拙朴", "拙樸" }, + { "拜托", "拜託" }, + { "拟", "擬" }, + { "拢", "攏" }, + { "拣", "揀" }, + { "拥", "擁" }, + { "拦", "攔" }, + { "拧", "擰" }, + { "拧干", "擰乾" }, + { "拨", "撥" }, + { "拨谷", "撥穀" }, + { "择", "擇" }, + { "括发", "括髮" }, + { "拭干", "拭乾" }, + { "拮据", "拮据" }, + { "拼却", "拚卻" }, + { "拼命", "拚命" }, + { "拼斗", "拚鬥" }, + { "拼死", "拚死" }, + { "拼生尽死", "拚生盡死" }, + { "拼绝", "拚絕" }, + { "拼老命", "拚老命" }, + { "拼舍", "拚捨" }, + { "拾沈", "拾瀋" }, + { "拿下表", "拿下錶" }, + { "拿下钟", "拿下鐘" }, + { "拿准", "拿準" }, + { "拿破仑", "拿破崙" }, + { "挂", "掛" }, + { "挂历", "掛曆" }, + { "挂号", "挂號" }, + { "挂图", "挂圖" }, + { "挂帅", "挂帥" }, + { "挂帘", "掛帘" }, + { "挂彩", "挂彩" }, + { "挂念", "挂念" }, + { "挂车", "挂車" }, + { "挂钟", "掛鐘" }, + { "挂钩", "掛鈎" }, + { "挂面", "挂面" }, + { "挌斗", "挌鬥" }, + { "挑大梁", "挑大樑" }, + { "挑斗", "挑鬥" }, + { "挚", "摯" }, + { "挛", "攣" }, + { "挝", "撾" }, + { "挞", "撻" }, + { "挟", "挾" }, + { "挠", "撓" }, + { "挡", "擋" }, + { "挢", "撟" }, + { "挣", "掙" }, + { "挤", "擠" }, + { "挥", "揮" }, + { "挥杆", "揮杆" }, + { "振荡", "振蕩" }, + { "挽曲", "輓曲" }, + { "挽歌", "輓歌" }, + { "挽联", "輓聯" }, + { "挽聯", "輓聯" }, + { "挽詞", "輓詞" }, + { "挽詩", "輓詩" }, + { "挽词", "輓詞" }, + { "挽诗", "輓詩" }, + { "捆扎", "捆紮" }, + { "捉发", "捉髮" }, + { "捉奸", "捉姦" }, + { "捍御", "捍禦" }, + { "捏面人", "捏麵人" }, + { "捞", "撈" }, + { "捞干", "撈乾" }, + { "捞面", "撈麵" }, + { "损", "損" }, + { "捡", "撿" }, + { "换", "換" }, + { "换发", "換髮" }, + { "换只", "換隻" }, + { "换签", "換籤" }, + { "换药", "換藥" }, + { "捣", "搗" }, + { "捣鬼吊白", "搗鬼弔白" }, + { "据", "據" }, + { "据云", "據云" }, + { "据干而窥井底", "據榦而窺井底" }, + { "捵面", "捵麵" }, + { "捶炼", "捶鍊" }, + { "掌柜", "掌柜" }, + { "排骨面", "排骨麵" }, + { "掣签", "掣籤" }, + { "接着说", "接著說" }, + { "推情准理", "推情準理" }, + { "推托", "推託" }, + { "掳", "擄" }, + { "掴", "摑" }, + { "掷", "擲" }, + { "掸", "撣" }, + { "掺", "摻" }, + { "掼", "摜" }, + { "提子干", "提子乾" }, + { "提心吊胆", "提心弔膽" }, + { "握发", "握髮" }, + { "揩干", "揩乾" }, + { "揪发", "揪髮" }, + { "揪采", "揪採" }, + { "揪须", "揪鬚" }, + { "揭丑", "揭醜" }, + { "揽", "攬" }, + { "揿", "撳" }, + { "搀", "攙" }, + { "搁", "擱" }, + { "搂", "摟" }, + { "搅", "攪" }, + { "搋面", "搋麵" }, + { "搏斗", "搏鬥" }, + { "搤肮拊背", "搤肮拊背" }, + { "搬斗", "搬鬥" }, + { "搭伙", "搭夥" }, + { "搭干铺", "搭乾鋪" }, + { "携", "攜" }, + { "搽药", "搽藥" }, + { "摄", "攝" }, + { "摄制", "攝製" }, + { "摅", "攄" }, + { "摆", "擺" }, + { "摆钟", "擺鐘" }, + { "摇", "搖" }, + { "摇摇荡荡", "搖搖蕩蕩" }, + { "摇荡", "搖蕩" }, + { "摈", "擯" }, + { "摊", "攤" }, + { "摧坚获丑", "摧堅獲醜" }, + { "摭采", "摭採" }, + { "摸棱", "摸稜" }, + { "摸钟", "摸鐘" }, + { "撄", "攖" }, + { "撇吊", "撇弔" }, + { "撑", "撐" }, + { "撚须", "撚鬚" }, + { "撞球台", "撞球檯" }, + { "撞钟", "撞鐘" }, + { "撞阵冲军", "撞陣衝軍" }, + { "撤并", "撤併" }, + { "撩斗", "撩鬥" }, + { "撵", "攆" }, + { "撷", "擷" }, + { "撸", "擼" }, + { "撺", "攛" }, + { "擀面", "擀麵" }, + { "操作钟", "操作鐘" }, + { "擞", "擻" }, + { "擢发", "擢髮" }, + { "擦干", "擦乾" }, + { "擦干净", "擦乾淨" }, + { "擦药", "擦藥" }, + { "攒", "攢" }, + { "支干", "支幹" }, + { "支杆", "支杆" }, + { "收获", "收穫" }, + { "改征", "改徵" }, + { "攻占", "攻佔" }, + { "放松", "放鬆" }, + { "放荡", "放蕩" }, + { "放蒙挣", "放懞掙" }, + { "故事里", "故事裡" }, + { "故云", "故云" }, + { "敌", "敵" }, + { "敌忾同仇", "敵愾同讎" }, + { "救药", "救藥" }, + { "教学钟", "教學鐘" }, + { "教范", "教範" }, + { "敛", "斂" }, + { "敢干", "敢幹" }, + { "散伙", "散夥" }, + { "散荡", "散蕩" }, + { "敦朴", "敦樸" }, + { "敬挽", "敬輓" }, + { "数", "數" }, + { "数与虏确", "數與虜确" }, + { "数字钟", "數字鐘" }, + { "数罪并罚", "數罪併罰" }, + { "敲扑", "敲扑" }, + { "敲钟", "敲鐘" }, + { "整发用品", "整髮用品" }, + { "整只", "整隻" }, + { "整庄", "整莊" }, + { "敷药", "敷藥" }, + { "文征明", "文徵明" }, + { "文思泉涌", "文思泉湧" }, + { "斋", "齋" }, + { "斓", "斕" }, + { "斗上", "鬥上" }, + { "斗不过", "鬥不過" }, + { "斗丽", "鬥麗" }, + { "斗了", "鬥了" }, + { "斗争", "鬥爭" }, + { "斗倒", "鬥倒" }, + { "斗分子", "鬥分子" }, + { "斗别气", "鬥彆氣" }, + { "斗力", "鬥力" }, + { "斗劲", "鬥勁" }, + { "斗叠", "鬥疊" }, + { "斗口", "鬥口" }, + { "斗叶儿", "鬥葉兒" }, + { "斗叶子", "鬥葉子" }, + { "斗合", "鬥合" }, + { "斗哄", "鬥鬨" }, + { "斗嘴", "鬥嘴" }, + { "斗地主", "鬥地主" }, + { "斗士", "鬥士" }, + { "斗头", "鬥頭" }, + { "斗富", "鬥富" }, + { "斗巧", "鬥巧" }, + { "斗幌子", "鬥幌子" }, + { "斗弄", "鬥弄" }, + { "斗引", "鬥引" }, + { "斗彩", "鬥彩" }, + { "斗心眼", "鬥心眼" }, + { "斗志", "鬥志" }, + { "斗成", "鬥成" }, + { "斗打", "鬥打" }, + { "斗批改", "鬥批改" }, + { "斗技", "鬥技" }, + { "斗文", "鬥文" }, + { "斗斗", "鬥鬥" }, + { "斗智", "鬥智" }, + { "斗暴", "鬥暴" }, + { "斗来斗去", "鬥來鬥去" }, + { "斗武", "鬥武" }, + { "斗殴", "鬥毆" }, + { "斗气", "鬥氣" }, + { "斗法", "鬥法" }, + { "斗牌", "鬥牌" }, + { "斗牙拌齿", "鬥牙拌齒" }, + { "斗牙斗齿", "鬥牙鬥齒" }, + { "斗牛", "鬥牛" }, + { "斗犀台", "鬥犀臺" }, + { "斗犬", "鬥犬" }, + { "斗狠", "鬥狠" }, + { "斗百草", "鬥百草" }, + { "斗眼", "鬥眼" }, + { "斗着", "鬥著" }, + { "斗私批修", "鬥私批修" }, + { "斗而铸兵", "鬥而鑄兵" }, + { "斗而铸锥", "鬥而鑄錐" }, + { "斗胜", "鬥勝" }, + { "斗脚", "鬥腳" }, + { "斗舰", "鬥艦" }, + { "斗艳", "鬥豔" }, + { "斗茶", "鬥茶" }, + { "斗草", "鬥草" }, + { "斗蟋蟀", "鬥蟋蟀" }, + { "斗话", "鬥話" }, + { "斗起", "鬥起" }, + { "斗趣", "鬥趣" }, + { "斗闲气", "鬥閑氣" }, + { "斗闷", "鬥悶" }, + { "斗雪红", "鬥雪紅" }, + { "斗风", "鬥風" }, + { "斗鱼", "鬥魚" }, + { "斗鸡", "鬥雞" }, + { "斗鸭", "鬥鴨" }, + { "斗鹌鹑", "鬥鵪鶉" }, + { "斩", "斬" }, + { "斫雕为朴", "斫雕為樸" }, + { "断", "斷" }, + { "断发", "斷髮" }, + { "新历", "新曆" }, + { "新庄", "新莊" }, + { "新扎", "新紮" }, + { "斲雕为朴", "斲雕為樸" }, + { "方便面", "方便麵" }, + { "方几", "方几" }, + { "方志", "方誌" }, + { "施舍", "施捨" }, + { "施药", "施藥" }, + { "旁征博引", "旁徵博引" }, + { "旁注", "旁註" }, + { "旅游", "旅遊" }, + { "旋回", "旋迴" }, + { "旋干转坤", "旋乾轉坤" }, + { "旋绕着", "旋繞著" }, + { "族里", "族裡" }, + { "旗杆", "旗杆" }, + { "无", "無" }, + { "无余", "無餘" }, + { "无征不信", "無徵不信" }, + { "无梁楼盖", "無樑樓蓋" }, + { "无法克制", "無法剋制" }, + { "无药可救", "無藥可救" }, + { "日占", "日佔" }, + { "日历", "日曆" }, + { "日子里", "日子裡" }, + { "日心历表", "日心曆表" }, + { "日志", "日誌" }, + { "日晒", "日晒" }, + { "旧", "舊" }, + { "旧历", "舊曆" }, + { "旧游", "舊遊" }, + { "旧药", "舊藥" }, + { "旧表", "舊錶" }, + { "旧钟", "舊鐘" }, + { "旧钟表", "舊鐘錶" }, + { "旱干", "旱乾" }, + { "时", "時" }, + { "时钟", "時鐘" }, + { "时间里", "時間裡" }, + { "旷", "曠" }, + { "昆仑", "崑崙" }, + { "昆仑山", "昆崙山" }, + { "昆剧", "崑劇" }, + { "昆山", "崑山" }, + { "昆曲", "崑曲" }, + { "昆腔", "崑腔" }, + { "昆苏", "崑蘇" }, + { "昆调", "崑調" }, + { "明征", "明徵" }, + { "明目张胆", "明目張胆" }, + { "明窗净几", "明窗淨几" }, + { "明范", "明範" }, + { "明里", "明裡" }, + { "易克制", "易剋制" }, + { "昙", "曇" }, + { "星历", "星曆" }, + { "星辰表", "星辰錶" }, + { "春假里", "春假裡" }, + { "春天里", "春天裡" }, + { "春日里", "春日裡" }, + { "春游", "春遊" }, + { "春药", "春藥" }, + { "春香斗学", "春香鬥學" }, + { "昼", "晝" }, + { "显", "顯" }, + { "显示表", "顯示錶" }, + { "显示钟", "顯示鐘" }, + { "晃荡", "晃蕩" }, + { "晋", "晉" }, + { "晋升", "晉陞" }, + { "晒", "曬" }, + { "晒伤", "晒傷" }, + { "晒图", "晒圖" }, + { "晒干", "晒乾" }, + { "晒成", "晒成" }, + { "晒晒", "晒晒" }, + { "晒烟", "晒煙" }, + { "晒种", "晒種" }, + { "晒衣", "晒衣" }, + { "晒谷", "曬穀" }, + { "晒黑", "晒黑" }, + { "晓", "曉" }, + { "晔", "曄" }, + { "晕", "暈" }, + { "晕船药", "暈船藥" }, + { "晕车药", "暈車藥" }, + { "晖", "暉" }, + { "晚钟", "晚鐘" }, + { "晞发", "晞髮" }, + { "晨钟", "晨鐘" }, + { "普冬冬", "普鼕鼕" }, + { "景致", "景緻" }, + { "晾干", "晾乾" }, + { "暂", "暫" }, + { "暑假里", "暑假裡" }, + { "暗地里", "暗地裡" }, + { "暗斗", "暗鬥" }, + { "暗沟里", "暗溝裡" }, + { "暗里", "暗裡" }, + { "暧", "曖" }, + { "暴敛横征", "暴斂橫徵" }, + { "暴晒", "暴晒" }, + { "曝晒", "曝晒" }, + { "曰云", "曰云" }, + { "曲尘", "麴塵" }, + { "曲生", "麴生" }, + { "曲秀才", "麴秀才" }, + { "曲菌", "麴菌" }, + { "曲蘖", "麴櫱" }, + { "曲车", "麴車" }, + { "曲道士", "麴道士" }, + { "曲钱", "麴錢" }, + { "曲院", "麴院" }, + { "曲霉", "麴黴" }, + { "更仆难数", "更僕難數" }, + { "更签", "更籤" }, + { "更钟", "更鐘" }, + { "曾朴", "曾樸" }, + { "月历", "月曆" }, + { "月球历表", "月球曆表" }, + { "有事之无范", "有事之無範" }, + { "有仆", "有僕" }, + { "有余", "有餘" }, + { "有准", "有準" }, + { "有发头陀寺", "有髮頭陀寺" }, + { "有只", "有隻" }, + { "有只采", "有只採" }, + { "有够赞", "有夠讚" }, + { "有征", "有徵" }, + { "有恒街", "有恒街" }, + { "有栖川", "有栖川" }, + { "有棱有角", "有稜有角" }, + { "服药", "服藥" }, + { "望后石", "望后石" }, + { "望着表", "望著錶" }, + { "望着钟", "望著鐘" }, + { "望着钟表", "望著鐘錶" }, + { "朝钟", "朝鐘" }, + { "木偶戏扎", "木偶戲紮" }, + { "木制", "木製" }, + { "木杆", "木杆" }, + { "木材干馏", "木材乾餾" }, + { "木梁", "木樑" }, + { "木钟", "木鐘" }, + { "未干", "未乾" }, + { "末药", "末藥" }, + { "本征", "本徵" }, + { "术", "術" }, + { "术赤", "朮赤" }, + { "朱仑街", "朱崙街" }, + { "朱唇皓齿", "硃唇皓齒" }, + { "朱庆余", "朱慶餘" }, + { "朱批", "硃批" }, + { "朱理安历", "朱理安曆" }, + { "朱砂", "硃砂" }, + { "朱笔", "硃筆" }, + { "朱红色", "硃紅色" }, + { "朱色", "硃色" }, + { "朱谕", "硃諭" }, + { "朴修斯", "樸修斯" }, + { "朴厚", "樸厚" }, + { "朴学", "樸學" }, + { "朴实", "樸實" }, + { "朴念仁", "樸念仁" }, + { "朴拙", "樸拙" }, + { "朴樕", "樸樕" }, + { "朴父", "樸父" }, + { "朴直", "樸直" }, + { "朴素", "樸素" }, + { "朴讷", "樸訥" }, + { "朴质", "樸質" }, + { "朴鄙", "樸鄙" }, + { "朴重", "樸重" }, + { "朴野", "樸野" }, + { "朴钝", "樸鈍" }, + { "朴陋", "樸陋" }, + { "朴马", "樸馬" }, + { "朴鲁", "樸魯" }, + { "机", "機" }, + { "机械表", "機械錶" }, + { "机械钟", "機械鐘" }, + { "机绣", "機繡" }, + { "杀", "殺" }, + { "杀虫药", "殺蟲藥" }, + { "杂", "雜" }, + { "杂合面儿", "雜合麵兒" }, + { "杂志", "雜誌" }, + { "杂面", "雜麵" }, + { "权", "權" }, + { "杆", "桿" }, + { "杆子", "杆子" }, + { "李连杰", "李連杰" }, + { "李連杰", "李連杰" }, + { "材干", "材幹" }, + { "村子里", "村子裡" }, + { "村庄", "村莊" }, + { "村里", "村裡" }, + { "杜老志道", "杜老誌道" }, + { "杞宋无征", "杞宋無徵" }, + { "束发", "束髮" }, + { "杠杆", "槓桿" }, + { "条", "條" }, + { "条干", "條幹" }, + { "来", "來" }, + { "来复", "來複" }, + { "杨", "楊" }, + { "杨雅筑", "楊雅筑" }, + { "杩", "榪" }, + { "杯干", "杯乾" }, + { "杯面", "杯麵" }, + { "杰", "傑" }, + { "杰伦", "杰倫" }, + { "杰威尔音乐", "杰威爾音樂" }, + { "杰威爾音樂", "杰威爾音樂" }, + { "杰特", "杰特" }, + { "松一口气", "鬆一口氣" }, + { "松了", "鬆了" }, + { "松些", "鬆些" }, + { "松元音", "鬆元音" }, + { "松动", "鬆動" }, + { "松劲", "鬆勁" }, + { "松口", "鬆口" }, + { "松喉", "鬆喉" }, + { "松土", "鬆土" }, + { "松宽", "鬆寬" }, + { "松开", "鬆開" }, + { "松弛", "鬆弛" }, + { "松快", "鬆快" }, + { "松懈", "鬆懈" }, + { "松手", "鬆手" }, + { "松掉", "鬆掉" }, + { "松散", "鬆散" }, + { "松松", "鬆鬆" }, + { "松柔", "鬆柔" }, + { "松气", "鬆氣" }, + { "松浮", "鬆浮" }, + { "松紧", "鬆緊" }, + { "松绑", "鬆綁" }, + { "松缓", "鬆緩" }, + { "松脆", "鬆脆" }, + { "松脱", "鬆脫" }, + { "松蛋", "鬆蛋" }, + { "松起", "鬆起" }, + { "松软", "鬆軟" }, + { "松通", "鬆通" }, + { "松饼", "鬆餅" }, + { "板着脸", "板著臉" }, + { "板荡", "板蕩" }, + { "极", "極" }, + { "构", "構" }, + { "林宏岳", "林宏嶽" }, + { "林钟", "林鐘" }, + { "果子干", "果子乾" }, + { "果干", "果乾" }, + { "枝不得大于干", "枝不得大於榦" }, + { "枝干", "枝幹" }, + { "枞", "樅" }, + { "枢", "樞" }, + { "枣", "棗" }, + { "枣庄", "棗莊" }, + { "枥", "櫪" }, + { "枨", "棖" }, + { "枪", "槍" }, + { "枫", "楓" }, + { "枭", "梟" }, + { "枯干", "枯乾" }, + { "架钟", "架鐘" }, + { "某只", "某隻" }, + { "染发", "染髮" }, + { "染殿后", "染殿后" }, + { "柜", "櫃" }, + { "柜上", "柜上" }, + { "柜台", "櫃檯" }, + { "柜子", "柜子" }, + { "柜柳", "柜柳" }, + { "柠", "檸" }, + { "柱梁", "柱樑" }, + { "柳诒征", "柳詒徵" }, + { "柽", "檉" }, + { "栀", "梔" }, + { "栅", "柵" }, + { "标", "標" }, + { "标准", "標準" }, + { "标志", "標誌" }, + { "标杆", "標杆" }, + { "标注", "標註" }, + { "标签", "標籤" }, + { "标致", "標緻" }, + { "栈", "棧" }, + { "栉", "櫛" }, + { "栉发工", "櫛髮工" }, + { "栊", "櫳" }, + { "栋", "棟" }, + { "栋梁", "棟樑" }, + { "栌", "櫨" }, + { "栎", "櫟" }, + { "栏", "欄" }, + { "栏杆", "欄杆" }, + { "树", "樹" }, + { "树干", "樹榦" }, + { "树梁", "樹樑" }, + { "栖", "棲" }, + { "栖栖皇皇", "栖栖皇皇" }, + { "栗冽", "慄冽" }, + { "栗栗", "慄慄" }, + { "校仇", "校讎" }, + { "校准", "校準" }, + { "样", "樣" }, + { "样范", "樣範" }, + { "格斗", "格鬥" }, + { "格范", "格範" }, + { "格里历", "格里曆" }, + { "格里高利历", "格里高利曆" }, + { "栾", "欒" }, + { "桂圆干", "桂圓乾" }, + { "桅杆", "桅杆" }, + { "桌几", "桌几" }, + { "桌历", "桌曆" }, + { "桑干", "桑乾" }, + { "桠", "椏" }, + { "桡", "橈" }, + { "桢", "楨" }, + { "桢干", "楨幹" }, + { "档", "檔" }, + { "桤", "榿" }, + { "桥", "橋" }, + { "桥梁", "橋樑" }, + { "桦", "樺" }, + { "桧", "檜" }, + { "桨", "槳" }, + { "桩", "樁" }, + { "梁上", "樑上" }, + { "梁柱", "樑柱" }, + { "梦", "夢" }, + { "梦游", "夢遊" }, + { "梦里", "夢裡" }, + { "梨干", "梨乾" }, + { "梯冲", "梯衝" }, + { "械斗", "械鬥" }, + { "械系", "械繫" }, + { "梼", "檮" }, + { "检", "檢" }, + { "棂", "欞" }, + { "棉制", "棉製" }, + { "棒子面", "棒子麵" }, + { "棫朴", "棫樸" }, + { "森林里", "森林裡" }, + { "棱体", "稜體" }, + { "棱台", "稜台" }, + { "棱子", "稜子" }, + { "棱层", "稜層" }, + { "棱柱", "稜柱" }, + { "棱棱", "稜稜" }, + { "棱登", "稜登" }, + { "棱等登", "稜等登" }, + { "棱线", "稜線" }, + { "棱缝", "稜縫" }, + { "棱角", "稜角" }, + { "棱锥", "稜錐" }, + { "棱镜", "稜鏡" }, + { "棺材里", "棺材裡" }, + { "椁", "槨" }, + { "植发", "植髮" }, + { "椟", "櫝" }, + { "椠", "槧" }, + { "椤", "欏" }, + { "椭", "橢" }, + { "椰枣干", "椰棗乾" }, + { "楊雅筑", "楊雅筑" }, + { "楚庄王", "楚莊王" }, + { "楚庄绝缨", "楚莊絕纓" }, + { "楚庄问鼎", "楚莊問鼎" }, + { "楼", "樓" }, + { "榄", "欖" }, + { "榇", "櫬" }, + { "榈", "櫚" }, + { "榉", "櫸" }, + { "榨干", "榨乾" }, + { "槛", "檻" }, + { "槟", "檳" }, + { "槠", "櫧" }, + { "模制", "模製" }, + { "模棱", "模稜" }, + { "模范", "模範" }, + { "横", "橫" }, + { "横冲", "橫衝" }, + { "横征暴敛", "橫徵暴斂" }, + { "横杆", "橫杆" }, + { "横梁", "橫樑" }, + { "樯", "檣" }, + { "樱", "櫻" }, + { "樵采", "樵採" }, + { "橥", "櫫" }, + { "橱", "櫥" }, + { "橹", "櫓" }, + { "橼", "櫞" }, + { "檩", "檁" }, + { "欢", "歡" }, + { "欤", "歟" }, + { "欧", "歐" }, + { "欧游", "歐遊" }, + { "欲令智昏", "慾令智昏" }, + { "欲壑难填", "慾壑難填" }, + { "欲念", "慾念" }, + { "欲望", "慾望" }, + { "欲海", "慾海" }, + { "欲火", "慾火" }, + { "欲障", "慾障" }, + { "欺蒙", "欺矇" }, + { "歌后", "歌后" }, + { "歌钟", "歌鐘" }, + { "止咳药", "止咳藥" }, + { "止痛药", "止痛藥" }, + { "止血药", "止血藥" }, + { "正在叱咤", "正在叱咤" }, + { "武后", "武后" }, + { "武斗", "武鬥" }, + { "歹斗", "歹鬥" }, + { "死里求生", "死裡求生" }, + { "死里逃生", "死裡逃生" }, + { "歼", "殲" }, + { "殁", "歿" }, + { "殇", "殤" }, + { "残", "殘" }, + { "残余", "殘餘" }, + { "残肴", "殘肴" }, + { "殒", "殞" }, + { "殓", "殮" }, + { "殖谷", "殖穀" }, + { "殚", "殫" }, + { "殡", "殯" }, + { "殴", "毆" }, + { "殴斗", "毆鬥" }, + { "殷师牛斗", "殷師牛鬥" }, + { "殿钟自鸣", "殿鐘自鳴" }, + { "毁", "毀" }, + { "毁钟为铎", "毀鐘為鐸" }, + { "毂", "轂" }, + { "母丑", "母醜" }, + { "母后", "母后" }, + { "母范", "母範" }, + { "每只", "每隻" }, + { "毒药", "毒藥" }, + { "毕", "畢" }, + { "毗婆尸佛", "毗婆尸佛" }, + { "毙", "斃" }, + { "毛发", "毛髮" }, + { "毛坏", "毛坏" }, + { "毛姜", "毛薑" }, + { "毡", "氈" }, + { "毫厘", "毫釐" }, + { "毫发", "毫髮" }, + { "毵", "毿" }, + { "氇", "氌" }, + { "气", "氣" }, + { "气郁", "氣鬱" }, + { "氢", "氫" }, + { "氤郁", "氤鬱" }, + { "氩", "氬" }, + { "氲", "氳" }, + { "水准", "水準" }, + { "水无怜奈", "水無怜奈" }, + { "水来汤里去", "水來湯裡去" }, + { "水里", "水裡" }, + { "永历", "永曆" }, + { "永志不忘", "永誌不忘" }, + { "求知欲", "求知慾" }, + { "求签", "求籤" }, + { "汇", "匯" }, + { "汇刊", "彙刊" }, + { "汇报", "彙報" }, + { "汇整", "彙整" }, + { "汇算", "彙算" }, + { "汇纂", "彙纂" }, + { "汇编", "彙編" }, + { "汇辑", "彙輯" }, + { "汇集", "彙集" }, + { "汉", "漢" }, + { "汉弥登钟", "漢彌登鐘" }, + { "池里", "池裡" }, + { "污蔑", "污衊" }, + { "汤", "湯" }, + { "汤下面", "湯下麵" }, + { "汤团", "湯糰" }, + { "汤药", "湯藥" }, + { "汤面", "湯麵" }, + { "汹", "洶" }, + { "汹涌", "洶湧" }, + { "沈吉线", "瀋吉線" }, + { "沈山线", "瀋山線" }, + { "沈州", "瀋州" }, + { "沈水", "瀋水" }, + { "沈河", "瀋河" }, + { "沈海", "瀋海" }, + { "沈淀", "沈澱" }, + { "沈着", "沈著" }, + { "沈郁", "沈鬱" }, + { "沈阳", "瀋陽" }, + { "沉淀", "沉澱" }, + { "沉郁", "沉鬱" }, + { "沙里淘金", "沙裡淘金" }, + { "沟", "溝" }, + { "没", "沒" }, + { "没事干", "沒事幹" }, + { "没准", "沒準" }, + { "没干", "沒幹" }, + { "没干没净", "沒乾沒淨" }, + { "没折至", "沒摺至" }, + { "没梢干", "沒梢幹" }, + { "没药", "沒藥" }, + { "沣", "灃" }, + { "沤", "漚" }, + { "沤郁", "漚鬱" }, + { "沥", "瀝" }, + { "沦", "淪" }, + { "沧", "滄" }, + { "沩", "溈" }, + { "沪", "滬" }, + { "河岳", "河嶽" }, + { "河里", "河裡" }, + { "油斗", "油鬥" }, + { "油面", "油麵" }, + { "治愈", "治癒" }, + { "沿溯", "沿泝" }, + { "泄欲", "洩慾" }, + { "法占", "法佔" }, + { "泛游", "泛遊" }, + { "泞", "濘" }, + { "泡制", "泡製" }, + { "泡面", "泡麵" }, + { "波发藻", "波髮藻" }, + { "波棱菜", "波稜菜" }, + { "注上", "註上" }, + { "注云", "注云" }, + { "注册", "註冊" }, + { "注失", "註失" }, + { "注定", "註定" }, + { "注明", "註明" }, + { "注标", "註標" }, + { "注生娘娘", "註生娘娘" }, + { "注疏", "註疏" }, + { "注脚", "註腳" }, + { "注解", "註解" }, + { "注记", "註記" }, + { "注译", "註譯" }, + { "注销", "註銷" }, + { "泪", "淚" }, + { "泪如泉涌", "淚如泉湧" }, + { "泪干", "淚乾" }, + { "泱郁", "泱鬱" }, + { "泳气钟", "泳氣鐘" }, + { "泶", "澩" }, + { "泷", "瀧" }, + { "泸", "瀘" }, + { "泺", "濼" }, + { "泻", "瀉" }, + { "泻药", "瀉藥" }, + { "泼", "潑" }, + { "泽", "澤" }, + { "泽渗漓而下降", "澤滲灕而下降" }, + { "泾", "涇" }, + { "洁", "潔" }, + { "洄游", "洄遊" }, + { "洒", "灑" }, + { "洒家", "洒家" }, + { "洒扫", "洒掃" }, + { "洒水", "洒水" }, + { "洒洒", "洒洒" }, + { "洒涤", "洒滌" }, + { "洒淅", "洒淅" }, + { "洒濯", "洒濯" }, + { "洒然", "洒然" }, + { "洒脱", "洒脫" }, + { "洗发", "洗髮" }, + { "洗炼", "洗鍊" }, + { "洗练", "洗鍊" }, + { "洛钟东应", "洛鐘東應" }, + { "洪范", "洪範" }, + { "洪适", "洪适" }, + { "洪钟", "洪鐘" }, + { "洼", "窪" }, + { "流征", "流徵" }, + { "流荡", "流蕩" }, + { "浃", "浹" }, + { "浅", "淺" }, + { "浅淀", "淺澱" }, + { "浆", "漿" }, + { "浇", "澆" }, + { "浈", "湞" }, + { "浊", "濁" }, + { "测", "測" }, + { "浍", "澮" }, + { "济", "濟" }, + { "浏", "瀏" }, + { "浑", "渾" }, + { "浑个", "渾箇" }, + { "浑朴", "渾樸" }, + { "浒", "滸" }, + { "浓", "濃" }, + { "浓发", "濃髮" }, + { "浔", "潯" }, + { "浩浩荡荡", "浩浩蕩蕩" }, + { "浩荡", "浩蕩" }, + { "浪游", "浪遊" }, + { "浪琴表", "浪琴錶" }, + { "浪荡", "浪蕩" }, + { "浮松", "浮鬆" }, + { "浮荡", "浮蕩" }, + { "海上布雷", "海上佈雷" }, + { "海干", "海乾" }, + { "海湾布雷", "海灣佈雷" }, + { "涂", "塗" }, + { "涂善妮", "涂善妮" }, + { "涂坤", "涂坤" }, + { "涂壮勋", "涂壯勳" }, + { "涂壯勳", "涂壯勳" }, + { "涂天相", "涂天相" }, + { "涂姓", "涂姓" }, + { "涂序瑄", "涂序瑄" }, + { "涂敏恆", "涂敏恆" }, + { "涂敏恒", "涂敏恆" }, + { "涂泽民", "涂澤民" }, + { "涂澤民", "涂澤民" }, + { "涂着", "塗著" }, + { "涂绍煃", "涂紹煃" }, + { "涂羽卿", "涂羽卿" }, + { "涂药", "塗藥" }, + { "涂謹申", "涂謹申" }, + { "涂谨申", "涂謹申" }, + { "涂逢年", "涂逢年" }, + { "涂醒哲", "涂醒哲" }, + { "涂長望", "涂長望" }, + { "涂长望", "涂長望" }, + { "涂鴻欽", "涂鴻欽" }, + { "涂鸿钦", "涂鴻欽" }, + { "消炎药", "消炎藥" }, + { "消肿药", "消腫藥" }, + { "涌上", "湧上" }, + { "涌入", "湧入" }, + { "涌出", "湧出" }, + { "涌向", "湧向" }, + { "涌来", "湧來" }, + { "涌泉", "湧泉" }, + { "涌现", "湧現" }, + { "涌起", "湧起" }, + { "涌进", "湧進" }, + { "涛", "濤" }, + { "涝", "澇" }, + { "涞", "淶" }, + { "涟", "漣" }, + { "涠", "潿" }, + { "涡", "渦" }, + { "涣", "渙" }, + { "涤", "滌" }, + { "润", "潤" }, + { "涧", "澗" }, + { "涨", "漲" }, + { "涩", "澀" }, + { "液晶表", "液晶錶" }, + { "涳蒙", "涳濛" }, + { "涸干", "涸乾" }, + { "淀乃不耕之地", "澱乃不耕之地" }, + { "淀北片", "澱北片" }, + { "淀山", "澱山" }, + { "淀淀", "澱澱" }, + { "淀积", "澱積" }, + { "淀粉", "澱粉" }, + { "淀解物", "澱解物" }, + { "淀谓之滓", "澱謂之滓" }, + { "淋余土", "淋餘土" }, + { "淑范", "淑範" }, + { "淡朱", "淡硃" }, + { "淡蒙蒙", "淡濛濛" }, + { "淫欲", "淫慾" }, + { "淫荡", "淫蕩" }, + { "淬炼", "淬鍊" }, + { "深山何处钟", "深山何處鐘" }, + { "深渊里", "深淵裡" }, + { "淳于", "淳于" }, + { "淳朴", "淳樸" }, + { "清汤挂面", "清湯掛麵" }, + { "渊", "淵" }, + { "渊淳岳峙", "淵淳嶽峙" }, + { "渌", "淥" }, + { "渍", "漬" }, + { "渎", "瀆" }, + { "渐", "漸" }, + { "渑", "澠" }, + { "渔", "漁" }, + { "渖", "瀋" }, + { "渗", "滲" }, + { "渠冲", "渠衝" }, + { "温", "溫" }, + { "港制", "港製" }, + { "游丝", "遊絲" }, + { "游乐", "遊樂" }, + { "游了", "遊了" }, + { "游人", "遊人" }, + { "游仙", "遊仙" }, + { "游伴", "遊伴" }, + { "游侠", "遊俠" }, + { "游兴", "遊興" }, + { "游冶", "遊冶" }, + { "游刃有余", "遊刃有餘" }, + { "游动", "遊動" }, + { "游历", "遊歷" }, + { "游园", "遊園" }, + { "游子", "遊子" }, + { "游学", "遊學" }, + { "游客", "遊客" }, + { "游宦", "遊宦" }, + { "游山玩水", "遊山玩水" }, + { "游必有方", "遊必有方" }, + { "游憩", "遊憩" }, + { "游戏", "遊戲" }, + { "游手好闲", "遊手好閒" }, + { "游方", "遊方" }, + { "游星", "遊星" }, + { "游标卡尺", "遊標卡尺" }, + { "游民", "遊民" }, + { "游河", "遊河" }, + { "游猎", "遊獵" }, + { "游玩", "遊玩" }, + { "游目骋怀", "遊目騁懷" }, + { "游离", "遊離" }, + { "游程", "遊程" }, + { "游船", "遊船" }, + { "游艇", "遊艇" }, + { "游艺", "遊藝" }, + { "游荡", "遊盪" }, + { "游荡不归", "遊蕩不歸" }, + { "游行", "遊行" }, + { "游街", "遊街" }, + { "游览", "遊覽" }, + { "游记", "遊記" }, + { "游说", "遊說" }, + { "游资", "遊資" }, + { "游走", "遊走" }, + { "游踪", "遊蹤" }, + { "游逛", "遊逛" }, + { "游错", "遊錯" }, + { "游骑兵", "遊騎兵" }, + { "游魂", "遊魂" }, + { "湖里", "湖裡" }, + { "湘累", "湘纍" }, + { "湘绣", "湘繡" }, + { "湟潦生苹", "湟潦生苹" }, + { "湮郁", "湮鬱" }, + { "湾", "灣" }, + { "湿", "濕" }, + { "溃", "潰" }, + { "溅", "濺" }, + { "溆", "漵" }, + { "溟蒙", "溟濛" }, + { "溲面", "溲麵" }, + { "滃郁", "滃鬱" }, + { "滑借", "滑藉" }, + { "滗", "潷" }, + { "滚", "滾" }, + { "滞", "滯" }, + { "滠", "灄" }, + { "满", "滿" }, + { "满头洋发", "滿頭洋髮" }, + { "满拼自尽", "滿拚自盡" }, + { "滢", "瀅" }, + { "滤", "濾" }, + { "滥", "濫" }, + { "滦", "灤" }, + { "滨", "濱" }, + { "滩", "灘" }, + { "滩涂", "灘涂" }, + { "漂荡", "漂蕩" }, + { "漓水", "灕水" }, + { "漓江", "灕江" }, + { "漓湘", "灕湘" }, + { "漓然", "灕然" }, + { "漕挽", "漕輓" }, + { "漤", "灠" }, + { "漫游", "漫遊" }, + { "潆", "瀠" }, + { "潇", "瀟" }, + { "潇洒", "瀟洒" }, + { "潋", "瀲" }, + { "潍", "濰" }, + { "潜", "潛" }, + { "潜意识里", "潛意識裡" }, + { "潜水表", "潛水錶" }, + { "潜水钟", "潛水鐘" }, + { "潭里", "潭裡" }, + { "潮涌", "潮湧" }, + { "潴", "瀦" }, + { "澒蒙", "澒濛" }, + { "澜", "瀾" }, + { "澹台", "澹臺" }, + { "澹荡", "澹蕩" }, + { "激荡", "激蕩" }, + { "濑", "瀨" }, + { "濒", "瀕" }, + { "灌药", "灌藥" }, + { "灏", "灝" }, + { "火并", "火併" }, + { "火拼", "火拚" }, + { "火签", "火籤" }, + { "火箭布雷", "火箭佈雷" }, + { "火药", "火藥" }, + { "灭", "滅" }, + { "灯", "燈" }, + { "灰蒙", "灰濛" }, + { "灰蒙蒙", "灰濛濛" }, + { "灵", "靈" }, + { "灵药", "靈藥" }, + { "灾", "災" }, + { "灿", "燦" }, + { "炀", "煬" }, + { "炆面", "炆麵" }, + { "炉", "爐" }, + { "炒面", "炒麵" }, + { "炖", "燉" }, + { "炖药", "燉藥" }, + { "炜", "煒" }, + { "炝", "熗" }, + { "炮制", "炮製" }, + { "炸药", "炸藥" }, + { "炸酱面", "炸醬麵" }, + { "点", "點" }, + { "点半钟", "點半鐘" }, + { "点多钟", "點多鐘" }, + { "点里", "點裡" }, + { "点钟", "點鐘" }, + { "炼", "煉" }, + { "炼冶", "鍊冶" }, + { "炼制", "煉製" }, + { "炼句", "鍊句" }, + { "炼字", "鍊字" }, + { "炼师", "鍊師" }, + { "炼度", "鍊度" }, + { "炼形", "鍊形" }, + { "炼气", "鍊氣" }, + { "炼汞", "鍊汞" }, + { "炼石", "鍊石" }, + { "炼药", "煉藥" }, + { "炼贫", "鍊貧" }, + { "炼金术", "鍊金術" }, + { "炼钢", "鍊鋼" }, + { "炽", "熾" }, + { "烁", "爍" }, + { "烂", "爛" }, + { "烃", "烴" }, + { "烘制", "烘製" }, + { "烘干", "烘乾" }, + { "烛", "燭" }, + { "烟", "煙" }, + { "烟卷", "煙捲" }, + { "烤干", "烤乾" }, + { "烤晒", "烤晒" }, + { "烦", "煩" }, + { "烧", "燒" }, + { "烧干", "燒乾" }, + { "烨", "燁" }, + { "烩", "燴" }, + { "烫", "燙" }, + { "烫一个发", "燙一個髮" }, + { "烫一次发", "燙一次髮" }, + { "烫个发", "燙個髮" }, + { "烫发", "燙髮" }, + { "烫完发", "燙完髮" }, + { "烫次发", "燙次髮" }, + { "烫面", "燙麵" }, + { "烬", "燼" }, + { "烬余", "燼餘" }, + { "热", "熱" }, + { "焕", "煥" }, + { "焖", "燜" }, + { "焘", "燾" }, + { "焙干", "焙乾" }, + { "無言不仇", "無言不讎" }, + { "煎药", "煎藥" }, + { "煎面", "煎麵" }, + { "照入签", "照入籤" }, + { "照准", "照準" }, + { "照占", "照佔" }, + { "煨干", "煨乾" }, + { "煮面", "煮麵" }, + { "熊杰", "熊杰" }, + { "熬药", "熬藥" }, + { "燎发", "燎髮" }, + { "燕几", "燕几" }, + { "燕游", "燕遊" }, + { "爰定祥历", "爰定祥厤" }, + { "爱", "愛" }, + { "爱困", "愛睏" }, + { "爷", "爺" }, + { "爽荡", "爽蕩" }, + { "片言只语", "片言隻語" }, + { "牍", "牘" }, + { "牙签", "牙籤" }, + { "牛只", "牛隻" }, + { "牛肉面", "牛肉麵" }, + { "牦", "氂" }, + { "物欲", "物慾" }, + { "牵", "牽" }, + { "牵一发", "牽一髮" }, + { "牵系", "牽繫" }, + { "特别致", "特别致" }, + { "特制", "特製" }, + { "特征", "特徵" }, + { "特效药", "特效藥" }, + { "牺", "犧" }, + { "犊", "犢" }, + { "状", "狀" }, + { "犷", "獷" }, + { "犹", "猶" }, + { "犹如表", "猶如錶" }, + { "犹如钟", "猶如鐘" }, + { "狂占", "狂佔" }, + { "狂并潮", "狂併潮" }, + { "狄志杰", "狄志杰" }, + { "狈", "狽" }, + { "狐借虎威", "狐藉虎威" }, + { "狞", "獰" }, + { "独", "獨" }, + { "独占", "獨佔" }, + { "独辟蹊径", "獨闢蹊徑" }, + { "狭", "狹" }, + { "狮", "獅" }, + { "狯", "獪" }, + { "狰", "猙" }, + { "狱", "獄" }, + { "狱里", "獄裡" }, + { "狲", "猻" }, + { "猃", "獫" }, + { "猎", "獵" }, + { "猕", "獼" }, + { "猛冲", "猛衝" }, + { "猜三划五", "猜三划五" }, + { "猡", "玀" }, + { "猪", "豬" }, + { "猫", "貓" }, + { "猬", "蝟" }, + { "献", "獻" }, + { "献丑", "獻醜" }, + { "獭", "獺" }, + { "玉历", "玉曆" }, + { "王余鱼", "王餘魚" }, + { "王侯后", "王侯后" }, + { "王后", "王后" }, + { "王庄", "王莊" }, + { "玑", "璣" }, + { "玛", "瑪" }, + { "玮", "瑋" }, + { "环", "環" }, + { "环游", "環遊" }, + { "现", "現" }, + { "玺", "璽" }, + { "珍肴异馔", "珍肴異饌" }, + { "珐", "琺" }, + { "珑", "瓏" }, + { "班里", "班裡" }, + { "珲", "琿" }, + { "球杆", "球杆" }, + { "理一个发", "理一個髮" }, + { "理一次发", "理一次髮" }, + { "理个发", "理個髮" }, + { "理发", "理髮" }, + { "理完发", "理完髮" }, + { "理次发", "理次髮" }, + { "琏", "璉" }, + { "琐", "瑣" }, + { "琴钟", "琴鐘" }, + { "琼", "瓊" }, + { "瑞征", "瑞徵" }, + { "瑶", "瑤" }, + { "瑶签", "瑤籤" }, + { "瑷", "璦" }, + { "璎", "瓔" }, + { "瓒", "瓚" }, + { "瓮安", "甕安" }, + { "瓯", "甌" }, + { "瓷制", "瓷製" }, + { "甄后", "甄后" }, + { "甚么", "甚麼" }, + { "甜水面", "甜水麵" }, + { "甜面酱", "甜麵醬" }, + { "生力面", "生力麵" }, + { "生发", "生髮" }, + { "生姜", "生薑" }, + { "生物钟", "生物鐘" }, + { "生锈", "生鏽" }, + { "用药", "用藥" }, + { "甩发", "甩髮" }, + { "田庄", "田莊" }, + { "田谷", "田穀" }, + { "田里", "田裡" }, + { "由表及里", "由表及裡" }, + { "甲后路", "甲后路" }, + { "电", "電" }, + { "电冲", "電衝" }, + { "电子表", "電子錶" }, + { "电子钟", "電子鐘" }, + { "电杆", "電杆" }, + { "电波钟", "電波鐘" }, + { "电线杆", "電線杆" }, + { "电表", "電錶" }, + { "电钟", "電鐘" }, + { "男仆", "男僕" }, + { "男用表", "男用錶" }, + { "画", "畫" }, + { "画着", "畫著" }, + { "畅", "暢" }, + { "畅游", "暢遊" }, + { "留发", "留髮" }, + { "畴", "疇" }, + { "疏松", "疏鬆" }, + { "疑凶", "疑兇" }, + { "疑系", "疑係" }, + { "疖", "癤" }, + { "疗", "療" }, + { "疟", "瘧" }, + { "疠", "癘" }, + { "疡", "瘍" }, + { "疬", "癧" }, + { "疮", "瘡" }, + { "疯", "瘋" }, + { "疱", "皰" }, + { "疲困", "疲睏" }, + { "疴", "痾" }, + { "病余", "病餘" }, + { "病征", "病徵" }, + { "病愈", "病癒" }, + { "症候", "癥候" }, + { "症状", "癥狀" }, + { "症结", "癥結" }, + { "痈", "癰" }, + { "痉", "痙" }, + { "痊愈", "痊癒" }, + { "痒", "癢" }, + { "痒疹", "痒疹" }, + { "痒痒", "痒痒" }, + { "痕迹", "痕迹" }, + { "痨", "癆" }, + { "痪", "瘓" }, + { "痫", "癇" }, + { "瘅", "癉" }, + { "瘗", "瘞" }, + { "瘘", "瘺" }, + { "瘪", "癟" }, + { "瘫", "癱" }, + { "瘾", "癮" }, + { "瘿", "癭" }, + { "癞", "癩" }, + { "癣", "癬" }, + { "癫", "癲" }, + { "白兔擣药", "白兔擣藥" }, + { "白净面皮", "白淨面皮" }, + { "白发", "白髮" }, + { "白干", "白乾" }, + { "白术", "白朮" }, + { "白朴", "白樸" }, + { "白粉面", "白粉麵" }, + { "白胡", "白鬍" }, + { "白里透红", "白裡透紅" }, + { "白霉", "白黴" }, + { "百余", "百餘" }, + { "百只", "百隻" }, + { "百扎", "百紮" }, + { "百拙千丑", "百拙千醜" }, + { "百炼", "百鍊" }, + { "百科里", "百科裡" }, + { "百花历", "百花曆" }, + { "百药之长", "百藥之長" }, + { "百谷", "百穀" }, + { "的克制", "的剋制" }, + { "的钟", "的鐘" }, + { "的钟表", "的鐘錶" }, + { "的长发", "的長髮" }, + { "皆准", "皆準" }, + { "皆可作淀", "皆可作澱" }, + { "皇历", "皇曆" }, + { "皇后", "皇后" }, + { "皇庄", "皇莊" }, + { "皇极历", "皇極曆" }, + { "皑", "皚" }, + { "皓发", "皓髮" }, + { "皮制", "皮製" }, + { "皮松", "皮鬆" }, + { "皮里春秋", "皮裡春秋" }, + { "皮里阳秋", "皮裡陽秋" }, + { "皱", "皺" }, + { "皱别", "皺彆" }, + { "皱折", "皺摺" }, + { "皲", "皸" }, + { "盆吊", "盆弔" }, + { "盈余", "盈餘" }, + { "盏", "盞" }, + { "盐", "鹽" }, + { "盐余", "鹽餘" }, + { "盐卤", "鹽滷" }, + { "盐打怎么咸", "鹽打怎麼鹹" }, + { "监", "監" }, + { "监制", "監製" }, + { "盒里", "盒裡" }, + { "盖", "蓋" }, + { "盗", "盜" }, + { "盗采", "盜採" }, + { "盗钟", "盜鐘" }, + { "盘", "盤" }, + { "盘回", "盤迴" }, + { "盘里", "盤裡" }, + { "盛赞", "盛讚" }, + { "盲干", "盲幹" }, + { "直冲", "直衝" }, + { "直接参与", "直接參与" }, + { "相克", "相剋" }, + { "相冲", "相衝" }, + { "相并", "相併" }, + { "相斗", "相鬥" }, + { "看下表", "看下錶" }, + { "看下钟", "看下鐘" }, + { "看准", "看準" }, + { "看着表", "看著錶" }, + { "看着钟", "看著鐘" }, + { "看着钟表", "看著鐘錶" }, + { "看表", "看錶" }, + { "看钟", "看鐘" }, + { "真个", "真箇" }, + { "真凶", "真兇" }, + { "眦", "眥" }, + { "眼帘", "眼帘" }, + { "眼干", "眼乾" }, + { "眼眶里", "眼眶裡" }, + { "眼睛里", "眼睛裡" }, + { "眼药", "眼藥" }, + { "眼里", "眼裡" }, + { "着书立说", "著書立說" }, + { "着儿", "著兒" }, + { "着克制", "著剋制" }, + { "着录", "著錄" }, + { "着色软体", "著色軟體" }, + { "着重指出", "著重指出" }, + { "睁", "睜" }, + { "睐", "睞" }, + { "睑", "瞼" }, + { "睡游病", "睡遊病" }, + { "睡着了", "睡著了" }, + { "瞄准", "瞄準" }, + { "瞅下表", "瞅下錶" }, + { "瞅下钟", "瞅下鐘" }, + { "瞒", "瞞" }, + { "瞧着表", "瞧著錶" }, + { "瞧着钟", "瞧著鐘" }, + { "瞧着钟表", "瞧著鐘錶" }, + { "瞩", "矚" }, + { "瞩托", "矚託" }, + { "瞳蒙", "瞳矇" }, + { "矜庄", "矜莊" }, + { "矫", "矯" }, + { "短几", "短几" }, + { "短发", "短髮" }, + { "矮几", "矮几" }, + { "石几", "石几" }, + { "石梁", "石樑" }, + { "石英表", "石英錶" }, + { "石英钟", "石英鐘" }, + { "石莼", "石蓴" }, + { "石钟乳", "石鐘乳" }, + { "矶", "磯" }, + { "矾", "礬" }, + { "矿", "礦" }, + { "砀", "碭" }, + { "码", "碼" }, + { "码表", "碼錶" }, + { "研制", "研製" }, + { "砖", "磚" }, + { "砗", "硨" }, + { "砚", "硯" }, + { "砰当", "砰噹" }, + { "砺", "礪" }, + { "砻", "礱" }, + { "砻谷机", "礱穀機" }, + { "砾", "礫" }, + { "础", "礎" }, + { "硕", "碩" }, + { "硖", "硤" }, + { "硗", "磽" }, + { "硗确", "磽确" }, + { "硬干", "硬幹" }, + { "确", "確" }, + { "确瘠", "确瘠" }, + { "碍", "礙" }, + { "碑志", "碑誌" }, + { "碛", "磧" }, + { "碜", "磣" }, + { "碰钟", "碰鐘" }, + { "碱", "鹼" }, + { "磁制", "磁製" }, + { "磨制", "磨製" }, + { "磨炼", "磨鍊" }, + { "磬钟", "磬鐘" }, + { "示范", "示範" }, + { "礼", "禮" }, + { "礼赞", "禮讚" }, + { "社里", "社裡" }, + { "祝发", "祝髮" }, + { "祝赞", "祝讚" }, + { "神游", "神遊" }, + { "神雕", "神鵰" }, + { "祢", "禰" }, + { "票庄", "票莊" }, + { "祭吊", "祭弔" }, + { "祯", "禎" }, + { "祷", "禱" }, + { "祸", "禍" }, + { "禀", "稟" }, + { "禁欲", "禁慾" }, + { "禁药", "禁藥" }, + { "禄", "祿" }, + { "禅", "禪" }, + { "离", "離" }, + { "禾谷", "禾穀" }, + { "秀发", "秀髮" }, + { "私下里", "私下裡" }, + { "私斗", "私鬥" }, + { "私欲", "私慾" }, + { "秃", "禿" }, + { "秃发", "禿髮" }, + { "秃妃之发", "禿妃之髮" }, + { "秆", "稈" }, + { "秋假里", "秋假裡" }, + { "秋千", "鞦韆" }, + { "秋发", "秋髮" }, + { "秋天里", "秋天裡" }, + { "秋日里", "秋日裡" }, + { "秋游", "秋遊" }, + { "秋阴入井干", "秋陰入井幹" }, + { "种", "種" }, + { "种师中", "种師中" }, + { "种师道", "种師道" }, + { "种放", "种放" }, + { "种谷", "種穀" }, + { "科范", "科範" }, + { "秒表", "秒錶" }, + { "秒钟", "秒鐘" }, + { "秦庄襄王", "秦莊襄王" }, + { "积", "積" }, + { "积极参与", "積极參与" }, + { "积极参加", "積极參加" }, + { "积淀", "積澱" }, + { "积谷", "積穀" }, + { "积谷防饥", "積穀防饑" }, + { "积郁", "積鬱" }, + { "称", "稱" }, + { "称赞", "稱讚" }, + { "秽", "穢" }, + { "稀松", "稀鬆" }, + { "稆", "穭" }, + { "税", "稅" }, + { "稣", "穌" }, + { "稳", "穩" }, + { "稳占", "穩佔" }, + { "稳扎", "穩紮" }, + { "稻谷", "稻穀" }, + { "稽征", "稽徵" }, + { "穆罕默德历", "穆罕默德曆" }, + { "穑", "穡" }, + { "穗帏飘井干", "繐幃飄井幹" }, + { "穷", "窮" }, + { "穷发", "窮髮" }, + { "穷追不舍", "窮追不捨" }, + { "空中布雷", "空中佈雷" }, + { "空余", "空餘" }, + { "空投布雷", "空投佈雷" }, + { "空荡", "空蕩" }, + { "空荡荡", "空蕩蕩" }, + { "空蒙", "空濛" }, + { "空钟", "空鐘" }, + { "窃", "竊" }, + { "窃钟掩耳", "竊鐘掩耳" }, + { "窍", "竅" }, + { "窑", "窯" }, + { "窒欲", "窒慾" }, + { "窗台", "窗檯" }, + { "窗帘", "窗帘" }, + { "窗明几亮", "窗明几亮" }, + { "窗明几净", "窗明几淨" }, + { "窜", "竄" }, + { "窝", "窩" }, + { "窝里", "窩裡" }, + { "窥", "窺" }, + { "窦", "竇" }, + { "窭", "窶" }, + { "立后综", "立后綜" }, + { "立范", "立範" }, + { "竖", "豎" }, + { "竖着", "豎著" }, + { "站干岸儿", "站乾岸兒" }, + { "竞", "競" }, + { "竞斗", "競鬥" }, + { "童仆", "童僕" }, + { "端庄", "端莊" }, + { "竹几", "竹几" }, + { "竹制", "竹製" }, + { "竹林之游", "竹林之遊" }, + { "竹签", "竹籤" }, + { "笃", "篤" }, + { "笋", "筍" }, + { "笋干", "筍乾" }, + { "笑里藏刀", "笑裡藏刀" }, + { "笔", "筆" }, + { "笔秃墨干", "筆禿墨乾" }, + { "笕", "筧" }, + { "笺", "箋" }, + { "笼", "籠" }, + { "笾", "籩" }, + { "筑", "築" }, + { "筑前", "筑前" }, + { "筑北", "筑北" }, + { "筑后", "筑後" }, + { "筑州", "筑州" }, + { "筑後", "筑後" }, + { "筑波", "筑波" }, + { "筑紫", "筑紫" }, + { "筑肥", "筑肥" }, + { "筑西", "筑西" }, + { "筑邦", "筑邦" }, + { "筑阳", "筑陽" }, + { "筑陽", "筑陽" }, + { "答复", "答覆" }, + { "筚", "篳" }, + { "筛", "篩" }, + { "筝", "箏" }, + { "筵几", "筵几" }, + { "筹", "籌" }, + { "签", "簽" }, + { "签押", "籤押" }, + { "签条", "籤條" }, + { "签着", "簽著" }, + { "签诗", "籤詩" }, + { "简", "簡" }, + { "简并", "簡併" }, + { "简朴", "簡樸" }, + { "简筑翎", "簡筑翎" }, + { "算准", "算準" }, + { "算历", "算曆" }, + { "算发", "算髮" }, + { "管干", "管幹" }, + { "箦", "簀" }, + { "箧", "篋" }, + { "箨", "籜" }, + { "箩", "籮" }, + { "箪", "簞" }, + { "箫", "簫" }, + { "篑", "簣" }, + { "篓", "簍" }, + { "篮", "籃" }, + { "篱", "籬" }, + { "簖", "籪" }, + { "簡筑翎", "簡筑翎" }, + { "簸荡", "簸蕩" }, + { "籁", "籟" }, + { "米谷", "米穀" }, + { "籴", "糴" }, + { "类", "類" }, + { "籼", "秈" }, + { "粉拳绣腿", "粉拳繡腿" }, + { "粉签子", "粉籤子" }, + { "粗制", "粗製" }, + { "粜", "糶" }, + { "粝", "糲" }, + { "粤", "粵" }, + { "粪", "糞" }, + { "粪秽蔑面", "糞穢衊面" }, + { "粮", "糧" }, + { "精准", "精準" }, + { "精制", "精製" }, + { "精干", "精幹" }, + { "精松", "精鬆" }, + { "精炼", "精鍊" }, + { "精致", "精緻" }, + { "精辟", "精闢" }, + { "糁", "糝" }, + { "糇", "餱" }, + { "糊里糊涂", "糊裡糊塗" }, + { "糕干", "糕乾" }, + { "系上", "繫上" }, + { "系世", "繫世" }, + { "系为", "係為" }, + { "系于", "繫於" }, + { "系于一发", "繫於一髮" }, + { "系列里", "系列裡" }, + { "系到", "繫到" }, + { "系囚", "繫囚" }, + { "系心", "繫心" }, + { "系念", "繫念" }, + { "系怀", "繫懷" }, + { "系恋", "繫戀" }, + { "系数", "係數" }, + { "系着", "系著" }, + { "系紧", "繫緊" }, + { "系累", "繫纍" }, + { "系结", "繫結" }, + { "系绳", "繫繩" }, + { "系辞", "繫辭" }, + { "系里", "系裡" }, + { "系风捕影", "繫風捕影" }, + { "素发", "素髮" }, + { "素朴", "素樸" }, + { "素面", "素麵" }, + { "索面", "索麵" }, + { "紧", "緊" }, + { "紧绷", "緊繃" }, + { "紧绷着", "緊繃著" }, + { "紧绷绷", "緊繃繃" }, + { "紧致", "緊緻" }, + { "紧追不舍", "緊追不捨" }, + { "紫姜", "紫薑" }, + { "累囚", "纍囚" }, + { "累堆", "纍堆" }, + { "累瓦结绳", "纍瓦結繩" }, + { "累绁", "纍紲" }, + { "累臣", "纍臣" }, + { "絷", "縶" }, + { "綑扎", "綑紮" }, + { "經有云", "經有云" }, + { "緝凶", "緝兇" }, + { "繁复", "繁複" }, + { "繁钟", "繁鐘" }, + { "纠", "糾" }, + { "纡", "紆" }, + { "纡余", "紆餘" }, + { "纡回", "紆迴" }, + { "纡郁", "紆鬱" }, + { "红", "紅" }, + { "红发", "紅髮" }, + { "红绳系足", "紅繩繫足" }, + { "红色长发", "紅色長髮" }, + { "红钟", "紅鐘" }, + { "纣", "紂" }, + { "纤", "纖" }, + { "纤夫", "縴夫" }, + { "纤手", "縴手" }, + { "纥", "紇" }, + { "约", "約" }, + { "约占", "約佔" }, + { "级", "級" }, + { "纨", "紈" }, + { "纩", "纊" }, + { "纪", "紀" }, + { "纪历", "紀曆" }, + { "纫", "紉" }, + { "纬", "緯" }, + { "纭", "紜" }, + { "纯", "純" }, + { "纯朴", "純樸" }, + { "纰", "紕" }, + { "纱", "紗" }, + { "纲", "綱" }, + { "纳", "納" }, + { "纳征", "納徵" }, + { "纵", "縱" }, + { "纵欲", "縱慾" }, + { "纶", "綸" }, + { "纷", "紛" }, + { "纸", "紙" }, + { "纸扎", "紙紮" }, + { "纹", "紋" }, + { "纺", "紡" }, + { "纽", "紐" }, + { "纾", "紓" }, + { "线", "線" }, + { "绀", "紺" }, + { "绁", "紲" }, + { "绂", "紱" }, + { "练", "練" }, + { "组", "組" }, + { "组里", "組裡" }, + { "绅", "紳" }, + { "细", "細" }, + { "细不容发", "細不容髮" }, + { "细如发", "細如髮" }, + { "细炼", "細鍊" }, + { "细致", "細緻" }, + { "织", "織" }, + { "终", "終" }, + { "绉", "縐" }, + { "绊", "絆" }, + { "绋", "紼" }, + { "绌", "絀" }, + { "绍", "紹" }, + { "绎", "繹" }, + { "经", "經" }, + { "经有云", "經有云" }, + { "绐", "紿" }, + { "绑", "綁" }, + { "绑扎", "綁紮" }, + { "绒", "絨" }, + { "结", "結" }, + { "结伙", "結夥" }, + { "结伴同游", "結伴同遊" }, + { "结余", "結餘" }, + { "结发", "結髮" }, + { "结彩", "結綵" }, + { "结扎", "結紮" }, + { "绕", "繞" }, + { "绕梁", "繞樑" }, + { "绗", "絎" }, + { "绘", "繪" }, + { "绘制", "繪製" }, + { "给", "給" }, + { "绚", "絢" }, + { "绛", "絳" }, + { "络", "絡" }, + { "络腮胡", "絡腮鬍" }, + { "绝", "絕" }, + { "绞", "絞" }, + { "绞干", "絞乾" }, + { "统", "統" }, + { "绠", "綆" }, + { "绡", "綃" }, + { "绢", "絹" }, + { "绣", "綉" }, + { "绣像", "繡像" }, + { "绣口", "繡口" }, + { "绣得", "繡得" }, + { "绣户", "繡戶" }, + { "绣房", "繡房" }, + { "绣毯", "繡毯" }, + { "绣球", "繡球" }, + { "绣的", "繡的" }, + { "绣花", "繡花" }, + { "绣衣", "繡衣" }, + { "绣起", "繡起" }, + { "绣阁", "繡閣" }, + { "绣鞋", "繡鞋" }, + { "绥", "綏" }, + { "绦", "絛" }, + { "继", "繼" }, + { "绨", "綈" }, + { "绩", "績" }, + { "绪", "緒" }, + { "绪余", "緒餘" }, + { "绫", "綾" }, + { "续", "續" }, + { "绮", "綺" }, + { "绯", "緋" }, + { "绰", "綽" }, + { "绲", "緄" }, + { "绳", "繩" }, + { "维", "維" }, + { "维系", "維繫" }, + { "绵", "綿" }, + { "绶", "綬" }, + { "绷住", "繃住" }, + { "绷子", "繃子" }, + { "绷带", "繃帶" }, + { "绷开", "繃開" }, + { "绷扒吊拷", "繃扒弔拷" }, + { "绷着", "繃著" }, + { "绷紧", "繃緊" }, + { "绷脸", "繃臉" }, + { "绸", "綢" }, + { "绸缎庄", "綢緞莊" }, + { "绺", "綹" }, + { "绻", "綣" }, + { "综", "綜" }, + { "绽", "綻" }, + { "绾", "綰" }, + { "绾发", "綰髮" }, + { "绿", "綠" }, + { "绿发", "綠髮" }, + { "缀", "綴" }, + { "缁", "緇" }, + { "缂", "緙" }, + { "缃", "緗" }, + { "缄", "緘" }, + { "缅", "緬" }, + { "缆", "纜" }, + { "缇", "緹" }, + { "缈", "緲" }, + { "缉", "緝" }, + { "缉凶", "緝兇" }, + { "缋", "繢" }, + { "缌", "緦" }, + { "缍", "綞" }, + { "缎", "緞" }, + { "缏", "緶" }, + { "缑", "緱" }, + { "缒", "縋" }, + { "缓", "緩" }, + { "缓冲", "緩衝" }, + { "缓征", "緩徵" }, + { "缔", "締" }, + { "缕", "縷" }, + { "编", "編" }, + { "编制", "編製" }, + { "编发", "編髮" }, + { "编采", "編採" }, + { "编钟", "編鐘" }, + { "缗", "緡" }, + { "缘", "緣" }, + { "缙", "縉" }, + { "缚", "縛" }, + { "缛", "縟" }, + { "缜", "縝" }, + { "缜致", "縝緻" }, + { "缝", "縫" }, + { "缝制", "縫製" }, + { "缝里", "縫裡" }, + { "缟", "縞" }, + { "缠", "纏" }, + { "缠斗", "纏鬥" }, + { "缡", "縭" }, + { "缢", "縊" }, + { "缣", "縑" }, + { "缤", "繽" }, + { "缥", "縹" }, + { "缦", "縵" }, + { "缧", "縲" }, + { "缨", "纓" }, + { "缩", "縮" }, + { "缩栗", "縮慄" }, + { "缪", "繆" }, + { "缫", "繅" }, + { "缬", "纈" }, + { "缭", "繚" }, + { "缮", "繕" }, + { "缯", "繒" }, + { "缰", "韁" }, + { "缱", "繾" }, + { "缲", "繰" }, + { "缳", "繯" }, + { "缴", "繳" }, + { "缵", "纘" }, + { "罂", "罌" }, + { "网", "網" }, + { "网志", "網誌" }, + { "网游", "網遊" }, + { "网里", "網裡" }, + { "罗", "羅" }, + { "罚", "罰" }, + { "罢", "罷" }, + { "置言成范", "置言成範" }, + { "罴", "羆" }, + { "羁", "羈" }, + { "羁系", "羈繫" }, + { "美丑", "美醜" }, + { "美仑", "美崙" }, + { "美制", "美製" }, + { "美占", "美佔" }, + { "美发", "美髮" }, + { "羟", "羥" }, + { "羡", "羨" }, + { "羡余", "羨餘" }, + { "群丑", "群醜" }, + { "翕辟", "翕闢" }, + { "翘", "翹" }, + { "翱游", "翱遊" }, + { "翻松", "翻鬆" }, + { "翻涌", "翻湧" }, + { "老仆", "老僕" }, + { "老姜", "老薑" }, + { "老干", "老乾" }, + { "老干部", "老幹部" }, + { "老庄", "老莊" }, + { "老板", "老闆" }, + { "老爷钟", "老爺鐘" }, + { "老蒙", "老懞" }, + { "考征", "考徵" }, + { "而克制", "而剋制" }, + { "耍斗", "耍鬥" }, + { "耕佣", "耕傭" }, + { "耕获", "耕穫" }, + { "耧", "耬" }, + { "耳余", "耳餘" }, + { "耸", "聳" }, + { "耻", "恥" }, + { "聂", "聶" }, + { "聋", "聾" }, + { "职", "職" }, + { "聍", "聹" }, + { "联", "聯" }, + { "联系", "聯繫" }, + { "聘雇", "聘僱" }, + { "聩", "聵" }, + { "聪", "聰" }, + { "肃", "肅" }, + { "肉丝面", "肉絲麵" }, + { "肉干", "肉乾" }, + { "肉松", "肉鬆" }, + { "肉欲", "肉慾" }, + { "肉羹面", "肉羹麵" }, + { "肚里", "肚裡" }, + { "肝郁", "肝鬱" }, + { "肠", "腸" }, + { "股栗", "股慄" }, + { "肤", "膚" }, + { "肤发", "膚髮" }, + { "肥筑方言", "肥筑方言" }, + { "肮", "骯" }, + { "肮肮脏脏", "骯骯髒髒" }, + { "肮脏", "骯髒" }, + { "肴", "餚" }, + { "肴馔", "肴饌" }, + { "肾", "腎" }, + { "肿", "腫" }, + { "胀", "脹" }, + { "胁", "脅" }, + { "胃药", "胃藥" }, + { "胃里", "胃裡" }, + { "胆", "膽" }, + { "背地里", "背地裡" }, + { "胎发", "胎髮" }, + { "胜", "勝" }, + { "胜肽", "胜肽" }, + { "胜键", "胜鍵" }, + { "胡云", "胡云" }, + { "胡同", "衚衕" }, + { "胡子", "鬍子" }, + { "胡朴安", "胡樸安" }, + { "胡梢", "鬍梢" }, + { "胡渣", "鬍渣" }, + { "胡里胡涂", "胡裡胡塗" }, + { "胡须", "鬍鬚" }, + { "胡髭", "鬍髭" }, + { "胡髯", "鬍髯" }, + { "胧", "朧" }, + { "胪", "臚" }, + { "胫", "脛" }, + { "胶", "膠" }, + { "胶卷", "膠捲" }, + { "能克制", "能剋制" }, + { "能干", "能幹" }, + { "脉", "脈" }, + { "脉冲", "脈衝" }, + { "脊梁", "脊樑" }, + { "脍", "膾" }, + { "脏", "臟" }, + { "脏东西", "髒東西" }, + { "脏乱", "髒亂" }, + { "脏了", "髒了" }, + { "脏兮兮", "髒兮兮" }, + { "脏发", "髒髮" }, + { "脏字", "髒字" }, + { "脏得", "髒得" }, + { "脏心", "髒心" }, + { "脏水", "髒水" }, + { "脏的", "髒的" }, + { "脏词", "髒詞" }, + { "脏话", "髒話" }, + { "脏钱", "髒錢" }, + { "脐", "臍" }, + { "脑", "腦" }, + { "脑子里", "腦子裡" }, + { "脑干", "腦幹" }, + { "脓", "膿" }, + { "脔", "臠" }, + { "脚", "腳" }, + { "脚注", "腳註" }, + { "脚炼", "腳鍊" }, + { "脱", "脫" }, + { "脱发", "脫髮" }, + { "脱谷机", "脫穀機" }, + { "脶", "腡" }, + { "脸", "臉" }, + { "腊", "臘" }, + { "腊之以为饵", "腊之以為餌" }, + { "腊味", "腊味" }, + { "腊毒", "腊毒" }, + { "腊笔", "腊筆" }, + { "腐余", "腐餘" }, + { "腐干", "腐乾" }, + { "腕表", "腕錶" }, + { "腭", "齶" }, + { "腰里", "腰裡" }, + { "腻", "膩" }, + { "腼", "靦" }, + { "腽", "膃" }, + { "腾", "騰" }, + { "腾冲", "騰衝" }, + { "膏药", "膏藥" }, + { "膑", "臏" }, + { "膨松", "膨鬆" }, + { "臣仆", "臣僕" }, + { "臧谷亡羊", "臧穀亡羊" }, + { "自制", "自製" }, + { "自觉自愿", "自覺自愿" }, + { "致密", "緻密" }, + { "舂谷", "舂穀" }, + { "舆", "輿" }, + { "舌干唇焦", "舌乾唇焦" }, + { "舍不得", "捨不得" }, + { "舍出", "捨出" }, + { "舍去", "捨去" }, + { "舍命", "捨命" }, + { "舍堕", "捨墮" }, + { "舍安就危", "捨安就危" }, + { "舍实", "捨實" }, + { "舍己为人", "捨己為人" }, + { "舍己为公", "捨己為公" }, + { "舍己为国", "捨己為國" }, + { "舍己从人", "捨己從人" }, + { "舍己救人", "捨己救人" }, + { "舍弃", "捨棄" }, + { "舍得", "捨得" }, + { "舍我其谁", "捨我其誰" }, + { "舍本逐末", "捨本逐末" }, + { "舍死忘生", "捨死忘生" }, + { "舍生", "捨生" }, + { "舍短取长", "捨短取長" }, + { "舍身", "捨身" }, + { "舍车保帅", "捨車保帥" }, + { "舍近求远", "捨近求遠" }, + { "舒卷", "舒捲" }, + { "舞后", "舞后" }, + { "舣", "艤" }, + { "航海历", "航海曆" }, + { "舰", "艦" }, + { "舰只", "艦隻" }, + { "舱", "艙" }, + { "船只", "船隻" }, + { "船钟", "船鐘" }, + { "舻", "艫" }, + { "良药", "良藥" }, + { "艰", "艱" }, + { "色欲", "色慾" }, + { "艳", "艷" }, + { "艳后", "艷后" }, + { "艷后", "艷后" }, + { "艸木丰丰", "艸木丰丰" }, + { "艺", "藝" }, + { "节", "節" }, + { "节余", "節餘" }, + { "节欲", "節慾" }, + { "芈", "羋" }, + { "芍药", "芍藥" }, + { "芗", "薌" }, + { "芜", "蕪" }, + { "芦", "蘆" }, + { "花卷", "花捲" }, + { "花哄", "花鬨" }, + { "花庵词选", "花菴詞選" }, + { "花拳绣腿", "花拳繡腿" }, + { "花盆里", "花盆裡" }, + { "花药", "花藥" }, + { "花钟", "花鐘" }, + { "花马吊嘴", "花馬弔嘴" }, + { "苁", "蓯" }, + { "苇", "葦" }, + { "苈", "藶" }, + { "苋", "莧" }, + { "苌", "萇" }, + { "苍", "蒼" }, + { "苍发", "蒼髮" }, + { "苍术", "蒼朮" }, + { "苍郁", "蒼鬱" }, + { "苎", "苧" }, + { "苏", "蘇" }, + { "苏昆", "蘇崑" }, + { "苑里", "苑裡" }, + { "苦干", "苦幹" }, + { "苦斗", "苦鬥" }, + { "苦药", "苦藥" }, + { "苦里", "苦裡" }, + { "苧", "薴" }, + { "英占", "英佔" }, + { "苹", "蘋" }, + { "苹萦", "苹縈" }, + { "茂都淀", "茂都澱" }, + { "范例", "範例" }, + { "范围", "範圍" }, + { "范字", "範字" }, + { "范式", "範式" }, + { "范性形变", "範性形變" }, + { "范数", "範數" }, + { "范文", "範文" }, + { "范本", "範本" }, + { "范畴", "範疇" }, + { "范金", "範金" }, + { "茎", "莖" }, + { "茎干", "莖幹" }, + { "茏", "蘢" }, + { "茑", "蔦" }, + { "茔", "塋" }, + { "茕", "煢" }, + { "茧", "繭" }, + { "茶余", "茶餘" }, + { "茶几", "茶几" }, + { "茶庄", "茶莊" }, + { "茶面", "茶麵" }, + { "荆", "荊" }, + { "草丛里", "草叢裡" }, + { "草广", "草广" }, + { "草荐", "草荐" }, + { "草药", "草藥" }, + { "荐", "薦" }, + { "荐居", "荐居" }, + { "荐臻", "荐臻" }, + { "荐饥", "荐饑" }, + { "荚", "莢" }, + { "荛", "蕘" }, + { "荜", "蓽" }, + { "荞", "蕎" }, + { "荞麦面", "蕎麥麵" }, + { "荟", "薈" }, + { "荠", "薺" }, + { "荡", "盪" }, + { "荡产", "蕩產" }, + { "荡女", "蕩女" }, + { "荡妇", "蕩婦" }, + { "荡寇", "蕩寇" }, + { "荡平", "蕩平" }, + { "荡来荡去", "蕩來蕩去" }, + { "荡气回肠", "蕩氣迴腸" }, + { "荡涤", "蕩滌" }, + { "荡漾", "蕩漾" }, + { "荡然", "蕩然" }, + { "荡舟", "蕩舟" }, + { "荡船", "蕩船" }, + { "荡荡", "蕩蕩" }, + { "荣", "榮" }, + { "荤", "葷" }, + { "荥", "滎" }, + { "荦", "犖" }, + { "荦确", "犖确" }, + { "荧", "熒" }, + { "荧郁", "熒鬱" }, + { "荨", "蕁" }, + { "荩", "藎" }, + { "荪", "蓀" }, + { "荫", "蔭" }, + { "荭", "葒" }, + { "药", "葯" }, + { "药专", "藥專" }, + { "药丸", "藥丸" }, + { "药典", "藥典" }, + { "药到命除", "藥到命除" }, + { "药到病除", "藥到病除" }, + { "药剂", "藥劑" }, + { "药力", "藥力" }, + { "药包", "藥包" }, + { "药医学系", "藥醫學系" }, + { "药单", "藥單" }, + { "药厂", "藥廠" }, + { "药名", "藥名" }, + { "药味", "藥味" }, + { "药品", "藥品" }, + { "药商", "藥商" }, + { "药头", "藥頭" }, + { "药婆", "藥婆" }, + { "药学", "藥學" }, + { "药害", "藥害" }, + { "药局", "藥局" }, + { "药师", "藥師" }, + { "药店", "藥店" }, + { "药引", "藥引" }, + { "药性", "藥性" }, + { "药房", "藥房" }, + { "药效", "藥效" }, + { "药方", "藥方" }, + { "药材", "藥材" }, + { "药检局", "藥檢局" }, + { "药棉", "藥棉" }, + { "药水", "藥水" }, + { "药油", "藥油" }, + { "药液", "藥液" }, + { "药渣", "藥渣" }, + { "药片", "藥片" }, + { "药物", "藥物" }, + { "药王", "藥王" }, + { "药理", "藥理" }, + { "药瓶", "藥瓶" }, + { "药用", "藥用" }, + { "药皂", "藥皂" }, + { "药盒", "藥盒" }, + { "药石", "藥石" }, + { "药科", "藥科" }, + { "药签", "藥籤" }, + { "药箱", "藥箱" }, + { "药粉", "藥粉" }, + { "药糖", "藥糖" }, + { "药线", "藥線" }, + { "药罐", "藥罐" }, + { "药膏", "藥膏" }, + { "药舖", "藥舖" }, + { "药茶", "藥茶" }, + { "药草", "藥草" }, + { "药行", "藥行" }, + { "药贩", "藥販" }, + { "药费", "藥費" }, + { "药酒", "藥酒" }, + { "药量", "藥量" }, + { "药针", "藥針" }, + { "药铺", "藥鋪" }, + { "药面儿", "藥麵兒" }, + { "药饵", "藥餌" }, + { "荷花淀", "荷花澱" }, + { "莅", "蒞" }, + { "莜面", "莜麵" }, + { "莱", "萊" }, + { "莲", "蓮" }, + { "莳", "蒔" }, + { "莴", "萵" }, + { "莶", "薟" }, + { "获", "獲" }, + { "获匪其丑", "獲匪其醜" }, + { "莸", "蕕" }, + { "莹", "瑩" }, + { "莺", "鶯" }, + { "莽荡", "莽蕩" }, + { "菜干", "菜乾" }, + { "菜肴", "菜肴" }, + { "菠棱菜", "菠稜菜" }, + { "菠萝干", "菠蘿乾" }, + { "萝", "蘿" }, + { "萝卜", "蘿蔔" }, + { "萝卜干", "蘿蔔乾" }, + { "萤", "螢" }, + { "营", "營" }, + { "营干", "營幹" }, + { "萦", "縈" }, + { "萦回", "縈迴" }, + { "萧", "蕭" }, + { "萧参", "蕭蔘" }, + { "萨", "薩" }, + { "落发", "落髮" }, + { "落腮胡", "落腮鬍" }, + { "葡占", "葡佔" }, + { "葡萄干", "葡萄乾" }, + { "董氏封发", "董氏封髮" }, + { "葱", "蔥" }, + { "葱郁", "蔥鬱" }, + { "蒇", "蕆" }, + { "蒉", "蕢" }, + { "蒋", "蔣" }, + { "蒌", "蔞" }, + { "蒙事", "矇事" }, + { "蒙头转", "矇頭轉" }, + { "蒙庄", "蒙莊" }, + { "蒙懂", "懞懂" }, + { "蒙昧无知", "矇昧無知" }, + { "蒙松雨", "濛鬆雨" }, + { "蒙汗药", "蒙汗藥" }, + { "蒙汜", "濛汜" }, + { "蒙混", "矇混" }, + { "蒙直", "懞直" }, + { "蒙着", "矇著" }, + { "蒙瞍", "矇瞍" }, + { "蒙聩", "矇聵" }, + { "蒙胧", "朦朧" }, + { "蒙蒙懂懂", "懞懞懂懂" }, + { "蒙蒙细雨", "濛濛細雨" }, + { "蒙雾", "濛霧" }, + { "蒙骗", "矇騙" }, + { "蒙鸿", "濛鴻" }, + { "蒜发", "蒜髮" }, + { "蓄发", "蓄髮" }, + { "蓄胡", "蓄鬍" }, + { "蓄须", "蓄鬚" }, + { "蓊郁", "蓊鬱" }, + { "蓝", "藍" }, + { "蓝淀", "藍澱" }, + { "蓟", "薊" }, + { "蓠", "蘺" }, + { "蓣", "蕷" }, + { "蓥", "鎣" }, + { "蓦", "驀" }, + { "蓬发", "蓬髮" }, + { "蓬松", "蓬鬆" }, + { "蓬蓬松松", "蓬蓬鬆鬆" }, + { "蔂", "虆" }, + { "蔷", "薔" }, + { "蔹", "蘞" }, + { "蔺", "藺" }, + { "蔼", "藹" }, + { "蕲", "蘄" }, + { "蕴", "蘊" }, + { "蕴含着", "蘊含著" }, + { "蕴涵着", "蘊涵著" }, + { "薄干", "薄幹" }, + { "薄幸", "薄倖" }, + { "薙发", "薙髮" }, + { "薝卜", "薝蔔" }, + { "薮", "藪" }, + { "藏历", "藏曆" }, + { "藏蒙歌儿", "藏矇歌兒" }, + { "藓", "蘚" }, + { "藤制", "藤製" }, + { "蘖", "櫱" }, + { "虎斗", "虎鬥" }, + { "虎须", "虎鬚" }, + { "虏", "虜" }, + { "虑", "慮" }, + { "虚", "虛" }, + { "虫", "蟲" }, + { "虫部", "虫部" }, + { "虬", "虯" }, + { "虮", "蟣" }, + { "虮蝨相吊", "蟣蝨相弔" }, + { "虽", "雖" }, + { "虾", "蝦" }, + { "虿", "蠆" }, + { "蚀", "蝕" }, + { "蚁", "蟻" }, + { "蚁后", "蟻后" }, + { "蚂", "螞" }, + { "蚊动牛斗", "蚊動牛鬥" }, + { "蚕", "蠶" }, + { "蚬", "蜆" }, + { "蛇发女妖", "蛇髮女妖" }, + { "蛊", "蠱" }, + { "蛎", "蠣" }, + { "蛏", "蟶" }, + { "蛏干", "蟶乾" }, + { "蛔虫药", "蛔蟲藥" }, + { "蛮", "蠻" }, + { "蛮干", "蠻幹" }, + { "蛰", "蟄" }, + { "蛱", "蛺" }, + { "蛲", "蟯" }, + { "蛳", "螄" }, + { "蛴", "蠐" }, + { "蜂准", "蜂準" }, + { "蜂后", "蜂后" }, + { "蜂涌", "蜂湧" }, + { "蜕", "蛻" }, + { "蜗", "蝸" }, + { "蜜里调油", "蜜裡調油" }, + { "蜡", "蠟" }, + { "蜡月", "蜡月" }, + { "蜡祭", "蜡祭" }, + { "蝇", "蠅" }, + { "蝈", "蟈" }, + { "蝉", "蟬" }, + { "蝎", "蠍" }, + { "蝎蝎螫螫", "蝎蝎螫螫" }, + { "蝎谮", "蝎譖" }, + { "蝼", "螻" }, + { "蝾", "蠑" }, + { "蟻后", "蟻后" }, + { "蠁干", "蠁幹" }, + { "血余", "血餘" }, + { "血拼", "血拚" }, + { "衅", "釁" }, + { "衅钟", "釁鐘" }, + { "行事历", "行事曆" }, + { "行凶", "行兇" }, + { "衔", "銜" }, + { "衣绣昼行", "衣繡晝行" }, + { "补", "補" }, + { "补注", "補註" }, + { "补药", "補藥" }, + { "补血药", "補血藥" }, + { "表停", "錶停" }, + { "表冠", "錶冠" }, + { "表厂", "錶廠" }, + { "表壳", "錶殼" }, + { "表带", "錶帶" }, + { "表店", "錶店" }, + { "表征", "表徵" }, + { "表快", "錶快" }, + { "表慢", "錶慢" }, + { "表板", "錶板" }, + { "表王", "錶王" }, + { "表的历史", "錶的歷史" }, + { "表的嘀嗒", "錶的嘀嗒" }, + { "表盘", "錶盤" }, + { "表蒙子", "錶蒙子" }, + { "表行", "錶行" }, + { "表转", "錶轉" }, + { "表速", "錶速" }, + { "表里", "表裡" }, + { "表针", "錶針" }, + { "表链", "錶鏈" }, + { "衬", "襯" }, + { "衬里", "襯裡" }, + { "衮", "袞" }, + { "袄", "襖" }, + { "袅", "裊" }, + { "袋表", "袋錶" }, + { "袋里", "袋裡" }, + { "袖里", "袖裡" }, + { "袜", "襪" }, + { "被发佯狂", "被髮佯狂" }, + { "被发入山", "被髮入山" }, + { "被发左衽", "被髮左衽" }, + { "被发缨冠", "被髮纓冠" }, + { "被发阳狂", "被髮陽狂" }, + { "被复", "被複" }, + { "被里", "被裡" }, + { "袭", "襲" }, + { "裁制", "裁製" }, + { "裁并", "裁併" }, + { "装", "裝" }, + { "装折", "裝摺" }, + { "裆", "襠" }, + { "裢", "褳" }, + { "裣", "襝" }, + { "裤", "褲" }, + { "褒赞", "褒讚" }, + { "褛", "褸" }, + { "褴", "襤" }, + { "西占", "西佔" }, + { "西历", "西曆" }, + { "西周钟", "西周鐘" }, + { "西岳", "西嶽" }, + { "西晒", "西晒" }, + { "西游", "西遊" }, + { "西药", "西藥" }, + { "要么", "要麼" }, + { "要克制", "要剋制" }, + { "要冲", "要衝" }, + { "要占", "要佔" }, + { "覆盖着", "覆蓋著" }, + { "覆着", "覆著" }, + { "见", "見" }, + { "见棱见角", "見稜見角" }, + { "见素抱朴", "見素抱樸" }, + { "观", "觀" }, + { "观采", "觀採" }, + { "规", "規" }, + { "规范", "規範" }, + { "觅", "覓" }, + { "视", "視" }, + { "觇", "覘" }, + { "览", "覽" }, + { "觉", "覺" }, + { "觊", "覬" }, + { "觋", "覡" }, + { "觌", "覿" }, + { "觎", "覦" }, + { "觏", "覯" }, + { "觐", "覲" }, + { "觑", "覷" }, + { "角落里", "角落裡" }, + { "觚棱", "觚稜" }, + { "觞", "觴" }, + { "解发佯狂", "解髮佯狂" }, + { "解痛药", "解痛藥" }, + { "解药", "解藥" }, + { "解雇", "解僱" }, + { "触", "觸" }, + { "触须", "觸鬚" }, + { "觯", "觶" }, + { "言云", "言云" }, + { "言大而夸", "言大而夸" }, + { "言辩而确", "言辯而确" }, + { "詩云", "詩云" }, + { "誉", "譽" }, + { "誊", "謄" }, + { "語有云", "語有云" }, + { "謷丑", "謷醜" }, + { "警世钟", "警世鐘" }, + { "警报钟", "警報鐘" }, + { "警示钟", "警示鐘" }, + { "警钟", "警鐘" }, + { "计", "計" }, + { "计时表", "計時錶" }, + { "订", "訂" }, + { "订制", "訂製" }, + { "讣", "訃" }, + { "认", "認" }, + { "认准", "認準" }, + { "讥", "譏" }, + { "讦", "訐" }, + { "讧", "訌" }, + { "讨", "討" }, + { "让", "讓" }, + { "讪", "訕" }, + { "讫", "訖" }, + { "训", "訓" }, + { "议", "議" }, + { "讯", "訊" }, + { "记", "記" }, + { "讲", "講" }, + { "讳", "諱" }, + { "讴", "謳" }, + { "讵", "詎" }, + { "讶", "訝" }, + { "讷", "訥" }, + { "许", "許" }, + { "许愿起经", "許愿起經" }, + { "许虬", "許虬" }, + { "讹", "訛" }, + { "论", "論" }, + { "讼", "訟" }, + { "讽", "諷" }, + { "设", "設" }, + { "访", "訪" }, + { "诀", "訣" }, + { "证", "證" }, + { "诂", "詁" }, + { "诃", "訶" }, + { "评", "評" }, + { "评注", "評註" }, + { "诅", "詛" }, + { "识", "識" }, + { "诈", "詐" }, + { "诉", "訴" }, + { "诊", "診" }, + { "诋", "詆" }, + { "诌", "謅" }, + { "词", "詞" }, + { "词余", "詞餘" }, + { "词干", "詞幹" }, + { "词汇", "詞彙" }, + { "诎", "詘" }, + { "诏", "詔" }, + { "译", "譯" }, + { "译注", "譯註" }, + { "诒", "詒" }, + { "诓", "誆" }, + { "诔", "誄" }, + { "诔赞", "誄讚" }, + { "试", "試" }, + { "试制", "試製" }, + { "试药", "試藥" }, + { "诖", "詿" }, + { "诗", "詩" }, + { "诗云", "詩云" }, + { "诗余", "詩餘" }, + { "诗赞", "詩讚" }, + { "诗钟", "詩鐘" }, + { "诘", "詰" }, + { "诙", "詼" }, + { "诚", "誠" }, + { "诚征", "誠徵" }, + { "诚朴", "誠樸" }, + { "诛", "誅" }, + { "诜", "詵" }, + { "话", "話" }, + { "话里有话", "話裡有話" }, + { "诞", "誕" }, + { "诟", "詬" }, + { "诠", "詮" }, + { "诡", "詭" }, + { "询", "詢" }, + { "诣", "詣" }, + { "诤", "諍" }, + { "该", "該" }, + { "该钟", "該鐘" }, + { "详", "詳" }, + { "详征博引", "詳徵博引" }, + { "详注", "詳註" }, + { "诧", "詫" }, + { "诨", "諢" }, + { "诩", "詡" }, + { "诫", "誡" }, + { "诬", "誣" }, + { "诬蔑", "誣衊" }, + { "语", "語" }, + { "语云", "語云" }, + { "语有云", "語有云" }, + { "语汇", "語彙" }, + { "诮", "誚" }, + { "误", "誤" }, + { "诰", "誥" }, + { "诱", "誘" }, + { "诱奸", "誘姦" }, + { "诲", "誨" }, + { "诳", "誑" }, + { "说", "說" }, + { "说着", "說著" }, + { "诵", "誦" }, + { "诶", "誒" }, + { "请", "請" }, + { "请君入瓮", "請君入甕" }, + { "请托", "請託" }, + { "诸", "諸" }, + { "诸余", "諸餘" }, + { "诹", "諏" }, + { "诺", "諾" }, + { "读", "讀" }, + { "诼", "諑" }, + { "诽", "誹" }, + { "课", "課" }, + { "课余", "課餘" }, + { "课征", "課徵" }, + { "诿", "諉" }, + { "谀", "諛" }, + { "谁", "誰" }, + { "谁干的", "誰幹的" }, + { "谂", "諗" }, + { "调", "調" }, + { "调准", "調準" }, + { "调制", "調製" }, + { "调表", "調錶" }, + { "谄", "諂" }, + { "谅", "諒" }, + { "谆", "諄" }, + { "谇", "誶" }, + { "谈", "談" }, + { "谈征", "談徵" }, + { "谊", "誼" }, + { "谋", "謀" }, + { "谋干", "謀幹" }, + { "谌", "諶" }, + { "谍", "諜" }, + { "谎", "謊" }, + { "谏", "諫" }, + { "谐", "諧" }, + { "谑", "謔" }, + { "谒", "謁" }, + { "谓", "謂" }, + { "谔", "諤" }, + { "谕", "諭" }, + { "谖", "諼" }, + { "谗", "讒" }, + { "谘", "諮" }, + { "谙", "諳" }, + { "谚", "諺" }, + { "谛", "諦" }, + { "谜", "謎" }, + { "谝", "諞" }, + { "谟", "謨" }, + { "谠", "讜" }, + { "谡", "謖" }, + { "谢", "謝" }, + { "谢华后", "謝華后" }, + { "谣", "謠" }, + { "谤", "謗" }, + { "谥", "謚" }, + { "谦", "謙" }, + { "谧", "謐" }, + { "谨", "謹" }, + { "谩", "謾" }, + { "谪", "謫" }, + { "谫", "譾" }, + { "谬", "謬" }, + { "谬赞", "謬讚" }, + { "谬采虚声", "謬採虛聲" }, + { "谭", "譚" }, + { "谮", "譖" }, + { "谯", "譙" }, + { "谰", "讕" }, + { "谱", "譜" }, + { "谲", "譎" }, + { "谳", "讞" }, + { "谴", "譴" }, + { "谵", "譫" }, + { "谶", "讖" }, + { "谷人", "穀人" }, + { "谷仓", "穀倉" }, + { "谷保家商", "穀保家商" }, + { "谷圭", "穀圭" }, + { "谷场", "穀場" }, + { "谷壳", "穀殼" }, + { "谷子", "穀子" }, + { "谷日", "穀日" }, + { "谷旦", "穀旦" }, + { "谷梁", "穀梁" }, + { "谷物", "穀物" }, + { "谷皮", "穀皮" }, + { "谷神", "穀神" }, + { "谷米", "穀米" }, + { "谷类", "穀類" }, + { "谷粒", "穀粒" }, + { "谷舱", "穀艙" }, + { "谷苗", "穀苗" }, + { "谷草", "穀草" }, + { "谷谷", "穀穀" }, + { "谷贱伤农", "穀賤傷農" }, + { "谷贵饿农", "穀貴餓農" }, + { "谷道", "穀道" }, + { "谷雨", "穀雨" }, + { "谷食", "穀食" }, + { "豆干", "豆乾" }, + { "象征", "象徵" }, + { "象征着", "象徵著" }, + { "買凶", "買兇" }, + { "賈后", "賈后" }, + { "賢后", "賢后" }, + { "賸余", "賸餘" }, + { "贝", "貝" }, + { "贞", "貞" }, + { "负", "負" }, + { "负债累累", "負債纍纍" }, + { "贡", "貢" }, + { "财", "財" }, + { "责", "責" }, + { "贤", "賢" }, + { "贤后", "賢后" }, + { "败", "敗" }, + { "账", "賬" }, + { "货", "貨" }, + { "质", "質" }, + { "质朴", "質樸" }, + { "贩", "販" }, + { "贪", "貪" }, + { "贪欲", "貪慾" }, + { "贫", "貧" }, + { "贬", "貶" }, + { "购", "購" }, + { "购买欲", "購買慾" }, + { "购并", "購併" }, + { "贮", "貯" }, + { "贯", "貫" }, + { "贰", "貳" }, + { "贱", "賤" }, + { "贲", "賁" }, + { "贳", "貰" }, + { "贴", "貼" }, + { "贵", "貴" }, + { "贵价", "貴价" }, + { "贵干", "貴幹" }, + { "贵征", "貴徵" }, + { "贶", "貺" }, + { "贷", "貸" }, + { "贸", "貿" }, + { "费", "費" }, + { "费占", "費佔" }, + { "贺", "賀" }, + { "贻", "貽" }, + { "贻范", "貽範" }, + { "贼", "賊" }, + { "贽", "贄" }, + { "贾", "賈" }, + { "贾后", "賈后" }, + { "贿", "賄" }, + { "赀", "貲" }, + { "赁", "賃" }, + { "赂", "賂" }, + { "赃", "贓" }, + { "资", "資" }, + { "赅", "賅" }, + { "赆", "贐" }, + { "赇", "賕" }, + { "赈", "賑" }, + { "赈饥", "賑饑" }, + { "赉", "賚" }, + { "赊", "賒" }, + { "赋", "賦" }, + { "赌", "賭" }, + { "赌台", "賭檯" }, + { "赌后", "賭后" }, + { "赌斗", "賭鬥" }, + { "赍", "齎" }, + { "赎", "贖" }, + { "赏", "賞" }, + { "赏赞", "賞讚" }, + { "赐", "賜" }, + { "赓", "賡" }, + { "赔", "賠" }, + { "赕", "賧" }, + { "赖", "賴" }, + { "赘", "贅" }, + { "赙", "賻" }, + { "赚", "賺" }, + { "赛", "賽" }, + { "赜", "賾" }, + { "赝", "贗" }, + { "赞", "贊" }, + { "赞不绝口", "讚不絕口" }, + { "赞乐", "讚樂" }, + { "赞佩", "讚佩" }, + { "赞叹", "讚歎" }, + { "赞叹不已", "讚嘆不已" }, + { "赞呗", "讚唄" }, + { "赞扬", "讚揚" }, + { "赞歌", "讚歌" }, + { "赞美", "讚美" }, + { "赞羡", "讚羨" }, + { "赞誉", "讚譽" }, + { "赞许", "讚許" }, + { "赞词", "讚詞" }, + { "赞赏", "讚賞" }, + { "赞辞", "讚辭" }, + { "赞颂", "讚頌" }, + { "赠", "贈" }, + { "赡", "贍" }, + { "赢", "贏" }, + { "赢余", "贏餘" }, + { "赣", "贛" }, + { "赤术", "赤朮" }, + { "赤绳系足", "赤繩繫足" }, + { "赵", "趙" }, + { "赵威后", "趙威后" }, + { "赵庄", "趙莊" }, + { "赵惠后", "趙惠后" }, + { "赵治勋", "趙治勳" }, + { "赶", "趕" }, + { "赶制", "趕製" }, + { "赶面棍", "趕麵棍" }, + { "起哄", "起鬨" }, + { "起复", "起複" }, + { "超级杯", "超級盃" }, + { "趋", "趨" }, + { "趱", "趲" }, + { "趱干", "趲幹" }, + { "趸", "躉" }, + { "跃", "躍" }, + { "跄", "蹌" }, + { "跌扑", "跌扑" }, + { "跌荡", "跌蕩" }, + { "跞", "躒" }, + { "路签", "路籤" }, + { "跳梁小丑", "跳樑小丑" }, + { "跳荡", "跳蕩" }, + { "跳表", "跳錶" }, + { "践", "踐" }, + { "跷", "蹺" }, + { "跸", "蹕" }, + { "跹", "躚" }, + { "跻", "躋" }, + { "踊", "踴" }, + { "踌", "躊" }, + { "踪", "蹤" }, + { "踬", "躓" }, + { "踯", "躑" }, + { "蹑", "躡" }, + { "蹒", "蹣" }, + { "蹰", "躕" }, + { "蹿", "躥" }, + { "躁郁", "躁鬱" }, + { "躏", "躪" }, + { "躜", "躦" }, + { "躯", "軀" }, + { "躯干", "軀幹" }, + { "车", "車" }, + { "车库里", "車庫裡" }, + { "车站里", "車站裡" }, + { "车里", "車裡" }, + { "轧", "軋" }, + { "轨", "軌" }, + { "轨范", "軌範" }, + { "轩", "軒" }, + { "轩辟", "軒闢" }, + { "轫", "軔" }, + { "转", "轉" }, + { "转台", "轉檯" }, + { "转托", "轉託" }, + { "转斗千里", "轉鬥千里" }, + { "轭", "軛" }, + { "轮", "輪" }, + { "轮回", "輪迴" }, + { "轮奸", "輪姦" }, + { "软", "軟" }, + { "轰", "轟" }, + { "轲", "軻" }, + { "轳", "轤" }, + { "轴", "軸" }, + { "轵", "軹" }, + { "轶", "軼" }, + { "轸", "軫" }, + { "轹", "轢" }, + { "轺", "軺" }, + { "轻", "輕" }, + { "轻松", "輕鬆" }, + { "轻轻松松", "輕輕鬆鬆" }, + { "轼", "軾" }, + { "载", "載" }, + { "轾", "輊" }, + { "轿", "轎" }, + { "辁", "輇" }, + { "辂", "輅" }, + { "较", "較" }, + { "辄", "輒" }, + { "辅", "輔" }, + { "辆", "輛" }, + { "辇", "輦" }, + { "辈", "輩" }, + { "辉", "輝" }, + { "辊", "輥" }, + { "辋", "輞" }, + { "辍", "輟" }, + { "辎", "輜" }, + { "辏", "輳" }, + { "辐", "輻" }, + { "辑", "輯" }, + { "输", "輸" }, + { "辔", "轡" }, + { "辕", "轅" }, + { "辖", "轄" }, + { "辗", "輾" }, + { "辘", "轆" }, + { "辙", "轍" }, + { "辚", "轔" }, + { "辞", "辭" }, + { "辞汇", "辭彙" }, + { "辟为", "闢為" }, + { "辟佛", "闢佛" }, + { "辟作", "闢作" }, + { "辟划", "闢劃" }, + { "辟土", "闢土" }, + { "辟地", "闢地" }, + { "辟室", "闢室" }, + { "辟建", "闢建" }, + { "辟田", "闢田" }, + { "辟筑", "闢築" }, + { "辟谣", "闢謠" }, + { "辟谷", "辟穀" }, + { "辟辟", "闢辟" }, + { "辟邪以律", "闢邪以律" }, + { "辩", "辯" }, + { "辩斗", "辯鬥" }, + { "辫", "辮" }, + { "辫发", "辮髮" }, + { "边", "邊" }, + { "辽", "遼" }, + { "辽沈", "遼瀋" }, + { "达", "達" }, + { "迁", "遷" }, + { "迂回", "迂迴" }, + { "过", "過" }, + { "过杆", "過杆" }, + { "过水面", "過水麵" }, + { "迈", "邁" }, + { "运", "運" }, + { "近日無仇", "近日無讎" }, + { "近日里", "近日裡" }, + { "返朴", "返樸" }, + { "还", "還" }, + { "还冲", "還衝" }, + { "还占", "還佔" }, + { "还采", "還採" }, + { "这", "這" }, + { "这么", "這麼" }, + { "这么着", "這麼著" }, + { "这伙人", "這夥人" }, + { "这只", "這隻" }, + { "这只采", "這只採" }, + { "这里", "這裡" }, + { "这钟", "這鐘" }, + { "进", "進" }, + { "进占", "進佔" }, + { "远", "遠" }, + { "远县才至", "遠縣纔至" }, + { "远游", "遠遊" }, + { "违", "違" }, + { "连", "連" }, + { "连三并四", "連三併四" }, + { "连占", "連佔" }, + { "连庄", "連莊" }, + { "连系", "連繫" }, + { "连采", "連採" }, + { "迟", "遲" }, + { "迥然回异", "迥然迴異" }, + { "迩", "邇" }, + { "迳", "逕" }, + { "迷幻药", "迷幻藥" }, + { "迷药", "迷藥" }, + { "迷蒙", "迷濛" }, + { "迷魂药", "迷魂藥" }, + { "迹", "跡" }, + { "追凶", "追兇" }, + { "退伙", "退夥" }, + { "退烧药", "退燒藥" }, + { "适", "適" }, + { "逆钟", "逆鐘" }, + { "选", "選" }, + { "逊", "遜" }, + { "逋发", "逋髮" }, + { "逍遥游", "逍遙遊" }, + { "透辟", "透闢" }, + { "递", "遞" }, + { "递回", "遞迴" }, + { "通历", "通曆" }, + { "通奸", "通姦" }, + { "通庄", "通莊" }, + { "通心面", "通心麵" }, + { "逞凶斗狠", "逞兇鬥狠" }, + { "逞凶鬥狠", "逞兇鬥狠" }, + { "造钟", "造鐘" }, + { "造钟表", "造鐘錶" }, + { "逦", "邐" }, + { "逻", "邏" }, + { "逼并", "逼併" }, + { "道范", "道範" }, + { "遗", "遺" }, + { "遗传钟", "遺傳鐘" }, + { "遗范", "遺範" }, + { "遗迹", "遺迹" }, + { "遥", "遙" }, + { "遨游", "遨遊" }, + { "遮丑", "遮醜" }, + { "避孕药", "避孕藥" }, + { "邀天之幸", "邀天之倖" }, + { "邋里邋遢", "邋裡邋遢" }, + { "邓", "鄧" }, + { "邝", "鄺" }, + { "那么", "那麼" }, + { "那么着", "那麼著" }, + { "那卷", "那捲" }, + { "那只", "那隻" }, + { "那里", "那裡" }, + { "邬", "鄔" }, + { "邮", "郵" }, + { "邱于庭", "邱于庭" }, + { "邹", "鄒" }, + { "邺", "鄴" }, + { "邻", "鄰" }, + { "郁伊", "鬱伊" }, + { "郁勃", "鬱勃" }, + { "郁卒", "鬱卒" }, + { "郁南", "鬱南" }, + { "郁垒", "鬱壘" }, + { "郁堙不偶", "鬱堙不偶" }, + { "郁塞", "鬱塞" }, + { "郁律", "鬱律" }, + { "郁悒", "鬱悒" }, + { "郁愤", "鬱憤" }, + { "郁抑", "鬱抑" }, + { "郁挹", "鬱挹" }, + { "郁朴", "郁樸" }, + { "郁林", "鬱林" }, + { "郁气", "鬱氣" }, + { "郁江", "鬱江" }, + { "郁沉沉", "鬱沉沉" }, + { "郁泱", "鬱泱" }, + { "郁火", "鬱火" }, + { "郁热", "鬱熱" }, + { "郁燠", "鬱燠" }, + { "郁症", "鬱症" }, + { "郁积", "鬱積" }, + { "郁纡", "鬱紆" }, + { "郁结", "鬱結" }, + { "郁蒸", "鬱蒸" }, + { "郁蓊", "鬱蓊" }, + { "郁血", "鬱血" }, + { "郁邑", "鬱邑" }, + { "郁郁", "鬱郁" }, + { "郁郁不乐", "鬱鬱不樂" }, + { "郁郁不平", "鬱鬱不平" }, + { "郁郁寡欢", "鬱鬱寡歡" }, + { "郁郁而终", "鬱鬱而終" }, + { "郁郁葱葱", "鬱鬱蔥蔥" }, + { "郁金", "鬱金" }, + { "郁闭", "鬱閉" }, + { "郁闷", "鬱悶" }, + { "郁陶", "鬱陶" }, + { "郁黑", "鬱黑" }, + { "郊游", "郊遊" }, + { "郏", "郟" }, + { "郐", "鄶" }, + { "郑", "鄭" }, + { "郑凯云", "鄭凱云" }, + { "郑庄公", "鄭莊公" }, + { "郓", "鄆" }, + { "郘钟", "郘鐘" }, + { "郦", "酈" }, + { "郧", "鄖" }, + { "郭后", "郭后" }, + { "郸", "鄲" }, + { "鄉愿", "鄉愿" }, + { "鄭凱云", "鄭凱云" }, + { "配制", "配製" }, + { "配水干管", "配水幹管" }, + { "配药", "配藥" }, + { "酒坛", "酒罈" }, + { "酒帘", "酒帘" }, + { "酒曲", "酒麴" }, + { "酒肴", "酒肴" }, + { "酒药", "酒藥" }, + { "酝", "醞" }, + { "酝酿着", "醞釀著" }, + { "酥松", "酥鬆" }, + { "酱", "醬" }, + { "酽", "釅" }, + { "酾", "釃" }, + { "酿", "釀" }, + { "酿制", "釀製" }, + { "醇朴", "醇樸" }, + { "醋坛", "醋罈" }, + { "采下", "採下" }, + { "采为", "採為" }, + { "采买", "採買" }, + { "采伐", "採伐" }, + { "采住", "採住" }, + { "采信", "採信" }, + { "采光", "採光" }, + { "采到", "採到" }, + { "采制", "採制" }, + { "采办", "採辦" }, + { "采区", "採區" }, + { "采去", "採去" }, + { "采取", "採取" }, + { "采回", "採回" }, + { "采在", "採在" }, + { "采好", "採好" }, + { "采录", "採錄" }, + { "采得", "採得" }, + { "采择", "採擇" }, + { "采拾", "採拾" }, + { "采挖", "採挖" }, + { "采掘", "採掘" }, + { "采摘", "採摘" }, + { "采摭", "採摭" }, + { "采撷", "採擷" }, + { "采收", "採收" }, + { "采料", "採料" }, + { "采暖", "採暖" }, + { "采树种", "採樹種" }, + { "采样", "採樣" }, + { "采桑", "採桑" }, + { "采樵人", "採樵人" }, + { "采气", "採氣" }, + { "采油", "採油" }, + { "采煤", "採煤" }, + { "采猎", "採獵" }, + { "采珠", "採珠" }, + { "采生折割", "採生折割" }, + { "采用", "採用" }, + { "采的", "採的" }, + { "采盐", "採鹽" }, + { "采石", "採石" }, + { "采矿", "採礦" }, + { "采砂场", "採砂場" }, + { "采种", "採種" }, + { "采空区", "採空區" }, + { "采空采穗", "採空採穗" }, + { "采納", "採納" }, + { "采纳", "採納" }, + { "采给", "採給" }, + { "采花", "採花" }, + { "采芹人", "採芹人" }, + { "采茶", "採茶" }, + { "采药", "採藥" }, + { "采莲", "採蓮" }, + { "采获", "採獲" }, + { "采菊", "採菊" }, + { "采薇", "採薇" }, + { "采薪", "採薪" }, + { "采行", "採行" }, + { "采补", "採補" }, + { "采访", "採訪" }, + { "采证", "採證" }, + { "采购", "採購" }, + { "采过", "採過" }, + { "采运", "採運" }, + { "采选", "採選" }, + { "采金", "採金" }, + { "采铁", "採鐵" }, + { "采集", "採集" }, + { "采风", "採風" }, + { "采食", "採食" }, + { "釉药", "釉藥" }, + { "释", "釋" }, + { "里勾外连", "裡勾外連" }, + { "里头", "裡頭" }, + { "里层", "裡層" }, + { "里屋", "裡屋" }, + { "里布", "裡布" }, + { "里带", "裡帶" }, + { "里应外合", "裡應外合" }, + { "里弦", "裡弦" }, + { "里手", "裏手" }, + { "里海", "裏海" }, + { "里程表", "里程錶" }, + { "里脊", "裡脊" }, + { "里衣", "裡衣" }, + { "里边", "裡邊" }, + { "里通外国", "裡通外國" }, + { "里通外敌", "裡通外敵" }, + { "里间", "裡間" }, + { "里面", "裡面" }, + { "重制", "重製" }, + { "重复", "重複" }, + { "重托", "重託" }, + { "重折", "重摺" }, + { "重游", "重遊" }, + { "重罗面", "重羅麵" }, + { "重锤", "重鎚" }, + { "野姜", "野薑" }, + { "野游", "野遊" }, + { "金仑溪", "金崙溪" }, + { "金发", "金髮" }, + { "金色长发", "金色長髮" }, + { "金范", "金範" }, + { "金表", "金錶" }, + { "金装玉里", "金裝玉裡" }, + { "金钟", "金鐘" }, + { "金马仑道", "金馬崙道" }, + { "鉴", "鑒" }, + { "銮", "鑾" }, + { "錾", "鏨" }, + { "鎭", "鎮" }, + { "钆", "釓" }, + { "钇", "釔" }, + { "针", "針" }, + { "钉", "釘" }, + { "钉锤", "釘鎚" }, + { "钊", "釗" }, + { "钋", "釙" }, + { "钌", "釕" }, + { "钍", "釷" }, + { "钏", "釧" }, + { "钐", "釤" }, + { "钒", "釩" }, + { "钓", "釣" }, + { "钔", "鍆" }, + { "钕", "釹" }, + { "钗", "釵" }, + { "钙", "鈣" }, + { "钛", "鈦" }, + { "钜", "鉅" }, + { "钝", "鈍" }, + { "钞", "鈔" }, + { "钟", "鍾" }, + { "钟上", "鐘上" }, + { "钟下", "鐘下" }, + { "钟不", "鐘不" }, + { "钟乳洞", "鐘乳洞" }, + { "钟乳石", "鐘乳石" }, + { "钟体", "鐘體" }, + { "钟停", "鐘停" }, + { "钟关", "鐘關" }, + { "钟匠", "鐘匠" }, + { "钟发音", "鐘發音" }, + { "钟口", "鐘口" }, + { "钟响", "鐘響" }, + { "钟在寺里", "鐘在寺裡" }, + { "钟塔", "鐘塔" }, + { "钟壁", "鐘壁" }, + { "钟声", "鐘聲" }, + { "钟太", "鐘太" }, + { "钟头", "鐘頭" }, + { "钟好", "鐘好" }, + { "钟山", "鐘山" }, + { "钟左右", "鐘左右" }, + { "钟差", "鐘差" }, + { "钟座", "鐘座" }, + { "钟形", "鐘形" }, + { "钟律", "鐘律" }, + { "钟快", "鐘快" }, + { "钟意", "鐘意" }, + { "钟慢", "鐘慢" }, + { "钟摆", "鐘擺" }, + { "钟敲", "鐘敲" }, + { "钟有", "鐘有" }, + { "钟楼", "鐘樓" }, + { "钟模", "鐘模" }, + { "钟没", "鐘沒" }, + { "钟漏", "鐘漏" }, + { "钟点", "鐘點" }, + { "钟王", "鐘王" }, + { "钟琴", "鐘琴" }, + { "钟的", "鐘的" }, + { "钟盘", "鐘盤" }, + { "钟相", "鐘相" }, + { "钟磬", "鐘磬" }, + { "钟纽", "鐘紐" }, + { "钟罩", "鐘罩" }, + { "钟腰", "鐘腰" }, + { "钟螺", "鐘螺" }, + { "钟行", "鐘行" }, + { "钟表", "鐘錶" }, + { "钟表面", "鐘表面" }, + { "钟被", "鐘被" }, + { "钟调", "鐘調" }, + { "钟身", "鐘身" }, + { "钟速", "鐘速" }, + { "钟陈列", "鐘陳列" }, + { "钟面", "鐘面" }, + { "钟顶", "鐘頂" }, + { "钟鸣", "鐘鳴" }, + { "钟鼎", "鐘鼎" }, + { "钟鼓", "鐘鼓" }, + { "钠", "鈉" }, + { "钡", "鋇" }, + { "钢", "鋼" }, + { "钢制", "鋼製" }, + { "钢梁", "鋼樑" }, + { "钣", "鈑" }, + { "钤", "鈐" }, + { "钥", "鑰" }, + { "钦", "欽" }, + { "钧", "鈞" }, + { "钨", "鎢" }, + { "钩", "鉤" }, + { "钩心斗角", "鈎心鬥角" }, + { "钪", "鈧" }, + { "钫", "鈁" }, + { "钬", "鈥" }, + { "钭", "鈄" }, + { "钮", "鈕" }, + { "钯", "鈀" }, + { "钰", "鈺" }, + { "钱", "錢" }, + { "钱庄", "錢莊" }, + { "钱范", "錢範" }, + { "钱谷", "錢穀" }, + { "钲", "鉦" }, + { "钳", "鉗" }, + { "钴", "鈷" }, + { "钵", "缽" }, + { "钶", "鈳" }, + { "钸", "鈽" }, + { "钹", "鈸" }, + { "钺", "鉞" }, + { "钻", "鑽" }, + { "钼", "鉬" }, + { "钽", "鉭" }, + { "钾", "鉀" }, + { "钿", "鈿" }, + { "铀", "鈾" }, + { "铁", "鐵" }, + { "铁杆", "鐵杆" }, + { "铁钟", "鐵鐘" }, + { "铁锈", "鐵鏽" }, + { "铁锤", "鐵鎚" }, + { "铂", "鉑" }, + { "铃", "鈴" }, + { "铄", "鑠" }, + { "铅", "鉛" }, + { "铆", "鉚" }, + { "铈", "鈰" }, + { "铉", "鉉" }, + { "铊", "鉈" }, + { "铋", "鉍" }, + { "铌", "鈮" }, + { "铍", "鈹" }, + { "铎", "鐸" }, + { "铐", "銬" }, + { "铑", "銠" }, + { "铒", "鉺" }, + { "铕", "銪" }, + { "铖", "鋮" }, + { "铗", "鋏" }, + { "铙", "鐃" }, + { "铛", "鐺" }, + { "铜", "銅" }, + { "铜制", "銅製" }, + { "铜范", "銅範" }, + { "铜钟", "銅鐘" }, + { "铝", "鋁" }, + { "铝制", "鋁製" }, + { "铟", "銦" }, + { "铠", "鎧" }, + { "铡", "鍘" }, + { "铢", "銖" }, + { "铣", "銑" }, + { "铤", "鋌" }, + { "铥", "銩" }, + { "铧", "鏵" }, + { "铨", "銓" }, + { "铩", "鎩" }, + { "铪", "鉿" }, + { "铫", "銚" }, + { "铬", "鉻" }, + { "铭", "銘" }, + { "铮", "錚" }, + { "铯", "銫" }, + { "铯钟", "銫鐘" }, + { "铰", "鉸" }, + { "铱", "銥" }, + { "铲", "鏟" }, + { "铲出", "剷出" }, + { "铲刈", "剷刈" }, + { "铲头", "剷頭" }, + { "铲平", "剷平" }, + { "铲除", "剷除" }, + { "铳", "銃" }, + { "铴", "鐋" }, + { "铵", "銨" }, + { "银", "銀" }, + { "银发", "銀髮" }, + { "银朱", "銀硃" }, + { "铷", "銣" }, + { "铸", "鑄" }, + { "铸钟", "鑄鐘" }, + { "铹", "鐒" }, + { "铺", "鋪" }, + { "铺锦列绣", "鋪錦列繡" }, + { "铼", "錸" }, + { "铽", "鋱" }, + { "链", "鏈" }, + { "铿", "鏗" }, + { "销", "銷" }, + { "锁", "鎖" }, + { "锂", "鋰" }, + { "锄", "鋤" }, + { "锅", "鍋" }, + { "锅庄", "鍋莊" }, + { "锆", "鋯" }, + { "锇", "鋨" }, + { "锈", "銹" }, + { "锈病", "鏽病" }, + { "锈菌", "鏽菌" }, + { "锈蚀", "鏽蝕" }, + { "锉", "銼" }, + { "锊", "鋝" }, + { "锋", "鋒" }, + { "锌", "鋅" }, + { "锐", "銳" }, + { "锑", "銻" }, + { "锒", "鋃" }, + { "锓", "鋟" }, + { "锔", "鋦" }, + { "锕", "錒" }, + { "锖", "錆" }, + { "锗", "鍺" }, + { "错", "錯" }, + { "锚", "錨" }, + { "锛", "錛" }, + { "锞", "錁" }, + { "锟", "錕" }, + { "锡", "錫" }, + { "锢", "錮" }, + { "锣", "鑼" }, + { "锤", "錘" }, + { "锤儿", "鎚兒" }, + { "锤头", "鎚頭" }, + { "锤子", "鎚子" }, + { "锤炼", "錘鍊" }, + { "锥", "錐" }, + { "锦", "錦" }, + { "锦绣", "錦繡" }, + { "锨", "杴" }, + { "锩", "錈" }, + { "锬", "錟" }, + { "锭", "錠" }, + { "键", "鍵" }, + { "锯", "鋸" }, + { "锰", "錳" }, + { "锱", "錙" }, + { "锲", "鍥" }, + { "锲而不舍", "鍥而不捨" }, + { "锴", "鍇" }, + { "锵", "鏘" }, + { "锶", "鍶" }, + { "锷", "鍔" }, + { "锸", "鍤" }, + { "锹", "鍬" }, + { "锺", "鍾" }, + { "锻", "鍛" }, + { "锻炼出", "鍛鍊出" }, + { "锼", "鎪" }, + { "锾", "鍰" }, + { "镀", "鍍" }, + { "镁", "鎂" }, + { "镂", "鏤" }, + { "镄", "鐨" }, + { "镆", "鏌" }, + { "镇", "鎮" }, + { "镉", "鎘" }, + { "镊", "鑷" }, + { "镌", "鐫" }, + { "镍", "鎳" }, + { "镏", "鎦" }, + { "镐", "鎬" }, + { "镑", "鎊" }, + { "镒", "鎰" }, + { "镓", "鎵" }, + { "镔", "鑌" }, + { "镖", "鏢" }, + { "镗", "鏜" }, + { "镘", "鏝" }, + { "镙", "鏍" }, + { "镛", "鏞" }, + { "镜", "鏡" }, + { "镝", "鏑" }, + { "镞", "鏃" }, + { "镟", "鏇" }, + { "镡", "鐔" }, + { "镢", "钁" }, + { "镣", "鐐" }, + { "镤", "鏷" }, + { "镦", "鐓" }, + { "镧", "鑭" }, + { "镨", "鐠" }, + { "镪", "鏹" }, + { "镫", "鐙" }, + { "镬", "鑊" }, + { "镭", "鐳" }, + { "镯", "鐲" }, + { "镰", "鐮" }, + { "镰仓", "鎌倉" }, + { "镱", "鐿" }, + { "镳", "鑣" }, + { "镶", "鑲" }, + { "长", "長" }, + { "长几", "長几" }, + { "长历", "長曆" }, + { "长生药", "長生藥" }, + { "长胡", "長鬍" }, + { "门", "門" }, + { "门吊儿", "門弔兒" }, + { "门帘", "門帘" }, + { "门里", "門裡" }, + { "闩", "閂" }, + { "闪", "閃" }, + { "闫", "閆" }, + { "闭", "閉" }, + { "问", "問" }, + { "闯", "闖" }, + { "闯炼", "闖鍊" }, + { "闯荡", "闖蕩" }, + { "闰", "閏" }, + { "闱", "闈" }, + { "闲", "閑" }, + { "闲情逸致", "閒情逸緻" }, + { "闲游", "閒遊" }, + { "闲荡", "閒蕩" }, + { "闳", "閎" }, + { "间", "間" }, + { "间不容发", "間不容髮" }, + { "闵", "閔" }, + { "闵采尔", "閔採爾" }, + { "闶", "閌" }, + { "闷", "悶" }, + { "闷着头儿干", "悶著頭兒幹" }, + { "闸", "閘" }, + { "闹", "鬧" }, + { "闹着玩儿", "鬧著玩兒" }, + { "闹表", "鬧錶" }, + { "闹钟", "鬧鐘" }, + { "闺", "閨" }, + { "闺范", "閨範" }, + { "闻", "聞" }, + { "闼", "闥" }, + { "闽", "閩" }, + { "闾", "閭" }, + { "阀", "閥" }, + { "阁", "閣" }, + { "阂", "閡" }, + { "阃", "閫" }, + { "阃范", "閫範" }, + { "阄", "鬮" }, + { "阅", "閱" }, + { "阆", "閬" }, + { "阈", "閾" }, + { "阉", "閹" }, + { "阊", "閶" }, + { "阋", "鬩" }, + { "阌", "閿" }, + { "阍", "閽" }, + { "阎", "閻" }, + { "阏", "閼" }, + { "阐", "闡" }, + { "阑", "闌" }, + { "阒", "闃" }, + { "阔", "闊" }, + { "阕", "闋" }, + { "阖", "闔" }, + { "阗", "闐" }, + { "阙", "闕" }, + { "阚", "闞" }, + { "队", "隊" }, + { "防台", "防颱" }, + { "防御", "防禦" }, + { "防晒", "防晒" }, + { "防水表", "防水錶" }, + { "防范", "防範" }, + { "防锈", "防鏽" }, + { "阳", "陽" }, + { "阳历", "陽曆" }, + { "阳春面", "陽春麵" }, + { "阴", "陰" }, + { "阴历", "陰曆" }, + { "阴干", "陰乾" }, + { "阴沟里翻船", "陰溝裡翻船" }, + { "阴郁", "陰鬱" }, + { "阵", "陣" }, + { "阶", "階" }, + { "阿呆", "阿獃" }, + { "附注", "附註" }, + { "际", "際" }, + { "陆", "陸" }, + { "陆游", "陸遊" }, + { "陇", "隴" }, + { "陈", "陳" }, + { "陈冲", "陳冲" }, + { "陈有后", "陳有后" }, + { "陈炼", "陳鍊" }, + { "陉", "陘" }, + { "降压药", "降壓藥" }, + { "陕", "陝" }, + { "除臭药", "除臭藥" }, + { "陧", "隉" }, + { "陨", "隕" }, + { "险", "險" }, + { "陪吊", "陪弔" }, + { "陳冲", "陳冲" }, + { "隆准", "隆準" }, + { "随", "隨" }, + { "隐", "隱" }, + { "隐几", "隱几" }, + { "隐占", "隱佔" }, + { "隶", "隸" }, + { "隽", "雋" }, + { "难", "難" }, + { "难舍", "難捨" }, + { "雅致", "雅緻" }, + { "雅范", "雅範" }, + { "集游法", "集遊法" }, + { "雇主", "僱主" }, + { "雇人", "僱人" }, + { "雇佣", "僱傭" }, + { "雇农", "僱農" }, + { "雇到", "僱到" }, + { "雇员", "僱員" }, + { "雇工", "僱工" }, + { "雇用", "僱用" }, + { "雏", "雛" }, + { "雕心雁爪", "鵰心雁爪" }, + { "雕悍", "鵰悍" }, + { "雕梁画栋", "雕樑畫棟" }, + { "雕翎", "鵰翎" }, + { "雕鹗", "鵰鶚" }, + { "雠", "讎" }, + { "雪窗萤几", "雪窗螢几" }, + { "雪里", "雪裡" }, + { "雳", "靂" }, + { "零余", "零餘" }, + { "零只", "零隻" }, + { "雾", "霧" }, + { "雾里", "霧裡" }, + { "霁", "霽" }, + { "霁范", "霽範" }, + { "震栗", "震慄" }, + { "震荡", "震蕩" }, + { "霉毒", "黴毒" }, + { "霉素", "黴素" }, + { "霉菌", "黴菌" }, + { "霉黑", "黴黑" }, + { "霉黧", "黴黧" }, + { "霭", "靄" }, + { "露丑", "露醜" }, + { "霸占", "霸佔" }, + { "青山一发", "青山一髮" }, + { "青苹", "青苹" }, + { "青霉", "青黴" }, + { "靓", "靚" }, + { "静", "靜" }, + { "非占不可", "非佔不可" }, + { "面临着", "面臨著" }, + { "面人儿", "麵人兒" }, + { "面价", "麵價" }, + { "面包", "麵包" }, + { "面包扎", "面包紮" }, + { "面包着", "面包著" }, + { "面厂", "麵廠" }, + { "面团", "麵糰" }, + { "面坊", "麵坊" }, + { "面坯儿", "麵坯兒" }, + { "面塑", "麵塑" }, + { "面店", "麵店" }, + { "面摊", "麵攤" }, + { "面朝着", "面朝著" }, + { "面杖", "麵杖" }, + { "面条", "麵條" }, + { "面汤", "麵湯" }, + { "面浆", "麵漿" }, + { "面灰", "麵灰" }, + { "面疙瘩", "麵疙瘩" }, + { "面皮", "麵皮" }, + { "面码儿", "麵碼兒" }, + { "面筋", "麵筋" }, + { "面粉", "麵粉" }, + { "面糊", "麵糊" }, + { "面线", "麵線" }, + { "面缸", "麵缸" }, + { "面茶", "麵茶" }, + { "面食", "麵食" }, + { "面食面", "面食麵" }, + { "面饺", "麵餃" }, + { "面饼", "麵餅" }, + { "面馆", "麵館" }, + { "靥", "靨" }, + { "鞋里", "鞋裡" }, + { "鞑", "韃" }, + { "鞣制", "鞣製" }, + { "鞭辟入里", "鞭辟入裡" }, + { "鞯", "韉" }, + { "鞲", "韝" }, + { "韦", "韋" }, + { "韦庄", "韋莊" }, + { "韧", "韌" }, + { "韩", "韓" }, + { "韩制", "韓製" }, + { "韩国制", "韓國製" }, + { "韪", "韙" }, + { "韫", "韞" }, + { "韬", "韜" }, + { "音准", "音準" }, + { "音声如钟", "音聲如鐘" }, + { "韵", "韻" }, + { "页", "頁" }, + { "顶", "頂" }, + { "顷", "頃" }, + { "顸", "頇" }, + { "项", "項" }, + { "项庄", "項莊" }, + { "顺", "順" }, + { "顺钟向", "順鐘向" }, + { "须", "須" }, + { "须发", "鬚髮" }, + { "须根", "鬚根" }, + { "须毛", "鬚毛" }, + { "须生", "鬚生" }, + { "须眉", "鬚眉" }, + { "须胡", "鬚鬍" }, + { "须须", "鬚鬚" }, + { "须鲨", "鬚鯊" }, + { "须鲸", "鬚鯨" }, + { "顼", "頊" }, + { "顽", "頑" }, + { "顾", "顧" }, + { "顿", "頓" }, + { "颀", "頎" }, + { "颁", "頒" }, + { "颂", "頌" }, + { "颂系", "頌繫" }, + { "颂赞", "頌讚" }, + { "颃", "頏" }, + { "预", "預" }, + { "预制", "預製" }, + { "颅", "顱" }, + { "领", "領" }, + { "领域里", "領域裡" }, + { "领袖欲", "領袖慾" }, + { "颇", "頗" }, + { "颈", "頸" }, + { "颉", "頡" }, + { "颊", "頰" }, + { "颊须", "頰鬚" }, + { "颌", "頜" }, + { "颍", "潁" }, + { "颏", "頦" }, + { "颐", "頤" }, + { "频", "頻" }, + { "颓", "頹" }, + { "颔", "頷" }, + { "颖", "穎" }, + { "颗", "顆" }, + { "题", "題" }, + { "题签", "題籤" }, + { "颚", "顎" }, + { "颛", "顓" }, + { "颜", "顏" }, + { "颜范", "顏範" }, + { "额", "額" }, + { "额征", "額徵" }, + { "额我略历", "額我略曆" }, + { "颞", "顳" }, + { "颟", "顢" }, + { "颠", "顛" }, + { "颠干倒坤", "顛乾倒坤" }, + { "颡", "顙" }, + { "颢", "顥" }, + { "颤", "顫" }, + { "颤栗", "顫慄" }, + { "颦", "顰" }, + { "颧", "顴" }, + { "风", "風" }, + { "风卷残云", "風捲殘雲" }, + { "风后", "風后" }, + { "风土志", "風土誌" }, + { "风干", "風乾" }, + { "风物志", "風物誌" }, + { "风范", "風範" }, + { "风起云涌", "風起雲湧" }, + { "风里", "風裡" }, + { "飑", "颮" }, + { "飒", "颯" }, + { "飓", "颶" }, + { "飕", "颼" }, + { "飘", "飄" }, + { "飘游", "飄遊" }, + { "飘荡", "飄蕩" }, + { "飘飘荡荡", "飄飄蕩蕩" }, + { "飙", "飆" }, + { "飞", "飛" }, + { "飞刍挽粟", "飛芻輓粟" }, + { "飞扎", "飛紮" }, + { "飞行钟", "飛行鐘" }, + { "食欲", "食慾" }, + { "食野之苹", "食野之苹" }, + { "食面", "食麵" }, + { "飨", "饗" }, + { "餍", "饜" }, + { "饥", "飢" }, + { "饥寒", "饑寒" }, + { "饥民", "饑民" }, + { "饥渴", "饑渴" }, + { "饥溺", "饑溺" }, + { "饥荒", "饑荒" }, + { "饥饱", "饑飽" }, + { "饥馑", "饑饉" }, + { "饧", "餳" }, + { "饨", "飩" }, + { "饩", "餼" }, + { "饪", "飪" }, + { "饫", "飫" }, + { "饬", "飭" }, + { "饭", "飯" }, + { "饭后钟", "飯後鐘" }, + { "饭团", "飯糰" }, + { "饭庄", "飯莊" }, + { "饮", "飲" }, + { "饯", "餞" }, + { "饰", "飾" }, + { "饱", "飽" }, + { "饲", "飼" }, + { "饲喂", "飼餵" }, + { "饴", "飴" }, + { "饵", "餌" }, + { "饶", "饒" }, + { "饷", "餉" }, + { "饺", "餃" }, + { "饼", "餅" }, + { "饼干", "餅乾" }, + { "饽", "餑" }, + { "饿", "餓" }, + { "馀", "餘" }, + { "馁", "餒" }, + { "馄", "餛" }, + { "馄饨面", "餛飩麵" }, + { "馅", "餡" }, + { "馆", "館" }, + { "馆谷", "館穀" }, + { "馆里", "館裡" }, + { "馈", "饋" }, + { "馊", "餿" }, + { "馋", "饞" }, + { "馍", "饃" }, + { "馏", "餾" }, + { "馐", "饈" }, + { "馑", "饉" }, + { "馒", "饅" }, + { "馔", "饌" }, + { "首只", "首隻" }, + { "首当其冲", "首當其衝" }, + { "香干", "香乾" }, + { "马", "馬" }, + { "马干", "馬乾" }, + { "马杆", "馬杆" }, + { "马表", "馬錶" }, + { "驭", "馭" }, + { "驮", "馱" }, + { "驯", "馴" }, + { "驰", "馳" }, + { "驱", "驅" }, + { "驳", "駁" }, + { "驴", "驢" }, + { "驵", "駔" }, + { "驶", "駛" }, + { "驷", "駟" }, + { "驸", "駙" }, + { "驹", "駒" }, + { "驺", "騶" }, + { "驻", "駐" }, + { "驻扎", "駐紮" }, + { "驼", "駝" }, + { "驽", "駑" }, + { "驾", "駕" }, + { "驿", "驛" }, + { "骀", "駘" }, + { "骀荡", "駘蕩" }, + { "骁", "驍" }, + { "骂", "罵" }, + { "骂着", "罵著" }, + { "骄", "驕" }, + { "骅", "驊" }, + { "骆", "駱" }, + { "骇", "駭" }, + { "骈", "駢" }, + { "骊", "驪" }, + { "骋", "騁" }, + { "验", "驗" }, + { "骏", "駿" }, + { "骐", "騏" }, + { "骑", "騎" }, + { "骒", "騍" }, + { "骓", "騅" }, + { "骖", "驂" }, + { "骗", "騙" }, + { "骘", "騭" }, + { "骚", "騷" }, + { "骛", "騖" }, + { "骜", "驁" }, + { "骝", "騮" }, + { "骞", "騫" }, + { "骟", "騸" }, + { "骠", "驃" }, + { "骡", "騾" }, + { "骢", "驄" }, + { "骣", "驏" }, + { "骤", "驟" }, + { "骥", "驥" }, + { "骧", "驤" }, + { "骨坛", "骨罈" }, + { "骨子里", "骨子裡" }, + { "骨干", "骨幹" }, + { "骨灰坛", "骨灰罈" }, + { "髅", "髏" }, + { "髋", "髖" }, + { "髌", "髕" }, + { "高几", "高几" }, + { "高干", "高幹" }, + { "高清愿", "高清愿" }, + { "髡发", "髡髮" }, + { "髭胡", "髭鬍" }, + { "髭须", "髭鬚" }, + { "髯胡", "髯鬍" }, + { "髼松", "髼鬆" }, + { "鬅松", "鬅鬆" }, + { "鬈发", "鬈髮" }, + { "鬒发", "鬒髮" }, + { "鬓", "鬢" }, + { "鬓发", "鬢髮" }, + { "魂牵梦系", "魂牽夢繫" }, + { "魇", "魘" }, + { "魉", "魎" }, + { "魏征", "魏徵" }, + { "魔杰座", "魔杰座" }, + { "魔表", "魔錶" }, + { "鱼", "魚" }, + { "鱼干", "魚乾" }, + { "鱼松", "魚鬆" }, + { "鱿", "魷" }, + { "鲁", "魯" }, + { "鲂", "魴" }, + { "鲆", "鮃" }, + { "鲇", "鯰" }, + { "鲈", "鱸" }, + { "鲋", "鮒" }, + { "鲍", "鮑" }, + { "鲎", "鱟" }, + { "鲐", "鮐" }, + { "鲑", "鮭" }, + { "鲒", "鮚" }, + { "鲔", "鮪" }, + { "鲕", "鮞" }, + { "鲚", "鱭" }, + { "鲛", "鮫" }, + { "鲜", "鮮" }, + { "鲞", "鯗" }, + { "鲟", "鱘" }, + { "鲠", "鯁" }, + { "鲡", "鱺" }, + { "鲢", "鰱" }, + { "鲣", "鰹" }, + { "鲤", "鯉" }, + { "鲥", "鰣" }, + { "鲦", "鰷" }, + { "鲧", "鯀" }, + { "鲨", "鯊" }, + { "鲩", "鯇" }, + { "鲫", "鯽" }, + { "鲭", "鯖" }, + { "鲮", "鯪" }, + { "鲰", "鯫" }, + { "鲱", "鯡" }, + { "鲲", "鯤" }, + { "鲳", "鯧" }, + { "鲵", "鯢" }, + { "鲶", "鯰" }, + { "鲷", "鯛" }, + { "鲸", "鯨" }, + { "鲸须", "鯨鬚" }, + { "鲻", "鯔" }, + { "鲽", "鰈" }, + { "鳃", "鰓" }, + { "鳄", "鱷" }, + { "鳅", "鰍" }, + { "鳆", "鰒" }, + { "鳇", "鰉" }, + { "鳌", "鰲" }, + { "鳍", "鰭" }, + { "鳎", "鰨" }, + { "鳏", "鰥" }, + { "鳐", "鰩" }, + { "鳓", "鰳" }, + { "鳔", "鰾" }, + { "鳕", "鱈" }, + { "鳖", "鱉" }, + { "鳗", "鰻" }, + { "鳜", "鱖" }, + { "鳝", "鱔" }, + { "鳞", "鱗" }, + { "鳟", "鱒" }, + { "鳢", "鱧" }, + { "鸟", "鳥" }, + { "鸠", "鳩" }, + { "鸠占鹊巢", "鳩佔鵲巢" }, + { "鸡", "雞" }, + { "鸡丝面", "雞絲麵" }, + { "鸡争鹅斗", "雞爭鵝鬥" }, + { "鸡只", "雞隻" }, + { "鸡吵鹅斗", "雞吵鵝鬥" }, + { "鸡奸", "雞姦" }, + { "鸡腿面", "雞腿麵" }, + { "鸡蛋里挑骨头", "雞蛋裡挑骨頭" }, + { "鸢", "鳶" }, + { "鸣", "鳴" }, + { "鸣钟", "鳴鐘" }, + { "鸥", "鷗" }, + { "鸦", "鴉" }, + { "鸨", "鴇" }, + { "鸩", "鴆" }, + { "鸪", "鴣" }, + { "鸫", "鶇" }, + { "鸬", "鸕" }, + { "鸭", "鴨" }, + { "鸯", "鴦" }, + { "鸱", "鴟" }, + { "鸲", "鴝" }, + { "鸳", "鴛" }, + { "鸵", "鴕" }, + { "鸶", "鷥" }, + { "鸷", "鷙" }, + { "鸸", "鴯" }, + { "鸹", "鴰" }, + { "鸺", "鵂" }, + { "鸽", "鴿" }, + { "鸾", "鸞" }, + { "鸿", "鴻" }, + { "鸿案相庄", "鴻案相莊" }, + { "鸿篇巨制", "鴻篇巨製" }, + { "鸿范", "鴻範" }, + { "鹁", "鵓" }, + { "鹂", "鸝" }, + { "鹃", "鵑" }, + { "鹄", "鵠" }, + { "鹄发", "鵠髮" }, + { "鹅", "鵝" }, + { "鹅准", "鵝準" }, + { "鹆", "鵒" }, + { "鹇", "鷳" }, + { "鹈", "鵜" }, + { "鹉", "鵡" }, + { "鹊", "鵲" }, + { "鹌", "鵪" }, + { "鹎", "鵯" }, + { "鹏", "鵬" }, + { "鹑", "鶉" }, + { "鹕", "鶘" }, + { "鹗", "鶚" }, + { "鹘", "鶻" }, + { "鹚", "鶿" }, + { "鹜", "鶩" }, + { "鹞", "鷂" }, + { "鹣", "鶼" }, + { "鹤", "鶴" }, + { "鹤发", "鶴髮" }, + { "鹤吊", "鶴弔" }, + { "鹦", "鸚" }, + { "鹧", "鷓" }, + { "鹨", "鷚" }, + { "鹩", "鷯" }, + { "鹪", "鷦" }, + { "鹫", "鷲" }, + { "鹬", "鷸" }, + { "鹭", "鷺" }, + { "鹰", "鷹" }, + { "鹰雕", "鹰鵰" }, + { "鹳", "鸛" }, + { "鹾", "鹺" }, + { "麦", "麥" }, + { "麸", "麩" }, + { "麻药", "麻藥" }, + { "麻酱面", "麻醬麵" }, + { "麻醉药", "麻醉藥" }, + { "黃詩杰", "黃詩杰" }, + { "黃鈺筑", "黃鈺筑" }, + { "黄", "黃" }, + { "黄历", "黃曆" }, + { "黄发", "黃髮" }, + { "黄干黑瘦", "黃乾黑瘦" }, + { "黄曲毒素", "黃麴毒素" }, + { "黄诗杰", "黃詩杰" }, + { "黄钟", "黃鐘" }, + { "黄钰筑", "黃鈺筑" }, + { "黉", "黌" }, + { "黑发", "黑髮" }, + { "黑色长发", "黑色長髮" }, + { "黩", "黷" }, + { "黪", "黲" }, + { "黾", "黽" }, + { "鼋", "黿" }, + { "鼍", "鼉" }, + { "鼓里", "鼓裡" }, + { "鼗", "鞀" }, + { "鼠曲草", "鼠麴草" }, + { "鼠药", "鼠藥" }, + { "鼹", "鼴" }, + { "鼻准", "鼻準" }, + { "鼻梁", "鼻樑" }, + { "齄", "齇" }, + { "齐", "齊" }, + { "齐庄", "齊莊" }, + { "齐王舍牛", "齊王捨牛" }, + { "齑", "齏" }, + { "齿", "齒" }, + { "齿危发秀", "齒危髮秀" }, + { "齿发", "齒髮" }, + { "龀", "齔" }, + { "龃", "齟" }, + { "龄", "齡" }, + { "龅", "齙" }, + { "龆", "齠" }, + { "龇", "齜" }, + { "龈", "齦" }, + { "龉", "齬" }, + { "龊", "齪" }, + { "龋", "齲" }, + { "龌", "齷" }, + { "龙", "龍" }, + { "龙卷", "龍捲" }, + { "龙斗虎伤", "龍鬥虎傷" }, + { "龙须", "龍鬚" }, + { "龚", "龔" }, + { "龛", "龕" }, + { "龟", "龜" }, +}; +#define SIMP_TO_TRAD_MAX_LEN (6) diff --git a/src/SpecialPhrase.cc b/src/SpecialPhrase.cc new file mode 100644 index 0000000..ec58216 --- /dev/null +++ b/src/SpecialPhrase.cc @@ -0,0 +1,30 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#include "SpecialPhrase.h" + +namespace PY { + +SpecialPhrase::~SpecialPhrase (void) +{ +} + +}; diff --git a/src/SpecialPhrase.h b/src/SpecialPhrase.h new file mode 100644 index 0000000..d113cee --- /dev/null +++ b/src/SpecialPhrase.h @@ -0,0 +1,47 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_SPECIAL_PHRASE_H_ +#define __PYZY_SPECIAL_PHRASE_H_ + +#include + +namespace PyZy { + +class SpecialPhrase { +public: + SpecialPhrase (size_t pos) : m_position (pos) { } + virtual ~SpecialPhrase (void) { } + + size_t position (void) const + { + return m_position; + } + + virtual std::string text (void) = 0; + +private: + size_t m_position; +}; + +}; // namespace PyZy + +#endif // __PYZY_SPECIAL_PHRASE_H_ diff --git a/src/SpecialPhraseTable.cc b/src/SpecialPhraseTable.cc new file mode 100644 index 0000000..7653949 --- /dev/null +++ b/src/SpecialPhraseTable.cc @@ -0,0 +1,125 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#include "SpecialPhraseTable.h" + +#include + +#include "DynamicSpecialPhrase.h" +#include "SpecialPhrase.h" + +namespace PyZy { + +std::unique_ptr SpecialPhraseTable::m_instance; + +class StaticSpecialPhrase : public SpecialPhrase { +public: + StaticSpecialPhrase (const std::string &text, size_t pos) : + SpecialPhrase (pos), m_text (text) { } + ~StaticSpecialPhrase (void) { } + + std::string text (void) { return m_text; } + +private: + std::string m_text; +}; + +SpecialPhraseTable::SpecialPhraseTable (const std::string &config_dir) +{ + char * path = + g_build_filename (config_dir.c_str(), "phrases.txt", NULL); + + load ("phrases.txt") || + load (path) || + load (PKGDATADIR G_DIR_SEPARATOR_S "phrases.txt"); + g_free (path); +} + +bool +SpecialPhraseTable::lookup (const std::string &command, + std::vector &result) +{ + result.clear (); + + std::pair range = m_map.equal_range (command); + for (Map::iterator it = range.first; it != range.second; it ++) { + result.push_back ((*it).second->text ()); + } + + return result.size () > 0; +} + +bool +SpecialPhraseTable::load (const char *file) +{ + m_map.clear (); + + std::ifstream in (file); + if (in.fail ()) + return false; + + std::string line; + while (!in.eof ()) { + getline (in, line); + if (line.size () == 0 || line[0] == ';') + continue; + size_t pos = line.find ('='); + if (pos == line.npos) + continue; + + std::string command = line.substr(0, pos); + std::string value = line.substr(pos + 1); + if (command.empty () || value.empty ()) + continue; + + if (value[0] != '#') { + SpecialPhrasePtr phrase (new StaticSpecialPhrase (value, 0)); + m_map.insert (Map::value_type (command, phrase)); + } + else if (value.size () > 1) { + SpecialPhrasePtr phrase (new DynamicSpecialPhrase (value.substr (1), 0)); + m_map.insert (Map::value_type (command, phrase)); + } + } + return true; +} + +void +SpecialPhraseTable::init (const std::string &config_dir) +{ + if (config_dir.empty ()) { + g_error ("Error: An argument of init is empty string."); + return; + } + m_instance.reset (new SpecialPhraseTable (config_dir)); +} + +SpecialPhraseTable & +SpecialPhraseTable::instance (void) +{ + if (m_instance.get () == NULL) { + g_error ("Error: Please call PyZy::InputContext::init () !"); + } + return *m_instance; +} + + +}; // namespace PyZy diff --git a/src/SpecialPhraseTable.h b/src/SpecialPhraseTable.h new file mode 100644 index 0000000..c8d3289 --- /dev/null +++ b/src/SpecialPhraseTable.h @@ -0,0 +1,61 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_SPECIAL_PHRASE_TABLE_H_ +#define __PYZY_SPECIAL_PHRASE_TABLE_H_ + +#include +#include +#include +#include + +#include "Util.h" + +namespace PyZy { + +class SpecialPhrase; +typedef std::shared_ptr SpecialPhrasePtr; + +class SpecialPhraseTable { +private: + explicit SpecialPhraseTable (const std::string &config_dir); + +public: + bool lookup (const std::string &command, std::vector &result); + +private: + bool load (const char *file); + +public: + static void init (const std::string &config_dir); + static SpecialPhraseTable & instance (void); + +private: + typedef std::multimap Map; + Map m_map; + +private: + static std::unique_ptr m_instance; +}; + +}; // namespace PyZy + +#endif // __PYZY_SPECIAL_PHRASE_TABLE_H_ diff --git a/src/String.h b/src/String.h new file mode 100644 index 0000000..e3daa1d --- /dev/null +++ b/src/String.h @@ -0,0 +1,191 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_STRING_H_ +#define __PYZY_STRING_H_ + +#include +#include +#include + +#include "Util.h" + +namespace PyZy { + +class String : public std::string { +public: + String () : std::string () { } + String (const char *str) : std::string (str) { } + String (const std::string &str) : std::string (str) { } + String (size_t len) : std::string () { reserve (len); } + + String & printf (const char *fmt, ...) + { + char *str; + va_list args; + + va_start (args, fmt); + str = g_strdup_vprintf (fmt, args); + va_end (args); + + assign (str); + g_free (str); + return *this; + } + + String & appendPrintf (const char *fmt, ...) + { + char *str; + va_list args; + + va_start (args, fmt); + str = g_strdup_vprintf (fmt, args); + va_end (args); + + append (str); + g_free (str); + + return *this; + } + + String & appendUnichar (unichar ch) + { + char str[12]; + size_t len; + len = g_unichar_to_utf8 (ch, str); + str[len] = 0; + append (str); + return *this; + } + + String & insert (size_t i, char ch) + { + std::string::insert (i, 1, ch); + return *this; + } + + String & truncate (size_t len) + { + erase(len); + return *this; + } + + String & replace (const char *pattern, const char *str) + { + String result; + String::size_type pos = 0; + String::size_type pos_before = 0; + const String::size_type length = std::string (pattern).size (); + + while ((pos = this->find (pattern, pos)) != String::npos) { + result.append (*this, pos_before, pos - pos_before); + result.append (str); + pos += length; + pos_before = pos; + } + result.append (*this, pos_before, this->size () - pos_before); + this->assign (result); + return *this; + } + + size_t utf8Length (void) const + { + return g_utf8_strlen (c_str(), -1); + } + + String & operator<< (int i) + { + return appendPrintf ("%d", i); + } + + String & operator<< (unsigned int i) + { + return appendPrintf ("%u", i); + } + + String & operator<< (unsigned long i) + { + return appendPrintf ("%lu", i); + } + + String & operator<< (const char ch) + { + append (1, ch); + return *this; + } + + String & operator<< (const char *str) + { + append (str); + return *this; + } + + String & operator<< (const unichar *wstr) + { + char *str; + GError *error; + str = g_ucs4_to_utf8 (wstr, -1, NULL, NULL, &error); + if (str == NULL) { + g_warning ("convert ucs4 to utf8 failed: %s", error->message); + g_error_free (error); + } + else { + append (str); + g_free (str); + } + return *this; + } + + char operator[] (size_t i) + { + return std::string::operator[] (i); + } + + String & operator<< (const std::string &str) + { + return operator<< (str.c_str ()); + } + + String & operator<< (const String &str) + { + return operator<< ((const char *)str); + } + + String & operator= (const char * str) + { + assign (str); + return *this; + } + + operator const char *(void) const + { + return this->c_str (); + } + + operator bool (void) const + { + return ! empty (); + } +}; + +}; // namespace PyZy + +#endif // __PYZY_STRING_H_ diff --git a/src/Types.h b/src/Types.h new file mode 100644 index 0000000..31ddeb3 --- /dev/null +++ b/src/Types.h @@ -0,0 +1,108 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_TYPES_H_ +#define __PYZY_TYPES_H_ + +#include + +namespace PyZy { + +#define PINYIN_ID_VOID (-1) +#define PINYIN_ID_ZERO (0) +#define PINYIN_ID_B (1) +#define PINYIN_ID_C (2) +#define PINYIN_ID_CH (3) +#define PINYIN_ID_D (4) +#define PINYIN_ID_F (5) +#define PINYIN_ID_G (6) +#define PINYIN_ID_H (7) +#define PINYIN_ID_J (8) +#define PINYIN_ID_K (9) +#define PINYIN_ID_L (10) +#define PINYIN_ID_M (11) +#define PINYIN_ID_N (12) +#define PINYIN_ID_P (13) +#define PINYIN_ID_Q (14) +#define PINYIN_ID_R (15) +#define PINYIN_ID_S (16) +#define PINYIN_ID_SH (17) +#define PINYIN_ID_T (18) +#define PINYIN_ID_W (19) +#define PINYIN_ID_X (20) +#define PINYIN_ID_Y (21) +#define PINYIN_ID_Z (22) +#define PINYIN_ID_ZH (23) +#define PINYIN_ID_A (24) +#define PINYIN_ID_AI (25) +#define PINYIN_ID_AN (26) +#define PINYIN_ID_ANG (27) +#define PINYIN_ID_AO (28) +#define PINYIN_ID_E (29) +#define PINYIN_ID_EI (30) +#define PINYIN_ID_EN (31) +#define PINYIN_ID_ENG (32) +#define PINYIN_ID_ER (33) +#define PINYIN_ID_I (34) +#define PINYIN_ID_IA (35) +#define PINYIN_ID_IAN (36) +#define PINYIN_ID_IANG (37) +#define PINYIN_ID_IAO (38) +#define PINYIN_ID_IE (39) +#define PINYIN_ID_IN (40) +#define PINYIN_ID_ING (41) +#define PINYIN_ID_IONG (42) +#define PINYIN_ID_IU (43) +#define PINYIN_ID_O (44) +#define PINYIN_ID_ONG (45) +#define PINYIN_ID_OU (46) +#define PINYIN_ID_U (47) +#define PINYIN_ID_UA (48) +#define PINYIN_ID_UAI (49) +#define PINYIN_ID_UAN (50) +#define PINYIN_ID_UANG (51) +#define PINYIN_ID_UE (52) +#define PINYIN_ID_VE PINYIN_ID_UE +#define PINYIN_ID_UI (53) +#define PINYIN_ID_UN (54) +#define PINYIN_ID_UO (55) +#define PINYIN_ID_V (56) +#define PINYIN_ID_NG PINYIN_ID_VOID + +struct Pinyin { + const char *text; + const wchar_t *bopomofo; + const char *sheng; + const char *yun; + struct { + unsigned char sheng; + unsigned char yun; + } pinyin_id[3]; + const size_t len; + const unsigned int flags; +}; + +#define MAX_UTF8_LEN 6 +#define MAX_PHRASE_LEN 16 + +}; // namespace PyZy + +#endif // __PYZY_TYPES_H_ diff --git a/src/Util.h b/src/Util.h new file mode 100644 index 0000000..1bd4f4a --- /dev/null +++ b/src/Util.h @@ -0,0 +1,122 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_UTIL_H_ +#define __PYZY_UTIL_H_ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#if defined(HAVE_UUID_CREATE) +# include +#elif defined(HAVE_LIBUUID) +# include +#endif + +#include +#include +#include + +#ifdef __GXX_EXPERIMENTAL_CXX0X__ +# include +#else +# include +# include + +namespace std { + // import boost::shared_ptr to std namespace + using boost::shared_ptr; + // import boost::scoped_ptr to std namespace, and rename to unique_ptr + // XXX: the unique_ptr can transfer the pointer ownership, + // but scoped_ptr cannot. + template class unique_ptr : public boost::scoped_ptr {}; +}; +#endif // __GXX_EXPERIMENTAL_CXX0X__PYZY_ + +namespace PyZy { +// for Unicode +typedef unsigned int unichar; + +class UUID { +public: + UUID (void) + { + uuid_t u; +#if defined(HAVE_UUID_CREATE) + char *uuid; + uuid_create (&u, 0); + uuid_to_string (&u, &uuid, 0); + g_strlcpy (m_uuid, uuid, sizeof(m_uuid)); + free(uuid); +#elif defined(HAVE_LIBUUID) + uuid_generate (u); + uuid_unparse_lower (u, m_uuid); +#endif + } + + operator const char * (void) const + { + return m_uuid; + } + +private: + char m_uuid[256]; +}; + +class Uname { +public: + Uname (void) + { + uname (&m_buf); + } + + const char *hostname (void) const { return m_buf.nodename; } +private: + struct utsname m_buf; +}; + +class Hostname : public Uname { +public: + operator const char * (void) const + { + return hostname (); + } +}; + +class Env : public std::string { +public: + Env (const char *name) + { + char *str; + str = std::getenv (name); + assign (str != NULL ? str : ""); + } + + operator const char *(void) const + { + return c_str(); + } +}; + +}; // namespace PyZy + +#endif // __PYZY_UTIL_H_ diff --git a/src/Variant.cc b/src/Variant.cc new file mode 100644 index 0000000..171d129 --- /dev/null +++ b/src/Variant.cc @@ -0,0 +1,72 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#include "Variant.h" + +namespace PyZy { + +Variant::Variant() +{ +} + +// static +Variant Variant::fromBool (bool value) +{ + Variant variant; + variant.m_type = TYPE_BOOL; + variant.m_value.bool_value = value; + return variant; +} + +// static +Variant Variant::fromUnsignedInt (unsigned int value) +{ + Variant variant; + variant.m_type = TYPE_UNSIGNED_INT; + variant.m_value.unsigned_int_value = value; + return variant; +} + +// static +Variant Variant::nullVariant (void) +{ + Variant variant; + variant.m_type = TYPE_NULL; + variant.m_value.unsigned_int_value = 0u; + return variant; +} + +Variant::Type Variant::getType (void) const +{ + return m_type; +} + +bool Variant::getBool (void) const +{ + return m_value.bool_value; +} + +unsigned int Variant::getUnsignedInt (void) const +{ + return m_value.unsigned_int_value; +} + +} // namespace PyZy diff --git a/src/Variant.h b/src/Variant.h new file mode 100644 index 0000000..c48b05e --- /dev/null +++ b/src/Variant.h @@ -0,0 +1,99 @@ +/* vim:set et ts=4 sts=4: + * + * libpyzy - The Chinese PinYin and Bopomofo conversion library. + * + * Copyright (c) 2008-2010 Peng Huang + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ +#ifndef __PYZY_VARIANT_H_ +#define __PYZY_VARIANT_H_ + +namespace PyZy { + +/** + * \brief Variant class to handle various type of value. + */ +class Variant { +public: + /** + * \brief The type contained in the variant. + */ + enum Type { + /** null */ + TYPE_NULL, + /** boolean value */ + TYPE_BOOL, + /** unsigned int value */ + TYPE_UNSIGNED_INT, + }; + + /** + * \brief Creates a Variant object from the argument. + * @param value boolean value. + * @return Variant object. + */ + static Variant fromBool (bool value); + + /** + * \brief Creates a Variant object from the argument. + * @param value unsigned int value. + * @return Variant object. + */ + static Variant fromUnsignedInt (unsigned int value); + + /** + * \brief Creates a null Variant object. + * @return Variant object. + */ + static Variant nullVariant (void); + + /** + * \brief Gets a type of the contained value. + * @return type of the contained value. + * @see Type + */ + Type getType (void) const; + + /** + * \brief Gets a value as bool. + * @return value of the variant as bool. + * + * This method doesn't check the type. + */ + bool getBool (void) const; + + /** + * \brief Gets a value as unsigned int. + * @return value of the variant as bool. + * + * This method doesn't check the type. + */ + unsigned int getUnsignedInt (void) const; + +private: + Variant(); + + Type m_type; + union { + bool bool_value; + unsigned int unsigned_int_value; + } m_value; +}; + +} // namespace PyZy + +#endif -- cgit v1.2.1