diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | tool/transcode-tblgen.rb | 23 |
2 files changed, 16 insertions, 11 deletions
@@ -1,3 +1,7 @@ +Mon Sep 8 18:15:59 2008 Tanaka Akira <akr@fsij.org> + + * tool/transcode-tblgen.rb (ArrayCode): less string substitutions. + Mon Sep 8 18:13:13 2008 Tanaka Akira <akr@fsij.org> * vm.c (rb_mRubyVMFrozenCore): registered for GC. diff --git a/tool/transcode-tblgen.rb b/tool/transcode-tblgen.rb index 2eb4a01565..64d184c512 100644 --- a/tool/transcode-tblgen.rb +++ b/tool/transcode-tblgen.rb @@ -157,27 +157,28 @@ end class ArrayCode def initialize(type, name) - @code = <<"End" -static const #{type} -#{name}[0] = { -}; -End + @type = type + @name = name + @len = 0; + @content = '' end def length - @code[/\[\d+\]/][1...-1].to_i + @len end def insert_at_last(num, str) newnum = self.length + num - @code.sub!(/^(\};\n\z)/) { - str + $1 - } - @code.sub!(/\[\d+\]/) { "[#{newnum}]" } + @content << str + @len += num end def to_s - @code.dup + <<"End" +static const #{@type} +#{@name}[#{@len}] = { +#{@content}}; +End end end |