要約
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] - [PARAM]
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]