diff options
Diffstat (limited to 'tests/storage/test_parser2.cpp')
-rw-r--r-- | tests/storage/test_parser2.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
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 ){ |