Sha256: 6b4952f6d57514084d1b54d07aa7901be89bd9f922a682f9e92c4a37a738ad99

Contents?: true

Size: 869 Bytes

Versions: 107

Compression:

Stored size: 869 Bytes

Contents

require 'scanf'

def to_ranges(array)
  sorted = array.sort.uniq
  results = []
  start = nil
  for i in 0...sorted.size
    start ||= sorted[i]
    if i == sorted.size-1 || sorted[i+1] - sorted[i] > 1
      if start == sorted[i]
        results << start
      else
        results << (start..sorted[i])
      end
      start = nil
    end
  end
  results
end

def ranges_to_regexp(array)
  r = ""
  array.each do |x|
    if x.is_a? Range
      r << "\\x%02x-\\x%02x" % [x.first, x.last]
    else
      r << "\\x%02x" % x
    end
  end
  r
end

h = Hash.new {|h,k| h[k]=[]}

ARGF.each do |l|
  l.chomp!
  sjis_bin = [[l].pack("H4")].first
  a = l.scanf("%02X%02X")
  h[a.first] << a.last
end

re = []
h.sort.each do |k,v|
  re << "\\x%02x"%k + '['+ranges_to_regexp(to_ranges(v))+']'
  p ["\\x%02x"%k, to_ranges(v), ranges_to_regexp(to_ranges(v))]
end
puts re.join('|')

Version data entries

107 entries across 98 versions & 1 rubygems

Version Path
jpmobile-8.0.0 tools/emoji/genregexp.rb
jpmobile-7.2.0 tools/emoji/genregexp.rb
jpmobile-7.1.0 tools/emoji/genregexp.rb
jpmobile-7.0.4 tools/emoji/genregexp.rb
jpmobile-7.0.3 tools/emoji/genregexp.rb
jpmobile-7.0.2 tools/emoji/genregexp.rb
jpmobile-7.0.1 tools/emoji/genregexp.rb
jpmobile-7.0.0 tools/emoji/genregexp.rb
jpmobile-6.1.2 tools/emoji/genregexp.rb
jpmobile-6.1.1 tools/emoji/genregexp.rb
jpmobile-6.1.0 tools/emoji/genregexp.rb
jpmobile-6.0.0 tools/emoji/genregexp.rb
jpmobile-5.2.5 tools/emoji/genregexp.rb
jpmobile-6.0.0.beta tools/emoji/genregexp.rb
jpmobile-5.2.4 tools/emoji/genregexp.rb
jpmobile-4.2.5 tools/emoji/genregexp.rb
jpmobile-4.2.4 tools/emoji/genregexp.rb
jpmobile-5.0.1 tools/emoji/genregexp.rb
jpmobile-5.1.1 tools/emoji/genregexp.rb
jpmobile-5.2.3 tools/emoji/genregexp.rb