+module CHISE
+ class Character
def mcs_hex() sprintf("%x", @char_id) end
def char_feature_alist() check_all_database(); @features; end
def check_database(a)
db = CharDB.instance
u8 = mcs_utf8()
- v = db.get(a, u8) # u8\82Å\95\\82³\82ê\82é\95¶\8e\9a\82Ìa\83A\83g\83\8a\83r\83\85\81[\83g\82ð\92²\82×\82é\81B
- v
+ db.get(a, u8) # u8\82Å\95\\82³\82ê\82é\95¶\8e\9a\82Ìa\83A\83g\83\8a\83r\83\85\81[\83g\82ð\92²\82×\82é\81B
end
def check_all_database() # \8c»\8dÝ\82Ì@char_id\82©\82ç\81A\95¶\8e\9a\83f\81[\83^\83x\81[\83X\82ð\8eQ\8fÆ\82·\82é
return "("+ar.join("\t")+")"
end
- #--------------------------------------------------------------------IDS\8aÖ\8cW
- def glyph_decompose() do_decompose(false) end
- def decompose() do_decompose(true) end
- def do_decompose(check_meaning = true)
- k = self.to_s
- # idss = self["ids"]
- # return idss if idss
- # return k if self.is_basic_kanji? #\8aî\96{\8a¿\8e\9a\82Ístop kanji\82Æ\82·\82é\82¼\82Æ\81B
- if check_meaning
- return self["ids-represent"] if self["ids-represent"] #ids_represent\82ð\8e\9d\82Á\82Ä\82¢\82é\8fê\8d\87\82Í\82»\82Ì\92l\82Æ\82·\82é\81B
- return self["ids-element"] if self["ids-element"] #ids_element\82ð\8e\9d\82Á\82Ä\82¢\82é\8fê\8d\87\82Í\82»\82Ì\92l\82Æ\82·\82é\81B
- idss = self["ids-meaning"]
- return idss if idss && 0 < idss.length && k != idss
- end
- idss = self["ids-aggregated"]
- return idss if idss && 0 < idss.length && k != idss
- idss = self["ids"]
- return idss if idss && 0 < idss.length && k != idss
- return k
- # return k if idss.nil? || idss.length == 0 || k == idss
- # if idss.char_length == 2
- # p ["What???", k, idss, k.inspect_all]
- # #return idssx[1] #\93ñ\8cÂ\96Ú\82¾\82¯\95Ô\82·\82Æ\82©?
- # return k #IDS\82É\93W\8aJ\82·\82é\95û\96@\82ª\96³\82¢\82Æ\81B
- # end
- # return k if k == idss
- # if idss.include?(k) #<C5-4C4D><C6-4A37>\82±\82Ì\93ñ\95¶\8e\9a\82ÌBUG\91Î\8dô
- # #return idss.sub(k, "")
- # return k #IDS\82É\93W\8aJ\82·\82é\95û\96@\82ª\96³\82¢\82Æ\81B
- # end
- # return idss
- end
-
- def decompose_all
- pde = ""
- de = self.decompose #\8fo\94\93_
- level = 0
- while true
- pde = de
- de = pde.decompose #\82à\82¤\88ê\93x\95ª\89ð\82ð\82µ\82Ä\82Ý\82é\81B
- break if pde == de #\83\8b\81[\83v\82ð\94²\82¯\82¾\82·
- exit if 10 < level #p ["too many recursive", self]
- level += 1
- end
- return de
- end
-
- def decompose_all_nu(level=nil)
- level = 0 if level.nil?
- if 10 < level
- p ["too many recursive", self]
- exit
- end
- de = self.decompose
- return de.decompose_all(level+1) if de != self #\82È\82É\82©\95Ï\89»\82ª\82 \82Á\82½\82©\82ç\8dÄ\8bA
- return de #\82à\82¤\82±\82ê\88È\8fã\95Ï\89»\82Í\96³\82³\82»\82¤\82¾\82¼\82Æ\81B
- end
-
- def is_ids?() 0x2ff0 <= @char_id && @char_id <= 0x2fff end
-
- def ids_operator_argc()
- return 0 unless is_ids?
- return 3 if @char_id == 0x2ff2 || @char_id == 0x2ff3
- return 2
- end
+ end
+end