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

class Prism::Result

[edit]

要約

Prism?.parse・Prism?.lex・Prism?.parse_lex などの解析系メソッドの戻り値(Prism::ParseResult・Prism::LexResult・ Prism::ParseLexResult)の共通基底クラスです。解析結果本体 (value)以外の付随情報(コメント・マジックコメント・エラー・警告・ソースコード)を保持します。

Ruby 3.3 の prism にはこのクラスはなく、Prism::ParseResult がこれらのメソッドを直接持っていました。

[SEE_ALSO] Prism::ParseResult, Prism::LexResult, Prism::ParseLexResult

目次

インスタンスメソッド

インスタンスメソッド

code_units_cache(encoding) -> ProcRuby 3.4 から[permalink][rdoc][edit]

バイトオフセットを指定エンコーディングのコード単位のオフセットへ変換する処理をキャッシュ付きで行う Proc を返します。 Prism::Location の code_units 系メソッドを多数の位置に対して繰り返し使う場合の高速化用です。

[PARAM] encoding:
コード単位の基準となるエンコーディング
comments -> ArrayRuby 3.4 から[permalink][rdoc][edit]

解析中に見つかったコメント(Prism::Comment のサブクラスのインスタンス)の配列を返します。

[SEE_ALSO] Prism::ParseResult#comments

continuable? -> boolRuby 4.1 から[permalink][rdoc][edit]

解析したソースコードが、追加の入力によって正しい構文になりうる不完全な式であった場合に true を返します。

IRB のような REPL で、ユーザーが複数行にわたる式を 1 行ずつ入力している途中に、追加の入力を待つべきか、それまでに入力された内容を評価すべきかを判断するために使うことを想定しています。具体的には、発生したすべてのエラーが文字列・配列・ブロックなどが閉じられないまま入力が終了したことによるものであれば true を、end や ]、) が対応する開始位置なしに単独で現れるなど、後続の入力によらず構文として不正であることが確定しているエラーが 1 つでもあれば false を返します。

[SEE_ALSO] Prism::Result#success?, Prism::Result#failure?

data_loc -> Prism::Location | nilRuby 3.4 から[permalink][rdoc][edit]

ソースコード中に __END__ 行が存在する場合、その行からファイル末尾までの範囲を表す Prism::Location を返します。存在しない場合は nil を返します。

[SEE_ALSO] Prism::ParseResult#data_loc

deconstruct_keys(keys) -> HashRuby 3.4 から[permalink][rdoc][edit]

パターンマッチのハッシュパターンで使われます。comments・magic_comments・data_loc・errors・warnings をキーに持つハッシュを返します。

[PARAM] keys:
取り出したいキーの配列を指定します。すべて取り出す場合は nil を指定します。

[SEE_ALSO] Prism::ParseResult#deconstruct_keys

encoding -> EncodingRuby 3.4 から[permalink][rdoc][edit]

解析したソースコードのエンコーディングを返します。 source.encoding と同じです。

errors -> ArrayRuby 3.4 から[permalink][rdoc][edit]

解析中に発生したエラー(Prism::ParseError のインスタンス)の配列を返します。

[SEE_ALSO] Prism::ParseResult#errors

failure? -> boolRuby 3.4 から[permalink][rdoc][edit]

Prism::Result#success? の否定です。

magic_comments -> ArrayRuby 3.4 から[permalink][rdoc][edit]

解析中に見つかったマジックコメント(Prism::MagicComment のインスタンス)の配列を返します。

[SEE_ALSO] Prism::ParseResult#magic_comments

source -> Prism::SourceRuby 3.4 から[permalink][rdoc][edit]

解析したソースコードそのものを表す Prism::Source のインスタンスを返します。

[SEE_ALSO] Prism::ParseResult#source

success? -> boolRuby 3.4 から[permalink][rdoc][edit]

解析にエラーがなかった場合に true を返します。

[SEE_ALSO] Prism::ParseResult#success?

warnings -> ArrayRuby 3.4 から[permalink][rdoc][edit]

解析中に発生した警告(Prism::ParseWarning のインスタンス)の配列を返します。

[SEE_ALSO] Prism::ParseResult#warnings