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

class Prism::ParseLexResult

[edit]

要約

Prism?.parse_lex や Prism?.parse_lex_file の戻り値のクラスです。構文解析と字句解析の両方の結果と、付随情報(コメント・エラー・警告など。Prism::Result を参照)を保持します。

Ruby 3.3 の prism にはこのクラスはなく、Prism::ParseResult が使われていました(value の形式は同じです)。

[SEE_ALSO] Prism?.parse_lex, Prism?.parse_lex_file, Prism::Result

目次

インスタンスメソッド

継承しているメソッド

Prism::Resultから継承しているメソッド

インスタンスメソッド

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

パターンマッチのハッシュパターン(case result; in {value:})で使われます。Prism::Result#comments などの付随情報と value をキーに持つハッシュを返します。

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

result = Prism.parse_lex("1 + 2")
case result
in {value:}
  ast, tokens = value
  p [ast.class, tokens.size]
end
# => [Prism::ProgramNode, 4]
value -> ArrayRuby 3.4 から[permalink][rdoc][edit]

[構文木, トークンの配列] という 2 要素配列を返します。構文木は Prism::ProgramNode、トークンの配列は Prism::LexResult の value と同じ「Prism::Token と字句解析器の状態の整数のペア」の配列です。

例
require "prism"

ast, tokens = Prism.parse_lex("1 + 2").value
p ast.class      # => Prism::ProgramNode
p tokens.map { |token, _state| token.type }
# => [:INTEGER, :PLUS, :INTEGER, :EOF]