From 8fe06a2c0f4f299bb2fa1610769814913fee5d6f Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Wed, 14 Dec 2011 14:56:40 +0800 Subject: add genchewingkey.py --- scripts/Makefile.data | 1 + scripts/chewing_enum.h.in | 39 +++++++++++++++++++++++++++++++++++++++ scripts/chewingkey.py | 1 + scripts/genchewingkey.py | 41 +++++++++++++++++++++++++++++++++++++++++ scripts/utils.py | 36 ++++++++++++++++++++++++++++++++++++ 5 files changed, 118 insertions(+) create mode 100644 scripts/genchewingkey.py create mode 100644 scripts/utils.py diff --git a/scripts/Makefile.data b/scripts/Makefile.data index 9c9f823..1457407 100644 --- a/scripts/Makefile.data +++ b/scripts/Makefile.data @@ -11,6 +11,7 @@ update-header: python3 genpinyinheader.py > ../src/storage/pinyin_parser_table.h python3 gendoublepinyinheader.py > ../src/storage/double_pinyin_table.h python3 genbopomofoheader.py > ../src/storage/chewing_table.h + python3 genchewingkey.py > ../src/storage/chewing_enum.h .PHONY: pinyins.txt diff --git a/scripts/chewing_enum.h.in b/scripts/chewing_enum.h.in index dc230ae..7280b65 100644 --- a/scripts/chewing_enum.h.in +++ b/scripts/chewing_enum.h.in @@ -4,6 +4,45 @@ #ifndef CHEWING_ENUM_H #define CHEWING_ENUM_H +namespace pinyin{ +/** + * @brief enums of chewing initial element. + */ + +enum ChewingInitial +{ +@CHEWING_INITIAL@ +}; + + +/** + * @brief enums of chewing middle element. + */ + +enum ChewingMiddle +{ +@CHEWING_MIDDLE@ +}; + + +/** + * @brief enums of chewing final element. + */ +enum ChewingFinal +{ +@CHEWING_FINAL@ +}; + + +/** + * @brief enums of chewing tone element. + */ +enum ChewingTone +{ +@CHEWING_TONE@ +}; + +}; #endif diff --git a/scripts/chewingkey.py b/scripts/chewingkey.py index 1372fcb..51c89ea 100644 --- a/scripts/chewingkey.py +++ b/scripts/chewingkey.py @@ -145,6 +145,7 @@ def gen_table_index(content_table): return ",\n".join(entries) +### main function ### if __name__ == "__main__": print(gen_initials()) print(gen_middles()) diff --git a/scripts/genchewingkey.py b/scripts/genchewingkey.py new file mode 100644 index 0000000..79b8d54 --- /dev/null +++ b/scripts/genchewingkey.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# vim:set et sts=4 sw=4: +# +# libpinyin - Library to deal with pinyin. +# +# Copyright (C) 2011 Peng Wu +# +# 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. + + +from utils import expand_file +from chewingkey import gen_initials, gen_middles, gen_finals, gen_tones + + +def get_table_content(tablename): + if tablename == 'CHEWING_INITIAL': + return gen_initials() + if tablename == 'CHEWING_MIDDLE': + return gen_middles() + if tablename == 'CHEWING_FINAL': + return gen_finals() + if tablename == 'CHEWING_TONE': + return gen_tones() + + +### main function ### +if __name__ == "__main__": + expand_file("chewing_enum.h.in", get_table_content) + diff --git a/scripts/utils.py b/scripts/utils.py new file mode 100644 index 0000000..77eecbe --- /dev/null +++ b/scripts/utils.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# vim:set et sts=4 sw=4: +# +# libpinyin - Library to deal with pinyin. +# +# Copyright (C) 2011 Peng Wu +# +# 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. + + +import os + +def expand_file(filename, get_table_content): + infile = open(filename, "r") + for line in infile.readlines(): + line = line.rstrip(os.linesep) + if len(line) < 3 : + print(line) + continue + if line[0] == '@' and line[-1] == '@': + tablename = line[1:-1] + print(get_table_content(tablename)) + else: + print(line) -- cgit