要約
解析対象のソースコード全体と各行の開始オフセットの表を保持し、バイトオフセットから行番号・桁位置への変換などを提供するクラスです。 Prism::ParseResult#source で得られます。
例require "prism"
source = Prism.parse("foo = 1\nbar = 2\nbaz = foo + bar\n").source
p source.source[0, 7] # => "foo = 1"
p source.line(9) # => 2 (バイトオフセット 9 は 2 行目)
p source.column(9) # => 1
p source.offsets # => [0, 8, 16, 32]
目次
インスタンスメソッド
character_column(byte_offset) -> IntegerRuby 3.3 から[permalink][rdoc][edit]-
byte_offset の位置の、行頭からの文字単位の桁位置(0 origin)を返します。
- [PARAM]
byte_offset: - バイトオフセット
- [PARAM]
character_offset(byte_offset) -> IntegerRuby 3.3 から[permalink][rdoc][edit]-
byte_offset に対応する、ソースコード先頭からの文字単位のオフセットを返します。
- [PARAM]
byte_offset: - バイトオフセット
- [PARAM]
column(byte_offset) -> IntegerRuby 3.3 から[permalink][rdoc][edit]-
byte_offset の位置の、行頭からのバイト単位の桁位置(0 origin)を返します。
- [PARAM]
byte_offset: - バイトオフセット
- [PARAM]
line(byte_offset) -> IntegerRuby 3.3 から[permalink][rdoc][edit]-
byte_offset の位置がある行の行番号を返します。行番号は 1 から始まります。
- [PARAM]
byte_offset: - バイトオフセット
- [PARAM]
line_start(byte_offset) -> IntegerRuby 3.3 から[permalink][rdoc][edit]-
byte_offset の位置がある行の、行頭のバイトオフセットを返します。
- [PARAM]
byte_offset: - バイトオフセット
- [PARAM]
offsets -> ArrayRuby 3.3 から[permalink][rdoc][edit]-
各行の開始バイトオフセットの配列を返します。末尾にはソースコード全体のバイト数が入ります。
slice(byte_offset, length) -> StringRuby 3.3 から[permalink][rdoc][edit]-
byte_offset から length バイト分のソースコードを返します。
- [PARAM]
byte_offset: - 開始バイトオフセット
- [PARAM]
length: - バイト数
- [PARAM]
source -> StringRuby 3.3 から[permalink][rdoc][edit]-
ソースコード全体を文字列で返します。
start_line -> IntegerRuby 3.3 から[permalink][rdoc][edit]-
先頭行の行番号を返します。通常は 1 です。