From: "H.Yamamoto" Date: 2005-09-13T13:43:43+09:00 Subject: [ruby-dev:27056] Re: [proposal] ANSI style function 山本です。 > 2. _((hoge)) が残っている これを解消するスクリプトを作りましたので、近いうちにコミットしようと 思います。([ruby-dev:27042] が修正された後くらいに) def convert(path) changed = false require "stringio" buffer = StringIO.new IO.foreach(path) do |s| while i = s.index(/\s+_+\(\(/) i2 = j2 = i + $&.size nest = 0 while j2 = s.index(/[()]/, j2) raise "nest error" if nest < 0 if $& == ")" && nest == 0 # should be end of _((hoge)) raise "bracket error" unless s[j2+1] == ?) j = j2 + 2 s[i...j] = "(" + s[i2...j2] + ")" changed = true break elsif $& == ")" # nested bracket nest -= 1 j2 += 1 elsif $& == "(" # nested bracket nest += 1 j2 += 1 end end i = j end buffer << s end if changed open(path, "w") do |io| io.write(buffer.string) end end end ######################### # main Dir.glob("*.[hc]") do |path| convert(path) end