add shengmu and yunmu to content_table
authorPeng Wu <alexepico@gmail.com>
Thu, 21 Feb 2013 03:10:46 +0000 (11:10 +0800)
committerPeng Wu <alexepico@gmail.com>
Thu, 21 Feb 2013 03:18:44 +0000 (11:18 +0800)
scripts/genpinyintable.py
src/storage/pinyin_parser2.h

index 6eda276..cc60034 100644 (file)
@@ -58,11 +58,24 @@ def sort_all():
     pinyin_index = sorted(pinyin_index, key=sortfunc)
     bopomofo_index = sorted(bopomofo_index, key=sortfunc)
 
+def get_sheng_yun(pinyin):
+    if pinyin == None:
+        return None, None
+    if pinyin == "":
+        return "", ""
+    if pinyin == "ng":
+        return "", "ng"
+    for i in range(2, 0, -1):
+        s = pinyin[:i]
+        if s in shengmu_list:
+            return s, pinyin[i:]
+    return "", pinyin
 
 def gen_content_table():
     entries = []
     for ((correct, bopomofo, chewing)) in content_table:
-        entry = '{{"{0}", "{1}", {2}}}'.format(correct, bopomofo, chewing)
+        (shengmu, yunmu) = get_sheng_yun(correct)
+        entry = '{{"{0}", "{1}", "{2}", "{3}", {4}}}'.format(correct, shengmu, yunmu, bopomofo, chewing)
         entries.append(entry)
     return ',\n'.join(entries)
 
index 644dd07..e40b30c 100644 (file)
@@ -31,6 +31,8 @@ namespace pinyin{
 
 typedef struct {
     const char * m_pinyin_str;
+    const char * m_shengmu_str;
+    const char * m_yunmu_str;
     const char * m_chewing_str;
     ChewingKey   m_chewing_key;
 } content_table_item_t;