diff options
author | Peng Wu <alexepico@gmail.com> | 2011-12-13 15:54:30 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2011-12-13 15:54:30 +0800 |
commit | c922c671b78d176c372eb323cacde33dba24b93b (patch) | |
tree | 313608a20cf80eb0aa58218feb19149fb22c50cc /scripts/chewingkey.py | |
parent | 44d567eee4767c7b0bc4a2feb8cb9faaf8c83019 (diff) | |
download | libpinyin-c922c671b78d176c372eb323cacde33dba24b93b.tar.gz libpinyin-c922c671b78d176c372eb323cacde33dba24b93b.tar.xz libpinyin-c922c671b78d176c372eb323cacde33dba24b93b.zip |
begin to write chewingkey.py
Diffstat (limited to 'scripts/chewingkey.py')
-rw-r--r-- | scripts/chewingkey.py | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/scripts/chewingkey.py b/scripts/chewingkey.py new file mode 100644 index 0000000..dc0f2a2 --- /dev/null +++ b/scripts/chewingkey.py @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- +# vim:set et sts=4 sw=4: +# +# libpinyin - Library to deal with pinyin. +# +# Copyright (C) 2011 Peng Wu <alexepico@gmail.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + +CHEWING_INITIAL_LIST = [ + 'CHEWING_ZERO_INITIAL', #Zero Initial + 'CHEWING_B', #"ㄅ" + 'CHEWING_C', #"ㄘ" + 'CHEWING_CH', #"ㄔ" + 'CHEWING_D', #"ㄉ" + 'CHEWING_F', #"ㄈ" + 'CHEWING_H', #"ㄏ" + 'CHEWING_G', #"ㄍ" + 'CHEWING_K', #"ㄎ" + 'CHEWING_J', #"ㄐ" + 'CHEWING_M', #"ㄇ" + 'CHEWING_N', #"ㄋ" + 'CHEWING_L', #"ㄌ" + 'CHEWING_R', #"ㄖ" + 'CHEWING_P', #"ㄆ" + 'CHEWING_Q', #"ㄑ" + 'CHEWING_S', #"ㄙ" + 'CHEWING_SH', #"ㄕ" + 'CHEWING_T', #"ㄊ" + 'PINYIN_W', #Invalid Chewing + 'CHEWING_X', #"ㄒ" + 'PINYIN_Y', #Invalid Chewing + 'CHEWING_Z', #"ㄗ" + 'CHEWING_ZH' #"ㄓ" +] + + +CHEWING_MIDDLE_LIST = [ + 'CHEWING_ZERO_MIDDLE', #Zero Middle + 'CHEWING_I', #"ㄧ" + 'CHEWING_U', #"ㄨ" + 'CHEWING_V' #"ㄩ" +] + + +CHEWING_FINAL_LIST = [ + 'CHEWING_ZERO_FINAL', #Zero Final + 'CHEWING_A', #"ㄚ" + 'CHEWING_AI', #"ㄞ" + 'CHEWING_AN', #"ㄢ" + 'CHEWING_ANG', #"ㄤ" + 'CHEWING_AO', #"ㄠ" + 'CHEWING_E', #"ㄝ" and "ㄜ" + 'INVALID_EA', #Invalid Pinyin/Chewing + 'CHEWING_EI', #"ㄟ" + 'CHEWING_EN', #"ㄣ" + 'CHEWING_ENG', #"ㄥ" + 'CHEWING_ER', #"ㄦ" + 'CHEWING_NG', #"ㄫ" + 'CHEWING_O', #"ㄛ" + 'PINYIN_ONG', #"ueng" + 'CHEWING_OU', #"ㄡ" + 'PINYIN_IN', #"ien" + 'PINYIN_ING' #"ieng" +] + + +CHEWING_TONE_LIST = [ + 'CHEWING_ZERO_TONE', #Zero Tone + 'CHEWING_1', #" " + 'CHEWING_2', #'ˊ' + 'CHEWING_3', #'ˇ' + 'CHEWING_4', #'ˋ' + 'CHEWING_5' #'˙' +] + + +def gen_entries(items, last_enum, num_enum): + entries = [] + for enum, item in enumerate(items, start=0): + entry = '{0} = {1}'.format(item, enum) + entries.append(entry) + + #last enum + entry = last_enum + ' = ' + items[-1] + entries.append(entry) + + #num enum + entry = num_enum + entries.append(entry) + + return ",\n".join(entries) + + +def gen_initials(): + return gen_entries(CHEWING_INITIAL_LIST, 'CHEWING_LAST_INITIAL', + 'CHEWING_NUMBER_OF_INITIALS = CHEWING_LAST_INITIAL + 1') + + +def gen_middles(): + return gen_entries(CHEWING_MIDDLE_LIST, 'CHEWING_LAST_MIDDLE', + 'CHEWING_NUMBER_OF_MIDDLES = CHEWING_LAST_MIDDLE + 1') + + +def gen_finals(): + return gen_entries(CHEWING_FINAL_LIST, 'CHEWING_LAST_FINAL', + 'CHEWING_NUMBER_OF_FINALS = CHEWING_LAST_FINAL + 1') + + +def gen_tones(): + return gen_entries(CHEWING_TONE_LIST, 'CHEWING_LAST_TONE', + 'CHEWING_NUMBER_OF_TONES = CHEWING_LAST_TONE + 1') + + +if __name__ == "__main__": + print(gen_initials()) + print(gen_middles()) + print(gen_finals()) + print(gen_tones()) |