Slide 32
Slide 32 text
AST の対応表(一部)
type コード AST 意味
LIT 1 [:LIT, [1]]
数値やシンボルリテ
ラルなど
STR "string" [:STR, ["string"]]
文字列リテラル
VCALL func [:VCALL, [:func]]
メソッド呼び出し
CALL func.bar [:CALL, [[:VCALL, [:func]], :bar, nil]] .
呼び出し
QCALL func&.bar [:QCALL, [[:VCALL, [:func]], :bar, nil]] &.
呼び出し
OPCALL 1 + a
[:OPCALL, [[:LIT, [1]], :+, [:LIST, [[:VCALL,
[:a]], nil]]]]
演算子呼び出し
AND a && b [:AND, [[:LIT, [1]], [:VCALL, [:b]]]]
&& 演算子
NOTE: 実データは RubyVM::AST::Node
になるがわかりやすく配列で表記している
` ` ` ` ` `
` ` ` ` ` `
` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` ` ` ` ` `
` ` ` `
`
`
` ` ` ` ` `
` `