class Prism::ASCIISource

Specialized version of Prism::Source for source code that includes ASCII characters only. This class is used to apply performance optimizations that cannot be applied to sources that include multibyte characters. Sources that include multibyte characters are represented by the Prism::Source class.

Public Instance Methods

character_column (byte_offset)

Return the column number in characters for the given byte offset.

# File lib/prism/parse_result.rb, line 142
def character_column(byte_offset)
  byte_offset - line_start(byte_offset)
end
character_offset (byte_offset)

Return the character offset for the given byte offset.

# File lib/prism/parse_result.rb, line 137
def character_offset(byte_offset)
  byte_offset
end
code_units_column (byte_offset, encoding)

Specialized version of ‘code_units_column` that does not depend on `code_units_offset`, which is a more expensive operation. This is essentially the same as `Prism::Source#column`.

# File lib/prism/parse_result.rb, line 159
def code_units_column(byte_offset, encoding)
  byte_offset - line_start(byte_offset)
end
code_units_offset (byte_offset, encoding)

Returns the offset from the start of the file for the given byte offset counting in code units for the given encoding.

This method is tested with UTF-8, UTF-16, and UTF-32. If there is the concept of code units that differs from the number of characters in other encodings, it is not captured here.

# File lib/prism/parse_result.rb, line 152
def code_units_offset(byte_offset, encoding)
  byte_offset
end