[前][次][番号順一覧][スレッド一覧]

ruby-changes:14935

From: akr <ko1@a...>
Date: Thu, 4 Mar 2010 00:12:12 +0900 (JST)
Subject: [ruby-changes:14935] Ruby:r26806 (trunk): * tool/transcode-tblgen.rb (HEX2): extracted from regexps.

akr	2010-03-04 00:11:56 +0900 (Thu, 04 Mar 2010)

  New Revision: 26806

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26806

  Log:
    * tool/transcode-tblgen.rb (HEX2): extracted from regexps.

  Modified files:
    trunk/ChangeLog
    trunk/tool/transcode-tblgen.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 26805)
+++ ChangeLog	(revision 26806)
@@ -1,3 +1,7 @@
+Thu Mar  4 00:10:54 2010  Tanaka Akira  <akr@f...>
+
+	* tool/transcode-tblgen.rb (HEX2): extracted from regexps.
+
 Wed Mar  3 23:16:32 2010  Marc-Andre Lafortune  <ruby-core@m...>
 
 	* complex.c (nucomp_real_check): raise TypeError instead of
Index: tool/transcode-tblgen.rb
===================================================================
--- tool/transcode-tblgen.rb	(revision 26805)
+++ tool/transcode-tblgen.rb	(revision 26806)
@@ -18,17 +18,20 @@
   '"' + str.gsub(C_ESC_PAT) { C_ESC[$&] } + '"'
 end
 
+HEX2 = /[0-9A-Fa-f]{2}/
+
 class StrSet
   attr_reader :pat
+
   def self.parse(pattern)
-    if /\A\s*(([0-9a-f][0-9a-f]|\{([0-9a-f][0-9a-f]|[0-9a-f][0-9a-f]-[0-9a-f][0-9a-f])(,([0-9a-f][0-9a-f]|[0-9a-f][0-9a-f]-[0-9a-f][0-9a-f]))*\})+(\s+|\z))*\z/i !~ pattern
+    if /\A\s*((#{HEX2}|\{(#{HEX2}|#{HEX2}-#{HEX2})(,(#{HEX2}|#{HEX2}-#{HEX2}))*\})+(\s+|\z))*\z/o !~ pattern
       raise ArgumentError, "invalid pattern: #{pattern.inspect}"
     end
     result = []
     pattern.scan(/\S+/) {|seq|
       seq_result = []
       while !seq.empty?
-        if /\A([0-9a-f][0-9a-f])/i =~ seq
+        if /\A(#{HEX2})/o =~ seq
           byte = $1.to_i(16)
           seq_result << [byte..byte]
           seq = $'
@@ -37,11 +40,11 @@
           seq = $'
           set_result = []
           set.scan(/[^,]+/) {|range|
-            if /\A([0-9a-f][0-9a-f])-([0-9a-f][0-9a-f])\z/i =~ range
+            if /\A(#{HEX2})-(#{HEX2})\z/o =~ range
               b = $1.to_i(16)
               e = $2.to_i(16)
               set_result << (b..e)
-            elsif /\A([0-9a-f][0-9a-f])\z/i =~ range
+            elsif /\A(#{HEX2})\z/o =~ range
               byte = $1.to_i(16)
               set_result << (byte..byte)
             else
@@ -333,19 +336,19 @@
       "FUNio"
     when :func_so
       "FUNso"
-    when /\A([0-9a-f][0-9a-f])\z/i
+    when /\A(#{HEX2})\z/o
       "o1(0x#$1)"
-    when /\A([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])\z/i
+    when /\A(#{HEX2})(#{HEX2})\z/o
       "o2(0x#$1,0x#$2)"
-    when /\A([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])\z/i
+    when /\A(#{HEX2})(#{HEX2})(#{HEX2})\z/o
       "o3(0x#$1,0x#$2,0x#$3)"
     when /funsio\((\d+)\)/
       "funsio(#{$1})"
-    when /\A([0-9a-f][0-9a-f])(3[0-9])([0-9a-f][0-9a-f])(3[0-9])\z/i
+    when /\A(#{HEX2})(3[0-9])(#{HEX2})(3[0-9])\z/o
       "g4(0x#$1,0x#$2,0x#$3,0x#$4)"
-    when /\A(f[0-7])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])\z/i
+    when /\A(f[0-7])(#{HEX2})(#{HEX2})(#{HEX2})\z/o
       "o4(0x#$1,0x#$2,0x#$3,0x#$4)"
-    when /\A([0-9a-f][0-9a-f]){4,259}\z/i
+    when /\A(#{HEX2}){4,259}\z/o
       gen_str(info.upcase)
     when /\A\/\*BYTE_LOOKUP\*\// # pointer to BYTE_LOOKUP structure
       $'.to_s
@@ -740,7 +743,7 @@
                     {81-fe}{30-39}{81-fe}{30-39}',
 }
 
-def set_valid_byte_pattern (encoding, pattern_or_label)
+def set_valid_byte_pattern(encoding, pattern_or_label)
   pattern =
     if ValidEncoding[pattern_or_label]
       ValidEncoding[pattern_or_label]

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]