From 9c490c6b8fe425eef1690f62e1655a045e254d9e Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Tue, 13 Oct 2015 15:54:58 +0800 Subject: support fallback tables in double pinyin --- scripts2/generateheader.py | 6 +++++- scripts2/templates/double_pinyin_table.h.in | 12 ++++++++++++ src/storage/pinyin_parser2.h | 5 +++++ 3 files changed, 22 insertions(+), 1 deletion(-) 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 @@ -73,6 +73,11 @@ typedef struct { const char * m_yunmus[2]; } 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; -- cgit