PT_Tree ASC_set_anno(ATerm type, ATerm aterm, ATerm akey, ATerm avalue) { PT_Tree term = muASFToTree(aterm); PT_Tree key = muASFToTree(akey); PT_Tree value = muASFToTree(avalue); return set_anno(term, key, value); }
int cha_parse_segment(cha_lat_t *lat, cha_seg_t *seg) { int last_idx; int l, mblen = 0; char *text; int mrph_idx; text = lat->text + lat->offset; memcpy(text, seg->text, seg->len); switch (seg->type) { case SEGTYPE_UNSPECIFIED: mrph_idx = mrph_last_idx() + 1; if (collect_mrphs_for_pos(lat)) { last_idx = exact_lookup_dic(lat, text, seg->len); set_unknownword(lat, text, seg->len, mrph_idx, last_idx); } lat->cursor = (lat->offset += seg->len); break; case SEGTYPE_MORPH: if (collect_mrphs_for_pos(lat)) { if (seg->is_undef) { int no; for (no = 0; no < Cha_undef_info_num; no++) register_undef_mrph(lat, text, seg->len, no); } else register_specified_morph(lat, seg); } lat->cursor = (lat->offset += seg->len); break; case SEGTYPE_NORMAL: for (l = 0; l < seg->len; l += mblen, lat->cursor = (lat->offset += mblen)) { unsigned char *t; if (!collect_mrphs_for_pos(lat)) continue; t = text + l; mrph_idx = mrph_last_idx() + 1; last_idx = lookup_dic(lat, t, seg->len - l); last_idx = set_unknownword(lat, t, seg->char_type[l], mrph_idx, last_idx); mblen = cha_tok_mblen(Cha_tokenizer, t, seg->len - l); } break; case SEGTYPE_ANNOTATION: set_anno(lat, seg); lat->offset += seg->len; break; default: last_idx = mrph_last_idx(); lat->cursor += seg->len; break; } return lat->cursor; }
PT_Tree ASFE_set_anno(PT_Symbol type, PT_Tree term, PT_Tree key, PT_Tree value) { return set_anno(term, key, value); }