1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

tool/unicode_norm_gen.rb: for 1.8.5 BASERUBY

* tool/unicode_norm_gen.rb: get rid of new features for 1.8.5
  BASERUBY.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2014-10-20 03:42:42 +00:00
parent 80de9591c9
commit f61265746e

View file

@ -24,10 +24,14 @@ end
class Array class Array
def line_slice(new_line) # joins items, 8 items per line def line_slice(new_line) # joins items, 8 items per line
each_slice(8).collect(&:join).join(new_line).gsub(/ +$/, '') ary = []
0.step(size-1, 8) {|i|
ary << self[i, 8].join('')
}
ary.join(new_line).gsub(/ +$/, '')
end end
def to_UTF8() collect(&:to_UTF8).join end def to_UTF8() collect {|c| c.to_UTF8}.join('') end
def to_regexp_chars # converts an array of Integers to character ranges def to_regexp_chars # converts an array of Integers to character ranges
sort.inject([]) do |ranges, value| sort.inject([]) do |ranges, value|
@ -59,8 +63,9 @@ class Hash
end end
# read the file 'CompositionExclusions.txt' # read the file 'CompositionExclusions.txt'
composition_exclusions = IO.readlines("#{InputDataDir}/CompositionExclusions.txt"). composition_exclusions = File.open("#{InputDataDir}/CompositionExclusions.txt") {|f|
grep(/^[A-Z0-9]{4,5}/) {|line| line.split(' ').first.hex} f.grep(/^[A-Z0-9]{4,5}/) {|line| line.hex}
}
decomposition_table = {} decomposition_table = {}
kompatible_table = {} kompatible_table = {}
@ -72,9 +77,9 @@ IO.foreach("#{InputDataDir}/UnicodeData.txt") do |line|
case decomposition case decomposition
when /^[0-9A-F]/ when /^[0-9A-F]/
decomposition_table[codepoint.hex] = decomposition.split(' ').collect(&:hex) decomposition_table[codepoint.hex] = decomposition.split(' ').collect {|w| w.hex}
when /^</ when /^</
kompatible_table[codepoint.hex] = decomposition.split(' ').drop(1).collect(&:hex) kompatible_table[codepoint.hex] = decomposition.split(' ')[1..-1].collect {|w| w.hex}
end end
CombiningClass[codepoint.hex] = char_class.to_i if char_class != "0" CombiningClass[codepoint.hex] = char_class.to_i if char_class != "0"
@ -94,11 +99,12 @@ end.invert
# recalculate composition_exclusions # recalculate composition_exclusions
composition_exclusions = decomposition_table.keys - composition_table.values composition_exclusions = decomposition_table.keys - composition_table.values
accent_array = CombiningClass.keys + composition_table.keys.collect(&:last) accent_array = CombiningClass.keys + composition_table.keys.collect {|key| key.last}
composition_starters = composition_table.keys.collect(&:first) composition_starters = composition_table.keys.collect {|key| key.first}
hangul_no_trailing = 0xAC00.step(0xD7A3, 28).to_a hangul_no_trailing = []
0xAC00.step(0xD7A3, 28) {|c| hangul_no_trailing << c}
# expand decomposition table values # expand decomposition table values
decomposition_table.each do |key, value| decomposition_table.each do |key, value|