summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2013-09-25 16:36:50 +0800
committerPeng Wu <alexepico@gmail.com>2013-09-25 16:36:50 +0800
commit2b86d6b41b0219b4b645e51ca7f9520062999c91 (patch)
treeaaeed472e44d63a975520808cfff7fb0ee3b05b7
parent270a44a900c2418255c7dbe7e7e26578545df885 (diff)
downloadlibzhuyin-2b86d6b41b0219b4b645e51ca7f9520062999c91.tar.gz
libzhuyin-2b86d6b41b0219b4b645e51ca7f9520062999c91.tar.xz
libzhuyin-2b86d6b41b0219b4b645e51ca7f9520062999c91.zip
update test_parser2
-rw-r--r--src/storage/pinyin_parser2.cpp6
-rw-r--r--tests/storage/test_parser2.cpp17
2 files changed, 17 insertions, 6 deletions
diff --git a/src/storage/pinyin_parser2.cpp b/src/storage/pinyin_parser2.cpp
index 4a20e1b..6884f8a 100644
--- a/src/storage/pinyin_parser2.cpp
+++ b/src/storage/pinyin_parser2.cpp
@@ -1154,13 +1154,13 @@ int ChewingDirectParser2::parse(pinyin_option_t options,
}
/* skip consecutive spaces */
- for (i = cur; i < len; ++i) {
+ for (i = next; i < len; ++i) {
if (' ' != str[i] && '\'' != str[i])
break;
}
- next = cur;
- parsed_len = next;
+ cur = i;
+ parsed_len = i;
}
return parsed_len;
diff --git a/tests/storage/test_parser2.cpp b/tests/storage/test_parser2.cpp
index 80e8bda..6c0ab32 100644
--- a/tests/storage/test_parser2.cpp
+++ b/tests/storage/test_parser2.cpp
@@ -31,11 +31,13 @@
static const gchar * parsername = "";
static gboolean incomplete = FALSE;
+static const gchar * schemename = "";
static GOptionEntry entries[] =
{
- {"parser", 'p', 0, G_OPTION_ARG_STRING, &parsername, "parser", "fullpinyin chewing"},
+ {"parser", 'p', 0, G_OPTION_ARG_STRING, &parsername, "parser", "fullpinyin chewing direct"},
{"incomplete", 'i', 0, G_OPTION_ARG_NONE, &incomplete, "incomplete pinyin", NULL},
+ {"scheme", 's', 0, G_OPTION_ARG_STRING, &schemename, "scheme", "standard hsu dachen26"},
{NULL}
};
@@ -75,11 +77,20 @@ int main(int argc, char * argv[]) {
if (strcmp("fullpinyin", parsername) == 0) {
parser = new FullPinyinParser2();
} else if (strcmp("chewing", parsername) == 0) {
- parser = new ChewingDiscreteParser2();
+ if (strcmp("standard", schemename) == 0) {
+ parser = new ChewingDiscreteParser2();
+ } else if (strcmp("hsu", schemename) == 0) {
+ parser = new ChewingDiscreteParser2();
+ ((ChewingDiscreteParser2 *)parser)->set_scheme(CHEWING_HSU);
+ } else if (strcmp("dachen26", schemename) == 0) {
+ parser = new ChewingDaChenCP26Parser2();
+ }
+ } else if (strcmp("direct", parsername) == 0) {
+ parser = new ChewingDirectParser2();
}
if (!parser)
- parser = new FullPinyinParser2();
+ parser = new ChewingDiscreteParser2();
char* linebuf = NULL; size_t size = 0; ssize_t read;
while( (read = getline(&linebuf, &size, stdin)) != -1 ){