int main(int argc,char **argv){ if(anthy_init()) { printf("anthy_init() is failed.\n"); return 1; } anthy_set_personality(""); ac = anthy_create_context(); if(!ac) { printf("anthy_create_context() is failed.\n"); return 1; } //準備完了! for(k=0; k<1000; k++){ anthy_set_string(ac, "わたしのなまえはおくのです。"); //anthy_commit_segment(ac); anthy_get_stat(ac, &cs); //printf("segment:%d\n",cs.nr_segment); for(i=0; i<cs.nr_segment; i++){ struct anthy_segment_stat ss; anthy_get_segment_stat(ac,i,&ss); //printf("can:%d,len:%d |", ss.nr_candidate, ss.seg_len); for(j=0; j<ss.nr_candidate; j++){ char buffer[256]; anthy_get_segment(ac,i,j,buffer,256); //printf(" %s ", buffer); } //printf("\n"); } //printf("\n"); //anthy_print_context(ac); } anthy_release_context(ac); anthy_quit(); return 0; }
void toHira(char* str) { int len, cur, isquestion; char buf[BUFSIZE]; struct anthy_conv_stat cs; replaceSign(str); replaceGrass(str); printf("rgr_str:%s\n", str); if (anthy_init()) { fprintf(stderr, "anthy init error\n"); abort(); } anthy_context_t ctx = anthy_create_context(); if (!ctx) { fprintf(stderr, "can not create context\n"); abort(); } anthy_context_set_encoding(ctx, ANTHY_UTF8_ENCODING); if (anthy_set_string(ctx, str)) { fprintf(stderr, "can not set string\n"); abort(); } if (anthy_get_stat(ctx, &cs)) { fprintf(stderr, "can not get stat\n"); abort(); } cur = 0; for (int i = 0; i < cs.nr_segment; i++) { if ((len = anthy_get_segment(ctx, i, NTH_UNCONVERTED_CANDIDATE, buf, BUFSIZE)) == -1) { fprintf(stderr, "can not get segment %d\n", i); abort(); } if (istalk(buf)) { memcpy(str + cur, buf, len); cur += len; } if (i < cs.nr_segment - 1) if (i == cs.nr_segment - 3 && isquestion) continue; else if (i == cs.nr_segment - 2) continue; else str[cur] = '/'; else str[cur] = '\0'; cur++; } anthy_release_context(ctx); }
static uim_lisp release_context(uim_lisp ac_) { anthy_context_t ac; context_list = uim_scm_callf("delete!", "oo", ac_, context_list); ac = get_anthy_context(ac_); anthy_release_context(ac); uim_scm_nullify_c_ptr(ac_); return uim_scm_f(); }
int main(int argc,char **argv) { anthy_context_t ac; FILE *fp; struct input cur_input; struct res_db *db; struct condition cond; cur_input.serial = 0; cur_input.str = 0; init_condition(&cond); parse_args(&cond, argc, argv); db = create_db(); read_db(db, expdata); printf("./test_anthy --help to print usage.\n"); print_run_env(); fp = fopen(testdata, "r"); if (!fp) { printf("failed to open %s.\n", testdata); return 0; } ac = init_lib(cond.use_utf8); /* ファイルを読んでいくループ */ while (!read_file(fp, &cur_input)) { if (check_cond(&cond, &cur_input)) { set_string(&cond, db, &cur_input, ac); } } anthy_release_context(ac); anthy_quit(); if (cond.ask) { /* ユーザに聞く */ ask_results(db); } show_stat(db); save_db(expdata, db); return 0; }
Conversion::~Conversion () { anthy_release_context (m_anthy_context); }