summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2011-11-22 15:46:35 +0800
committerPeng Wu <alexepico@gmail.com>2011-11-22 15:46:35 +0800
commitf736c00e0d4b6640ab56abb84af123ceb20df647 (patch)
tree970c5d9b6ae00ce529d2a7dd31249fc41cd5529b
parentd9d3c2c7292d209829823fb9ed1ac977ed6aeb07 (diff)
downloadlibpinyin-f736c00e0d4b6640ab56abb84af123ceb20df647.tar.gz
libpinyin-f736c00e0d4b6640ab56abb84af123ceb20df647.tar.xz
libpinyin-f736c00e0d4b6640ab56abb84af123ceb20df647.zip
add set scheme for double pinyin parser2
-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() {