From 2b86d6b41b0219b4b645e51ca7f9520062999c91 Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Wed, 25 Sep 2013 16:36:50 +0800 Subject: update test_parser2 --- src/storage/pinyin_parser2.cpp | 6 +++--- tests/storage/test_parser2.cpp | 17 ++++++++++++++--- 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 ){ -- cgit