0735デフォルトの名無しさん
2018/12/01(土) 03:22:24.06ID:Zs5zJNI/src = $<.read
i = 0
loop do
break if i >= src.size
case src[i]
when ?" then i += src[i..-1][/(?:".*[^\\]|")(?:\\\\)*"/].size
when ?' then i += src[i..-1][/(?:'.*[^\\]|')(?:\\\\)*'/].size
when ?/ then src.sub!(/(?<=.{#{i}})(?:\/\/[^\n]*|\/\*.*?\*\/)/m, ''); i += 1
else i += 1
end
end
-*- input -*-
hoge(); // fuga
hoge('"'); // fuga ");
hoge("// \"fuga\"\\");
hoge("/* fuga */"); /* fuga
fuga /* "fuga" // */; hoge
-*- output -*-
hoge();
hoge('"');
hoge("// "fuga"\\");
hoge("/* fuga */"); ; hoge