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

module function Prism?.scope

scope(locals: [], forwarding: []) -> Prism::ScopeRuby 4.0 から[permalink][rdoc][edit]

解析対象のソースコードの周囲にあるものとして扱うローカル変数と、そこから転送されるパラメータの情報をまとめた Prism::Scope のインスタンスを作成します。

作成したオブジェクトは Prism?.parse などの scopes: オプションの要素として渡します。eval のように、周囲のスコープで定義済みのローカル変数を引き継いで解析したい場合に使います。

[PARAM] locals:
そのスコープで定義済みとみなすローカル変数名をシンボルの配列で指定します。省略した場合は空配列です。
[PARAM] forwarding:
そのスコープから次のスコープへ転送されるパラメータの種類を、:*:**:&:"..." のいずれかのシンボルからなる配列で指定します。省略した場合は空配列です。
require "prism"

scope = Prism.scope(locals: [:x])
result = Prism.parse("x + 1", scopes: [scope])
p result.value.statements.body[0].receiver.class
# => Prism::LocalVariableReadNode

[SEE_ALSO] Prism?.parse