DB_DIR = 'd:/work/chise/char-db' #この後に/sysmtem-char-id/ucsという感じに続く
IDS_DB_DIR = 'd:/work/chise/ids/' #この後にIDS-JIS-X0208-1990.txtという感じに続く
else
- DB_DIR = '/usr/local/lib/xemacs-21.4.10/i686-pc-linux/char-db' #この後に/sysmtem-char-id/ucsという感じに続く
+ DB_DIR = '/usr/local/lib/xemacs-21.4.12/i686-pc-linux/char-db' #この後に/sysmtem-char-id/ucsという感じに続く
IDS_DB_DIR = '/home/eto/work/chise/ids/' #この後にIDS-JIS-X0208-1990.txtという感じに続く
end
class EntityReference #======================================================================
#状況によってどのERに変換するかが異なる可能性があるので、普通のclassとして実装したほうがいい?
+# CODESYS_TABLE = [
+# %w( chinese-big5-cdp CDP- 4 X),
+# %w( ideograph-daikanwa M- 5 d),
+# %w( ideograph-cbeta CB 5 d),
+# %w( ideograph-gt GT- 5 d),
+# %w( ideograph-gt-k GT-K 5 d),
+# %w( japanese-jisx0208-1990 J90- 4 X),
+# %w( japanese-jisx0208 J83- 4 X),
+# %w( japanese-jisx0213-1 JX1- 4 X),
+# %w( japanese-jisx0213-2 JX2- 4 X),
+# %w( japanese-jisx0212 JSP- 4 X),
+# %w( japanese-jisx0208-1978 J78- 4 X),
+# %w( chinese-cns11643-1 C1- 4 X),
+# %w( chinese-cns11643-2 C2- 4 X),
+# %w( chinese-cns11643-3 C3- 4 X),
+# %w( chinese-cns11643-4 C4- 4 X),
+# %w( chinese-cns11643-5 C5- 4 X),
+# %w( chinese-cns11643-6 C6- 4 X),
+# %w( chinese-cns11643-7 C7- 4 X),
+# %w( korean-ksc5601 K0- 4 X),
+# ]
+# CODESYS_ORDER = %w(japanese chinese korean ideograph)
CODESYS_TABLE = [
- %w( chinese-big5-cdp CDP- 4 X),
- %w( ideograph-daikanwa M- 5 d),
- %w( ideograph-cbeta CB 5 d),
- %w( ideograph-gt GT- 5 d),
- %w( ideograph-gt-k GT-K 5 d),
- %w( japanese-jisx0208-1990 J90- 4 X),
- %w( japanese-jisx0208 J83- 4 X),
- %w( japanese-jisx0213-1 JX1- 4 X),
- %w( japanese-jisx0213-2 JX2- 4 X),
- %w( japanese-jisx0212 JSP- 4 X),
- %w( japanese-jisx0208-1978 J78- 4 X),
- %w( chinese-cns11643-1 C1- 4 X),
- %w( chinese-cns11643-2 C2- 4 X),
- %w( chinese-cns11643-3 C3- 4 X),
- %w( chinese-cns11643-4 C4- 4 X),
- %w( chinese-cns11643-5 C5- 4 X),
- %w( chinese-cns11643-6 C6- 4 X),
- %w( chinese-cns11643-7 C7- 4 X),
- %w( korean-ksc5601 K0- 4 X),
+ %w( =jis-x0208-1990 J90- 4 X),
+ %w( =jis-x0208-1983 J83- 4 X),
+ %w( =jis-x0208-1978 J78- 4 X),
+ %w( =jis-x0208 J90- 4 X), #継承のアドホックな実装
+ %w( =jis-x0208 J83- 4 X), #継承のアドホックな実装
+ %w( =jis-x0208 J78- 4 X), #継承のアドホックな実装
+ %w( =jis-x0213-1-2000 JX1- 4 X),
+ %w( =jis-x0213-2-2000 JX2- 4 X),
+ %w( =jis-x0212 JSP- 4 X),
+ %w( =big5-cdp CDP- 4 X),
+ %w( =cns11643-1 C1- 4 X),
+ %w( =cns11643-2 C2- 4 X),
+ %w( =cns11643-3 C3- 4 X),
+ %w( =cns11643-4 C4- 4 X),
+ %w( =cns11643-5 C5- 4 X),
+ %w( =cns11643-6 C6- 4 X),
+ %w( =cns11643-7 C7- 4 X),
+ %w( =ks-x1001 K0- 4 X),
+ %w( =daikanwa M- 5 d),
+ %w( =cbeta CB 5 d),
+ %w( =gt GT- 5 d),
+ %w( =gt-k GT-K 5 d),
]
- CODESYS_ORDER = %w(japanese chinese korean ideograph)
REGEXP_PART = "&([-+0-9A-Za-z#]+);"
REGEXP_ALL = "^#{REGEXP_PART}$"
each_codesys {|codesys, er_prefix, keta, numtype| #p [codesys, er_prefix, keta, numtype]
numtyperegex = '\d' #if numtype == 'd'
numtyperegex = '[0-9A-Fa-f]' if numtype == 'X'
- regexpstr = "^#{er_prefix}(#{numtyperegex}{#{keta},#{keta}})$" #p regexpstr
+ regexpstr = "^#{er_prefix}(#{numtyperegex}{#{keta},#{keta}})$"
if er =~ Regexp.new(regexpstr)
codestr = $1
code = codestr.to_i #if numtype == 'd'
code = codestr.hex if numtype == 'X'
char_id_u8 = EntityReference.get_database(codesys, code)
char_id_num = Character.parse_char_id(char_id_u8)
+ next if char_id_num == nil
return char_id_num
end
}
end
def self.each_codesys()
- CODESYS_ORDER.each {|lang|
- CODESYS_TABLE.each {|codesys, er_prefix, keta, numtype| #普通こういう書き方はしない。ループ一個にする。
- next unless codesys =~ lang
- yield(codesys, er_prefix, keta, numtype)
- }
+# CODESYS_ORDER.each {|lang|
+# CODESYS_TABLE.each {|codesys, er_prefix, keta, numtype| #普通こういう書き方はしない。ループ一個にする。
+# next unless codesys =~ lang
+# yield(codesys, er_prefix, keta, numtype)
+# }
+# }
+ CODESYS_TABLE.each {|codesys, er_prefix, keta, numtype|
+ yield(codesys, er_prefix, keta, numtype)
}
end
def self.get_database(codesys, code)
c = CodesysDB.instance.get(codesys, code)
return c if c != nil
- if codesys =~ /-jisx0208/
- #return self.get_database("=jis-x0208", code) #再帰でどうだ?
- c = CodesysDB.instance.get("=jis-x0208", code)
- return c
- end
+# if codesys =~ /-jisx0208/
+# #return self.get_database("=jis-x0208", code) #再帰でどうだ?
+# c = CodesysDB.instance.get("=jis-x0208", code)
+# return c
+# end
return nil
end
end