3 #include <anthy/splitter.h>
4 #include <anthy/wtype.h>
5 #include <anthy/segclass.h>
6 #include "wordborder.h"
12 {"ʸƬ", "H"}, {"ʸËö", "T"}, {"ʸÀá", "B"},
13 {"Àܳ¸ì", "C"}, {"̾»ì+³Ê½õ»ì", "Nk"}, {"̾»ì+½ªÃ¼", "Ne"},
14 {"Æ°»ì+ÉÕ°¸ì", "Vf"}, {"Æ°»ì+½ªÃ¼", "Ve"}, {"·ÁÍÆ»ì", "A"},
16 {"Ï¢Íѽ¤¾þ", "YM"}, {"Ï¢Âν¤¾þ", "TM"},
17 {"̾»ì", "N"}, {"̾»ì+ÉÕ°¸ì", "Nf"}, {"̾»ì+Ï¢ÍÑ", "Ny"},
24 anthy_set_seg_class(struct word_list* wl)
28 enum seg_class seg_class;
32 head_pos = wl->head_pos;
33 dc = wl->part[PART_DEPWORD].dc;
36 if (wl->part[PART_CORE].len == 0) {
37 seg_class = SEG_BUNSETSU;
45 seg_class = SEG_MEISHI;
46 } else if (dc == DEP_END) {
47 seg_class = SEG_MEISHI_SHUTAN;
48 } else if (dc == DEP_RENYOU) {
49 seg_class = SEG_MEISHI_RENYOU;
50 } else if (dc == DEP_KAKUJOSHI) {
51 seg_class = SEG_MEISHI_KAKUJOSHI;
53 seg_class = SEG_MEISHI_FUZOKUGO;
58 seg_class = SEG_BUNSETSU;
59 } else if (dc == DEP_END) {
60 seg_class = SEG_DOUSHI_SHUTAN;
61 } else if (dc == DEP_RENYOU) {
62 seg_class = SEG_DOUSHI_RENYOU;
63 } else if (dc == DEP_RENTAI) {
64 seg_class = SEG_DOUSHI_RENTAI;
66 seg_class = SEG_DOUSHI_FUZOKUGO;
72 seg_class = SEG_KEIYOUSHI;
73 if (dc == DEP_RENYOU) {
74 seg_class = SEG_RENYOU_SHUSHOKU;
75 } else if (dc == DEP_RENTAI) {
76 seg_class = SEG_RENTAI_SHUSHOKU;
80 seg_class = SEG_KEIYOUDOUSHI;
81 if (dc == DEP_RENYOU) {
82 seg_class = SEG_RENYOU_SHUSHOKU;
83 } else if (dc == DEP_RENTAI) {
84 seg_class = SEG_RENTAI_SHUSHOKU;
88 seg_class = SEG_RENYOU_SHUSHOKU;
91 seg_class = SEG_RENTAI_SHUSHOKU;
94 seg_class = SEG_SETSUZOKUGO;
97 seg_class = SEG_BUNSETSU;
100 seg_class = SEG_BUNSETSU;
103 seg_class = SEG_MEISHI;
107 wl->seg_class = seg_class;
110 const char* anthy_seg_class_name(enum seg_class sc)
112 return seg_class_tab[sc].name;
115 const char* anthy_seg_class_sym(enum seg_class sc)
117 return seg_class_tab[sc].sym;
121 anthy_seg_class_by_name(const char *name)
124 for (i = 0; seg_class_tab[i].name; i++) {
125 if (!strcmp(seg_class_tab[i].name, name)) {