aboutsummaryrefslogtreecommitdiffstats
path: root/tool/transcode-tblgen.rb
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-03-21 03:38:58 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-03-21 03:38:58 +0000
commit49d993729fd9507b9ae950db5bfb419536846d40 (patch)
tree1e3b14d20174fbf0855aa43d2bfa4e4d9cf44446 /tool/transcode-tblgen.rb
parentf623979f65d43a109054ada8e8f271c3bfb6a747 (diff)
downloadruby-49d993729fd9507b9ae950db5bfb419536846d40.tar.gz
* tool/transcode-tblgen.rb (transcode_compile_tree): make
valid_encoding mandatory unless from_encoding is registered in ValidEncoding. (transcode_tbl_only): ditto. (transcode_tblgen): ditto. (ValidEncoding): new function. * enc/trans/escape.trans: specify valid_encoding. * enc/trans/emoji_sjis_docomo.trans: ditto. * enc/trans/emoji.trans: ditto. * enc/trans/emoji_iso2022_kddi.trans: ditto. * enc/trans/big5.trans: ditto. * enc/trans/emoji_sjis_softbank.trans: ditto. * enc/trans/emoji_sjis_kddi.trans: ditto. * enc/trans/chinese.trans: use ValidEncoding() instead of ValidEncoding[]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'tool/transcode-tblgen.rb')
-rwxr-xr-xtool/transcode-tblgen.rb16
1 files changed, 12 insertions, 4 deletions
diff --git a/tool/transcode-tblgen.rb b/tool/transcode-tblgen.rb
index ad4d56b343..ba7855b71a 100755
--- a/tool/transcode-tblgen.rb
+++ b/tool/transcode-tblgen.rb
@@ -758,13 +758,17 @@ def encode_utf8(map)
r
end
-def transcode_compile_tree(name, from, map, valid_encoding=nil)
+UnspecifiedValidEncoding = Object.new
+
+def transcode_compile_tree(name, from, map, valid_encoding)
map = encode_utf8(map)
h = {}
map.each {|k, v|
h[k] = v unless h[k] # use first mapping
}
- valid_encoding = ValidEncoding[from] if valid_encoding == nil
+ if valid_encoding.equal? UnspecifiedValidEncoding
+ valid_encoding = ValidEncoding.fetch(from)
+ end
if valid_encoding
am = ActionMap.merge2(h, {valid_encoding => :undef}) {|prefix, as1, as2|
a1 = as1.empty? ? nil : ActionMap.unambiguous_action(as1)
@@ -787,7 +791,7 @@ end
TRANSCODERS = []
TRANSCODE_GENERATED_TRANSCODER_CODE = ''
-def transcode_tbl_only(from, to, map, valid_encoding=nil)
+def transcode_tbl_only(from, to, map, valid_encoding=UnspecifiedValidEncoding)
if VERBOSE_MODE
if from.empty? || to.empty?
STDERR.puts "converter for #{from.empty? ? to : from}"
@@ -808,7 +812,7 @@ def transcode_tbl_only(from, to, map, valid_encoding=nil)
return map, tree_name, real_tree_name, max_input
end
-def transcode_tblgen(from, to, map, valid_encoding=nil)
+def transcode_tblgen(from, to, map, valid_encoding=UnspecifiedValidEncoding)
map, tree_name, real_tree_name, max_input = transcode_tbl_only(from, to, map, valid_encoding)
transcoder_name = "rb_#{tree_name}"
TRANSCODERS << transcoder_name
@@ -912,6 +916,10 @@ ValidEncoding = {
{81-fe}{30-39}{81-fe}{30-39}',
}
+def ValidEncoding(enc)
+ ValidEncoding.fetch(enc)
+end
+
def set_valid_byte_pattern(encoding, pattern_or_label)
pattern =
if ValidEncoding[pattern_or_label]