class Parser::Source::Range
@api public
#
def ==(other)
def ==(other) other.is_a?(Range) && @source_buffer == other.source_buffer && @begin_pos == other.begin_pos && @end_pos == other.end_pos end
def begin
def begin Range.new(@source_buffer, @begin_pos, @begin_pos) end
def column
def column _, column = @source_buffer.decompose_position(@begin_pos) column end
def column_range
def column_range self.begin.column...self.end.column end
def end
def end Range.new(@source_buffer, @end_pos, @end_pos) end
def initialize(source_buffer, begin_pos, end_pos)
def initialize(source_buffer, begin_pos, end_pos) @source_buffer = source_buffer @begin_pos, @end_pos = begin_pos, end_pos freeze end
def inspect
def inspect "#<Source::Range #{@source_buffer.name} #{@begin_pos}...#{@end_pos}>" end
def is?(*what)
def is?(*what) what.include?(source) end
def join(other)
def join(other) Range.new(@source_buffer, [@begin_pos, other.begin_pos].min, [@end_pos, other.end_pos].max) end
def line
def line line, _ = @source_buffer.decompose_position(@begin_pos) line end
def resize(new_size)
def resize(new_size) Range.new(@source_buffer, @begin_pos, @begin_pos + new_size) end
def size
def size @end_pos - @begin_pos end
def source
def source @source_buffer.source[self.begin_pos...self.end_pos] end
def source_line
def source_line @source_buffer.source_line(line) end
def to_a
def to_a (@begin_pos...@end_pos).to_a end
def to_s
def to_s line, column = @source_buffer.decompose_position(@begin_pos) [@source_buffer.name, line, column + 1].join(':') end