def final_decoration(code, output)
warnings = {}
output.join.grep(WARNING_RE).map do |x|
md = WARNING_RE.match(x)
warnings[md[1].to_i] = md[2]
end
idx = 0
ret = code.map do |line|
w = warnings[idx+=1]
if @warnings
w ? (line.chomp + " # !> #{w}") : line
else
line
end
end
output = output.reject{|x| /^-:[0-9]+: warning/.match(x)}
if exception = /^-e?:[0-9]+:.*|^(?!!XMP)[^\n]+:[0-9]+:in .*/m.match(output.join)
err = exception[0]
err.gsub!(Regexp.union(@stdin_path), '-') if @stdin_path
ret << err.map{|line| "# ~> " + line }
end
ret
end