summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/Makefile.data1
-rw-r--r--scripts/chewing_enum.h.in39
-rw-r--r--scripts/chewingkey.py1
-rw-r--r--scripts/genchewingkey.py41
-rw-r--r--scripts/utils.py36
5 files changed, 118 insertions, 0 deletions
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 <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.
+
+
+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 <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.
+
+
+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)