ruby-changes:7511
From: akr <ko1@a...>
Date: Mon, 1 Sep 2008 22:21:33 +0900 (JST)
Subject: [ruby-changes:7511] Ruby:r19032 (trunk): * tool/transcode-tblgen.rb: make offsets arrays into single array.
akr 2008-09-01 22:21:06 +0900 (Mon, 01 Sep 2008) New Revision: 19032 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=19032 Log: * tool/transcode-tblgen.rb: make offsets arrays into single array. Modified files: trunk/ChangeLog trunk/tool/transcode-tblgen.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 19031) +++ ChangeLog (revision 19032) @@ -1,3 +1,7 @@ +Mon Sep 1 22:20:22 2008 Tanaka Akira <akr@f...> + + * tool/transcode-tblgen.rb: make offsets arrays into single array. + Mon Sep 1 21:46:18 2008 Tanaka Akira <akr@f...> * tool/transcode-tblgen.rb: gather offsets array at top. Index: tool/transcode-tblgen.rb =================================================================== --- tool/transcode-tblgen.rb (revision 19031) +++ tool/transcode-tblgen.rb (revision 19032) @@ -236,7 +236,7 @@ def format_offsets(min, max, offsets) offsets = offsets[min..max] - code = "{ %d, %d,\n" % [min, max] + code = "%d, %d,\n" % [min, max] 0.step(offsets.length-1,16) {|i| code << " " code << offsets[i,8].map {|off| "%3d," % off.to_s }.join('') @@ -246,7 +246,6 @@ end code << "\n" } - code << '}' code end @@ -322,15 +321,24 @@ offsets_key = [min, max, offsets[min..max]] if n = OffsetsMemo[offsets_key] offsets_name = n - offsets_code = '' else offsets_name = "#{name}_offsets" - offsets_code = <<"End" + OffsetsMemo[offsets_key] = offsets_name + if bytes_code.empty? + bytes_code << <<"End" static const unsigned char -#{offsets_name}[#{2+max-min+1}] = #{format_offsets(min,max,offsets)}; +byte_array[0] = { +}; End - OffsetsMemo[offsets_key] = offsets_name - bytes_code << offsets_code + end + size = bytes_code[/\[\d+\]/][1...-1].to_i + bytes_code.sub!(/^(\};\n\z)/) { + "\#define #{offsets_name} (byte_array+#{size})\n" + + format_offsets(min,max,offsets) + "\n" + + $1 + } + size += 2+max-min+1 + bytes_code.sub!(/\[\d+\]/) { "[#{size}]" } end if n = InfosMemo[infos] -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/