class Ariadne::Forms::BufferRewriter

def rewrite(code)

def rewrite(code)
  parser = new(code, "(code)", 0)
  parser.parse
  line_offsets = calc_line_offsets(code)
  code.dup.tap do |result|
    parser.var_refs.reverse_each do |lineno, stop|
      line_offset = line_offsets[lineno]
      stop += line_offset
      stop -= 1 if stop < code.length
      start = stop - "@output_buffer".length
      result[start...stop] = "output_buffer"
    end
  end
end