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

enc-unicode.rb: ifdef blocks

* tool/enc-unicode.rb (Unifdef#ifdef): enclose conditional blocks
  in blocks.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2017-03-23 07:59:57 +00:00
parent 8083a359d0
commit d77214e8a3

View file

@ -336,23 +336,30 @@ class Unifdef
def ifdef(sym) def ifdef(sym)
if @kwdonly if @kwdonly
@stdout.puts "#ifdef #{sym}" @stdout.puts "#ifdef #{sym}"
return else
end
@stack << @top @stack << @top
@top << tmp = [sym] @top << tmp = [sym]
@top = tmp @top = tmp
end end
if block_given?
begin
return yield
ensure
endif(sym)
end
end
end
def endif(sym) def endif(sym)
if @kwdonly if @kwdonly
@stdout.puts "#endif /* #{sym} */" @stdout.puts "#endif /* #{sym} */"
return else
end
unless sym == @top[0] unless sym == @top[0]
restore restore
raise ArgumentError, "#{sym} unmatch to #{@top[0]}" raise ArgumentError, "#{sym} unmatch to #{@top[0]}"
end end
@top = @stack.pop @top = @stack.pop
end end
end
def show(dest, *syms) def show(dest, *syms)
_show(dest, @output, syms) _show(dest, @output, syms)
end end
@ -390,6 +397,7 @@ props, data = parse_unicode_data(get_file('UnicodeData.txt'))
categories = {} categories = {}
props.concat parse_scripts(data, categories) props.concat parse_scripts(data, categories)
aliases = parse_aliases(data) aliases = parse_aliases(data)
ages = blocks = graphemeBreaks = nil
define_posix_props(data) define_posix_props(data)
POSIX_NAMES.each do |name| POSIX_NAMES.each do |name|
if name == 'XPosixPunct' if name == 'XPosixPunct'
@ -400,7 +408,7 @@ POSIX_NAMES.each do |name|
make_const(name, data[name], "[[:#{name}:]]") make_const(name, data[name], "[[:#{name}:]]")
end end
end end
output.ifdef :USE_UNICODE_PROPERTIES output.ifdef :USE_UNICODE_PROPERTIES do
props.each do |name| props.each do |name|
category = categories[name] || category = categories[name] ||
case name.size case name.size
@ -410,25 +418,25 @@ props.each do |name|
end end
make_const(name, data[name], category) make_const(name, data[name], category)
end end
output.ifdef :USE_UNICODE_AGE_PROPERTIES output.ifdef :USE_UNICODE_AGE_PROPERTIES do
ages = parse_age(data) ages = parse_age(data)
output.endif :USE_UNICODE_AGE_PROPERTIES end
graphemeBreaks = parse_GraphemeBreakProperty(data) graphemeBreaks = parse_GraphemeBreakProperty(data)
blocks = parse_block(data) blocks = parse_block(data)
output.endif :USE_UNICODE_PROPERTIES end
puts(<<'__HEREDOC') puts(<<'__HEREDOC')
static const OnigCodePoint* const CodeRanges[] = { static const OnigCodePoint* const CodeRanges[] = {
__HEREDOC __HEREDOC
POSIX_NAMES.each{|name|puts" CR_#{name},"} POSIX_NAMES.each{|name|puts" CR_#{name},"}
output.ifdef :USE_UNICODE_PROPERTIES output.ifdef :USE_UNICODE_PROPERTIES do
props.each{|name| puts" CR_#{name},"} props.each{|name| puts" CR_#{name},"}
output.ifdef :USE_UNICODE_AGE_PROPERTIES output.ifdef :USE_UNICODE_AGE_PROPERTIES do
ages.each{|name| puts" CR_#{constantize_agename(name)},"} ages.each{|name| puts" CR_#{constantize_agename(name)},"}
output.endif :USE_UNICODE_AGE_PROPERTIES end
graphemeBreaks.each{|name| puts" CR_#{constantize_Grapheme_Cluster_Break(name)},"} graphemeBreaks.each{|name| puts" CR_#{constantize_Grapheme_Cluster_Break(name)},"}
blocks.each{|name|puts" CR_#{name},"} blocks.each{|name|puts" CR_#{name},"}
output.endif :USE_UNICODE_PROPERTIES end
puts(<<'__HEREDOC') puts(<<'__HEREDOC')
}; };
@ -453,7 +461,7 @@ POSIX_NAMES.each do |name|
name_to_index[name] = i name_to_index[name] = i
puts"%-40s %3d" % [name + ',', i] puts"%-40s %3d" % [name + ',', i]
end end
output.ifdef :USE_UNICODE_PROPERTIES output.ifdef :USE_UNICODE_PROPERTIES do
props.each do |name| props.each do |name|
i += 1 i += 1
name = normalize_propname(name) name = normalize_propname(name)
@ -465,14 +473,14 @@ aliases.each_pair do |k, v|
next unless v = name_to_index[v] next unless v = name_to_index[v]
puts "%-40s %3d" % [k + ',', v] puts "%-40s %3d" % [k + ',', v]
end end
output.ifdef :USE_UNICODE_AGE_PROPERTIES output.ifdef :USE_UNICODE_AGE_PROPERTIES do
ages.each do |name| ages.each do |name|
i += 1 i += 1
name = "age=#{name}" name = "age=#{name}"
name_to_index[name] = i name_to_index[name] = i
puts "%-40s %3d" % [name + ',', i] puts "%-40s %3d" % [name + ',', i]
end end
output.endif :USE_UNICODE_AGE_PROPERTIES end
graphemeBreaks.each do |name| graphemeBreaks.each do |name|
i += 1 i += 1
name = "graphemeclusterbreak=#{name.delete('_').downcase}" name = "graphemeclusterbreak=#{name.delete('_').downcase}"
@ -485,7 +493,7 @@ blocks.each do |name|
name_to_index[name] = i name_to_index[name] = i
puts "%-40s %3d" % [name + ',', i] puts "%-40s %3d" % [name + ',', i]
end end
output.endif :USE_UNICODE_PROPERTIES end
puts(<<'__HEREDOC') puts(<<'__HEREDOC')
%% %%
static int static int