Slide 9
Slide 9 text
9
ripperͰparseͯ͠SࣜͰΈΔͱ
͜Ε·Ͱ (2.4)
[:program,
[[:method_add_block,
[:call, [:@int, "0", [1, 0]], :".", [:@ident,
"times", [1, 2]]],
[:do_block,
nil,
[:bodystmt,
[[:begin,
[:bodystmt,
[[:@int, "1", [3, 4]]],
[:rescue,
nil,
[:var_field, [:@ident, "exception", [4,
12]]],
[[:@int, "2", [5, 4]]],
nil],
[:else, [[:@int, "3", [7, 4]]]],
[:ensure, [[:@int, "4", [9, 4]]]]]]],
nil,
nil,
nil]]]]]
͜Ε͔Β (2.5)
[:program,
[[:method_add_block,
[:call, [:@int, "0", [1, 0]], :".", [:@ident,
"times", [1, 2]]],
[:do_block,
nil,
[:bodystmt,
[[:@int, "1", [2, 2]]],
[:rescue,
nil,
[:var_field, [:@ident, "exception", [3, 10]]],
[[:@int, "2", [4, 2]]],
nil],
[:else, [[:@int, "3", [6, 2]]]],
[:ensure, [[:@int, "4", [8, 2]]]]]]]]]
※ripperrubyʹbundle͞Ε͍ͯΔެࣜparser