summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/storage/pinyin_parser2.cpp34
-rw-r--r--src/storage/pinyin_parser2.h4
2 files changed, 36 insertions, 2 deletions
diff --git a/src/storage/pinyin_parser2.cpp b/src/storage/pinyin_parser2.cpp
index 5524e69..1c30c14 100644
--- a/src/storage/pinyin_parser2.cpp
+++ b/src/storage/pinyin_parser2.cpp
@@ -416,3 +416,37 @@ int DoublePinyinParser2::parse (guint32 options, ChewingKeyVector & keys,
const char *str, int len) const{
assert(FALSE);
}
+
+bool DoublePinyinParser2::set_scheme(DoublePinyinScheme scheme) {
+
+ switch (scheme) {
+ case DOUBLE_PINYIN_ZRM:
+ m_shengmu_table = double_pinyin_zrm_sheng;
+ m_yunmu_table = double_pinyin_zrm_yun;
+ return true;
+ case DOUBLE_PINYIN_MS:
+ m_shengmu_table = double_pinyin_mspy_sheng;
+ m_yunmu_table = double_pinyin_mspy_yun;
+ return true;
+ case DOUBLE_PINYIN_ZIGUANG:
+ m_shengmu_table = double_pinyin_zgpy_sheng;
+ m_yunmu_table = double_pinyin_zgpy_yun;
+ return true;
+ case DOUBLE_PINYIN_ABC:
+ m_shengmu_table = double_pinyin_abc_sheng;
+ m_yunmu_table = double_pinyin_abc_yun;
+ return true;
+ case DOUBLE_PINYIN_PYJJ:
+ m_shengmu_table = double_pinyin_pyjj_sheng;
+ m_yunmu_table = double_pinyin_pyjj_yun;
+ return true;
+ case DOUBLE_PINYIN_XHE:
+ m_shengmu_table = double_pinyin_xhe_sheng;
+ m_yunmu_table = double_pinyin_xhe_yun;
+ return true;
+ case DOUBLE_PINYIN_CUSTOMIZED:
+ assert(FALSE);
+ };
+
+ return false; /* no such scheme. */
+}
diff --git a/src/storage/pinyin_parser2.h b/src/storage/pinyin_parser2.h
index 4d71538..ad16113 100644
--- a/src/storage/pinyin_parser2.h
+++ b/src/storage/pinyin_parser2.h
@@ -153,8 +153,8 @@ class DoublePinyinParser2 : public PinyinParser2
{
/* Note: two internal pointers to double pinyin scheme table. */
protected:
- double_pinyin_scheme_shengmu_item_t * m_shengmu_table;
- double_pinyin_scheme_yunmu_item_t * m_yunmu_table;
+ const double_pinyin_scheme_shengmu_item_t * m_shengmu_table;
+ const double_pinyin_scheme_yunmu_item_t * m_yunmu_table;
public:
DoublePinyinParser2() {