class YARP::RipperCompat

def bounds(location)

of every line, but for now it's good enough.
This method could be drastically improved with some caching on the start

to reflect the current node.
This method is responsible for updating lineno and column information
def bounds(location)
  start_offset = location.start_offset
  @lineno = source[0..start_offset].count("\n") + 1
  @column = start_offset - (source.rindex("\n", start_offset) || 0)
end