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

instance method Proc#syntax_tree

syntax_tree -> Prism::Node | RubyVM::AbstractSyntaxTree::Node | nilRuby 4.1 から[permalink][rdoc][edit]

self のコンパイル元になった抽象構文木(AST)のノードを、コンパイルに使ったのと同じパーサでソースを再度パースし直すことで返します。

ブロックから作られた Proc では、ブロック自身のノードではなく、そのブロックを持つ外側のノード(ブロック付きのメソッド呼び出しなど)を返します。

ノードを確実に取得できない場合に nil を返す条件については RubyVM::InstructionSequence#syntax_tree を参照してください。

このメソッドは実験的なもので、予告なく変更される可能性があります。

node = -> { 42 }.syntax_tree
p node.is_a?(Prism::LambdaNode) # => true

node = proc { 42 }.syntax_tree
p node.is_a?(Prism::CallNode) # => true

[SEE_ALSO] Proc#source_range, RubyVM::InstructionSequence#syntax_tree