* enc/unicode/case-folding.rb: New classes CaseMapping/CaseMappingDummy

to pass as parameters; not yet implemented or used.
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
duerst 2016-02-07 02:44:14 +00:00
parent 3890bb60a9
commit 5cbe9fe5c4
2 changed files with 32 additions and 12 deletions

View File

@ -1,8 +1,7 @@
Sun Feb 7 11:16:00 2016 Martin Duerst <duerst@it.aoyama.ac.jp> Sun Feb 7 11:44:03 2016 Martin Duerst <duerst@it.aoyama.ac.jp>
* common.mk: using new option in recipe for enc/unicode/casefold.h * enc/unicode/case-folding.rb: New classes CaseMapping/CaseMappingDummy
to pass as parameters; not yet implemented or used.
* enc/unicode/case-folding.rb: Correctly specify argument to new option.
(with Kimihito Matsui) (with Kimihito Matsui)
Sun Feb 7 10:43:27 2016 Martin Duerst <duerst@it.aoyama.ac.jp> Sun Feb 7 10:43:27 2016 Martin Duerst <duerst@it.aoyama.ac.jp>

View File

@ -85,7 +85,7 @@ class CaseFolding
"#{code} <= MAX_CODE_VALUE && #{code} >= MIN_CODE_VALUE" "#{code} <= MAX_CODE_VALUE && #{code} >= MIN_CODE_VALUE"
end end
def lookup_hash(key, type, data) def lookup_hash(key, type, data, mapping_data)
hash = "onigenc_unicode_#{key}_hash" hash = "onigenc_unicode_#{key}_hash"
lookup = "onigenc_unicode_#{key}_lookup" lookup = "onigenc_unicode_#{key}_lookup"
arity = Array(data[0][0]).size arity = Array(data[0][0]).size
@ -140,7 +140,7 @@ class CaseFolding
src src
end end
def display(dest) def display(dest, mapping_data)
# print the header # print the header
dest.print("/* DO NOT EDIT THIS FILE. */\n") dest.print("/* DO NOT EDIT THIS FILE. */\n")
dest.print("/* Generated by enc/unicode/case-folding.rb */\n\n") dest.print("/* Generated by enc/unicode/case-folding.rb */\n\n")
@ -150,24 +150,24 @@ class CaseFolding
# CaseFold + CaseFold_Locale # CaseFold + CaseFold_Locale
name = "CaseFold_11" name = "CaseFold_11"
data = print_table(dest, name, "CaseFold"=>fold, "CaseFold_Locale"=>fold_locale) data = print_table(dest, name, "CaseFold"=>fold, "CaseFold_Locale"=>fold_locale)
dest.print lookup_hash(name, "CodePointList3", data) dest.print lookup_hash(name, "CodePointList3", data, mapping_data)
# print unfolding data # print unfolding data
# CaseUnfold_11 + CaseUnfold_11_Locale # CaseUnfold_11 + CaseUnfold_11_Locale
name = "CaseUnfold_11" name = "CaseUnfold_11"
data = print_table(dest, name, name=>unfold[0], "#{name}_Locale"=>unfold_locale[0]) data = print_table(dest, name, name=>unfold[0], "#{name}_Locale"=>unfold_locale[0])
dest.print lookup_hash(name, "CodePointList3", data) dest.print lookup_hash(name, "CodePointList3", data, mapping_data)
# CaseUnfold_12 + CaseUnfold_12_Locale # CaseUnfold_12 + CaseUnfold_12_Locale
name = "CaseUnfold_12" name = "CaseUnfold_12"
data = print_table(dest, name, name=>unfold[1], "#{name}_Locale"=>unfold_locale[1]) data = print_table(dest, name, name=>unfold[1], "#{name}_Locale"=>unfold_locale[1])
dest.print lookup_hash(name, "CodePointList2", data) dest.print lookup_hash(name, "CodePointList2", data, mapping_data)
# CaseUnfold_13 # CaseUnfold_13
name = "CaseUnfold_13" name = "CaseUnfold_13"
data = print_table(dest, name, name=>unfold[2]) data = print_table(dest, name, name=>unfold[2])
dest.print lookup_hash(name, "CodePointList2", data) dest.print lookup_hash(name, "CodePointList2", data, mapping_data)
end end
def self.load(*args) def self.load(*args)
@ -175,6 +175,25 @@ class CaseFolding
end end
end end
class CaseMapping
def initialize (mapping_directory)
end
def mapping_flags(from)
"" # preliminary implementation
end
def self.load(*args)
new(*args)
end
end
class CaseMappingDummy
def mapping_flags(from)
""
end
end
if $0 == __FILE__ if $0 == __FILE__
require 'optparse' require 'optparse'
dest = nil dest = nil
@ -198,15 +217,17 @@ if $0 == __FILE__
exit exit
end end
filename = File.expand_path("CaseFolding.txt", mapping_directory) filename = File.expand_path("CaseFolding.txt", mapping_directory)
mapping_data = CaseMapping.load(mapping_directory)
end end
filename ||= ARGV[0] || 'CaseFolding.txt' filename ||= ARGV[0] || 'CaseFolding.txt'
mapping_data ||= CaseMappingDummy.new
data = CaseFolding.load(filename) data = CaseFolding.load(filename)
if dest if dest
open(dest, "wb") do |f| open(dest, "wb") do |f|
data.display(f) data.display(f, mapping_data)
end end
else else
data.display(STDOUT) data.display(STDOUT, mapping_data)
end end
end end