# File lib/parser/source/buffer.rb, line 278 def line_range(lineno) index = lineno - @first_line + 1 if index <= 0 || index > line_begins.size raise IndexError, 'Parser::Source::Buffer: range for line ' \ "#{lineno} requested, valid line numbers are #{@first_line}.." \ "#{@first_line + line_begins.size - 1}" elsif index == line_begins.size Range.new(self, line_begins[-index][1], @source.size) else Range.new(self, line_begins[-index][1], line_begins[-index - 1][1] - 1) end end