class Prism::ASCIISource
Spezialisierte Version von Prism::Source für Quellcode, der nur ASCII-Zeichen enthält. Diese Klasse wird verwendet, um Leistungsoptimierungen anzuwenden, die bei Quellen mit Mehrbytezeichen nicht möglich sind.
In dem extrem seltenen Fall, dass eine Quelle Mehrbytezeichen enthält, aber aufgrund eines magischen Encoding-Kommentars als binär markiert ist und nicht sofort in UTF-8 konvertiert werden kann, wird auch diese Klasse verwendet. Dies liegt daran, dass wir zu diesem Zeitpunkt alles als Einzelbyte-Zeichen behandeln.
Öffentliche Instanzmethoden
Source
# File lib/prism/parse_result.rb, line 248 def character_column(byte_offset) byte_offset - line_start(byte_offset) end
Gibt die Spaltennummer in Zeichen für den gegebenen Byte-Offset zurück.
Source
# File lib/prism/parse_result.rb, line 243 def character_offset(byte_offset) byte_offset end
Gibt den Zeichen-Offset für den gegebenen Byte-Offset zurück.
Source
# File lib/prism/parse_result.rb, line 265 def code_units_cache(encoding) ->(byte_offset) { byte_offset } end
Gibt einen Cache zurück, der die Identitätsfunktion ist, um dieselbe Schnittstelle beizubehalten. Dies ist möglich, da Code-Einheiten für reine ASCII-Quellen immer Byte-Offsets entsprechen.
Source
# File lib/prism/parse_result.rb, line 272 def code_units_column(byte_offset, encoding) byte_offset - line_start(byte_offset) end
Spezialisierte Version von code_units_column, die nicht von code_units_offset abhängt, was eine teurere Operation ist. Dies ist im Wesentlichen dasselbe wie Prism::Source#column.
Source
# File lib/prism/parse_result.rb, line 258 def code_units_offset(byte_offset, encoding) byte_offset end
Gibt den Offset vom Anfang der Datei für den gegebenen Byte-Offset zurück, gezählt in Code-Einheiten für das gegebene Encoding.
Diese Methode wird mit UTF-8, UTF-16 und UTF-32 getestet. Wenn es das Konzept von Code-Einheiten gibt, das sich von der Anzahl der Zeichen in anderen Encodings unterscheidet, wird dies hier nicht erfasst.