Ruby 3.3 リファレンスマニュアル

class Prism::Source

[edit]

要約

解析対象のソースコード全体と各行の開始オフセットの表を保持し、バイトオフセットから行番号・桁位置への変換などを提供するクラスです。 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:
バイトオフセット
character_offset(byte_offset) -> IntegerRuby 3.3 から[permalink][rdoc][edit]

byte_offset に対応する、ソースコード先頭からの文字単位のオフセットを返します。

[PARAM] byte_offset:
バイトオフセット
column(byte_offset) -> IntegerRuby 3.3 から[permalink][rdoc][edit]

byte_offset の位置の、行頭からのバイト単位の桁位置(0 origin)を返します。

[PARAM] byte_offset:
バイトオフセット
line(byte_offset) -> IntegerRuby 3.3 から[permalink][rdoc][edit]

byte_offset の位置がある行の行番号を返します。行番号は 1 から始まります。

[PARAM] byte_offset:
バイトオフセット
line_start(byte_offset) -> IntegerRuby 3.3 から[permalink][rdoc][edit]

byte_offset の位置がある行の、行頭のバイトオフセットを返します。

[PARAM] byte_offset:
バイトオフセット
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:
バイト数
source -> StringRuby 3.3 から[permalink][rdoc][edit]

ソースコード全体を文字列で返します。

start_line -> IntegerRuby 3.3 から[permalink][rdoc][edit]

先頭行の行番号を返します。通常は 1 です。