summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2015-10-13 15:54:58 +0800
committerPeng Wu <alexepico@gmail.com>2015-10-13 15:54:58 +0800
commit9c490c6b8fe425eef1690f62e1655a045e254d9e (patch)
tree656794af0ec5dfad6559f08645178e994ee17114
parent390a0c0959500de088783273fda4341e0644c24e (diff)
downloadlibpinyin-9c490c6b8fe425eef1690f62e1655a045e254d9e.tar.gz
libpinyin-9c490c6b8fe425eef1690f62e1655a045e254d9e.tar.xz
libpinyin-9c490c6b8fe425eef1690f62e1655a045e254d9e.zip
support fallback tables in double pinyin
-rw-r--r--scripts2/generateheader.py6
-rw-r--r--scripts2/templates/double_pinyin_table.h.in12
-rw-r--r--src/storage/pinyin_parser2.h5
3 files changed, 22 insertions, 1 deletions
diff --git a/scripts2/generateheader.py b/scripts2/generateheader.py
index dd54c29..7e6b2ff 100644
--- a/scripts2/generateheader.py
+++ b/scripts2/generateheader.py
@@ -25,7 +25,7 @@ from argparse import ArgumentParser
from chewing import gen_initials, gen_middles, gen_finals, gen_tones
from fullpinyintable import gen_content_table, gen_pinyin_index, gen_luoma_pinyin_index, gen_secondary_zhuyin_index, gen_zhuyin_index, gen_hsu_zhuyin_index, gen_eten26_zhuyin_index, gen_table_index_for_chewing_key
from specialtable import gen_divided_table, gen_resplit_table
-from doublepinyintable import gen_shengmu_table, gen_yunmu_table
+from doublepinyintable import gen_shengmu_table, gen_yunmu_table, gen_fallback_table2, gen_fallback_table3
from bopomofotable import gen_chewing_symbols, gen_chewing_initials, gen_chewing_middles, gen_chewing_finals, gen_chewing_tones
@@ -73,6 +73,10 @@ def get_table_content(tablename):
return gen_shengmu_table(scheme)
if part == "YUN":
return gen_yunmu_table(scheme)
+ if part == "FALLBACK2":
+ return gen_fallback_table2(scheme)
+ if part == "FALLBACK3":
+ return gen_fallback_table3(scheme)
#zhuyin table
(scheme, part) = tablename.split('_', 1)
diff --git a/scripts2/templates/double_pinyin_table.h.in b/scripts2/templates/double_pinyin_table.h.in
index 15a8ee9..cb624ca 100644
--- a/scripts2/templates/double_pinyin_table.h.in
+++ b/scripts2/templates/double_pinyin_table.h.in
@@ -15,6 +15,10 @@ const double_pinyin_scheme_shengmu_item_t double_pinyin_zrm_sheng[] = {
@ZRM_SHENG@
};
+const double_pinyin_scheme_fallback_item_t double_pinyin_zrm_fallback[] = {
+@ZRM_FALLBACK3@
+};
+
const double_pinyin_scheme_yunmu_item_t double_pinyin_zrm_yun[] = {
@ZRM_YUN@
};
@@ -43,6 +47,10 @@ const double_pinyin_scheme_yunmu_item_t double_pinyin_pyjj_yun[] = {
@PYJJ_YUN@
};
+const double_pinyin_scheme_fallback_item_t double_pinyin_pyjj_fallback[] = {
+@PYJJ_FALLBACK2@
+};
+
const double_pinyin_scheme_shengmu_item_t double_pinyin_xhe_sheng[] = {
@XHE_SHENG@
};
@@ -51,6 +59,10 @@ const double_pinyin_scheme_yunmu_item_t double_pinyin_xhe_yun[] = {
@XHE_YUN@
};
+const double_pinyin_scheme_fallback_item_t double_pinyin_xhe_fallback[] = {
+@XHE_FALLBACK3@
+};
+
};
#endif
diff --git a/src/storage/pinyin_parser2.h b/src/storage/pinyin_parser2.h
index e8f01cd..f490411 100644
--- a/src/storage/pinyin_parser2.h
+++ b/src/storage/pinyin_parser2.h
@@ -74,6 +74,11 @@ typedef struct {
} double_pinyin_scheme_yunmu_item_t;
typedef struct {
+ const char * m_input;
+ const char * m_yunmu;
+} double_pinyin_scheme_fallback_item_t;
+
+typedef struct {
const char m_input;
const char * m_chewing;
} chewing_symbol_item_t;