構文木ノード。
成果物
情報源
RubyVM::AbstractSyntaxTree::Node
RubyVM::AbstractSyntaxTree.parse によって作られる抽象構文木を表すクラスです。
pp RubyVM::AbstractSyntaxTree.parse("x = 1 + 2") # => (SCOPE@1:0-1:9 # tbl: [:x] # args: nil # body: # (LASGN@1:0-1:9 :x # (OPCALL@1:4-1:9 (LIT@1:4-1:5 1) :+ (LIST@1:8-1:9 (LIT@1:8-1:9 2) nil))))
このクラスは MRI の実装の詳細を表します。
CRubyまたはMRI (Matz' Ruby Implementation[2]、Matz Ruby Interpreter[3]) は、まつもとゆきひろによって開発されたRubyのリファレンス実装である。
インスタンスメソッド
children first_column first_lineno inspect last_column last_lineno type
node = RubyVM::AbstractSyntaxTree.parse('1 + 2') p node.children # => [[], nil, #<RubyVM::AbstractSyntaxTree::Node:OPCALL@1:0-1:5>] p node.first_column # => 0 p node.first_lineno # => 1 puts node.inspect # => #<RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-1:5> p node.last_column # => 5 p node.last_lineno # => 1 p node.type # => :SCOPE
所感
ふつうは知らなくていいだろう。
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
- Ruby 3.0.2
$ uname -a Linux raspberrypi 5.10.52-v7l+ #1441 SMP Tue Aug 3 18:11:56 BST 2021 armv7l GNU/Linux